Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/npm/cli.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Karrys <luke@lukekarrys.com>2022-09-20 00:13:49 +0300
committerLuke Karrys <luke@lukekarrys.com>2022-09-20 02:39:21 +0300
commitd3ff2aa9b57d7448c5770ba307118ce4c3b6a888 (patch)
treeba8683405a9078746eb8076c0752093802765558 /.github
parent83f8942df9440bdcfe6c99ca0c294de6ffb5fc72 (diff)
chore: apply template-oss changes
Diffstat (limited to '.github')
-rw-r--r--.github/CODEOWNERS4
-rw-r--r--.github/dependabot.yml185
-rw-r--r--.github/workflows/audit.yml34
-rw-r--r--.github/workflows/ci-docs.yml79
-rw-r--r--.github/workflows/ci-libnpmaccess.yml81
-rw-r--r--.github/workflows/ci-libnpmdiff.yml81
-rw-r--r--.github/workflows/ci-libnpmexec.yml81
-rw-r--r--.github/workflows/ci-libnpmfund.yml81
-rw-r--r--.github/workflows/ci-libnpmhook.yml81
-rw-r--r--.github/workflows/ci-libnpmorg.yml81
-rw-r--r--.github/workflows/ci-libnpmpack.yml81
-rw-r--r--.github/workflows/ci-libnpmpublish.yml81
-rw-r--r--.github/workflows/ci-libnpmsearch.yml81
-rw-r--r--.github/workflows/ci-libnpmteam.yml81
-rw-r--r--.github/workflows/ci-libnpmversion.yml81
-rw-r--r--.github/workflows/ci-npmcli-arborist.yml81
-rw-r--r--.github/workflows/ci-release.yml214
-rw-r--r--.github/workflows/ci-smoke-tests.yml91
-rw-r--r--.github/workflows/ci.yml159
-rw-r--r--.github/workflows/codeql-analysis.yml38
-rw-r--r--.github/workflows/post-dependabot.yml88
-rw-r--r--.github/workflows/pull-request.yml45
-rw-r--r--.github/workflows/release-please.yml101
-rw-r--r--.github/workflows/release.yml284
24 files changed, 1531 insertions, 763 deletions
diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index ef8743136..2c54b0d25 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -1 +1,3 @@
-* @npm/cli-team
+# This file is automatically added by @npmcli/template-oss. Do not edit.
+
+* @npm/cli-team
diff --git a/.github/dependabot.yml b/.github/dependabot.yml
new file mode 100644
index 000000000..a7931f398
--- /dev/null
+++ b/.github/dependabot.yml
@@ -0,0 +1,185 @@
+# This file is automatically added by @npmcli/template-oss. Do not edit.
+
+version: 2
+
+updates:
+ - package-ecosystem: npm
+ directory: /
+ schedule:
+ interval: daily
+ allow:
+ - dependency-type: direct
+ versioning-strategy: increase-if-necessary
+ commit-message:
+ prefix: deps
+ prefix-development: chore
+ labels:
+ - "Dependencies"
+ - package-ecosystem: npm
+ directory: docs/
+ schedule:
+ interval: daily
+ allow:
+ - dependency-type: direct
+ versioning-strategy: increase-if-necessary
+ commit-message:
+ prefix: deps
+ prefix-development: chore
+ labels:
+ - "Dependencies"
+ - package-ecosystem: npm
+ directory: smoke-tests/
+ schedule:
+ interval: daily
+ allow:
+ - dependency-type: direct
+ versioning-strategy: increase-if-necessary
+ commit-message:
+ prefix: deps
+ prefix-development: chore
+ labels:
+ - "Dependencies"
+ - package-ecosystem: npm
+ directory: workspaces/arborist/
+ schedule:
+ interval: daily
+ allow:
+ - dependency-type: direct
+ versioning-strategy: increase-if-necessary
+ commit-message:
+ prefix: deps
+ prefix-development: chore
+ labels:
+ - "Dependencies"
+ - package-ecosystem: npm
+ directory: workspaces/libnpmaccess/
+ schedule:
+ interval: daily
+ allow:
+ - dependency-type: direct
+ versioning-strategy: increase-if-necessary
+ commit-message:
+ prefix: deps
+ prefix-development: chore
+ labels:
+ - "Dependencies"
+ - package-ecosystem: npm
+ directory: workspaces/libnpmdiff/
+ schedule:
+ interval: daily
+ allow:
+ - dependency-type: direct
+ versioning-strategy: increase-if-necessary
+ commit-message:
+ prefix: deps
+ prefix-development: chore
+ labels:
+ - "Dependencies"
+ - package-ecosystem: npm
+ directory: workspaces/libnpmexec/
+ schedule:
+ interval: daily
+ allow:
+ - dependency-type: direct
+ versioning-strategy: increase-if-necessary
+ commit-message:
+ prefix: deps
+ prefix-development: chore
+ labels:
+ - "Dependencies"
+ - package-ecosystem: npm
+ directory: workspaces/libnpmfund/
+ schedule:
+ interval: daily
+ allow:
+ - dependency-type: direct
+ versioning-strategy: increase-if-necessary
+ commit-message:
+ prefix: deps
+ prefix-development: chore
+ labels:
+ - "Dependencies"
+ - package-ecosystem: npm
+ directory: workspaces/libnpmhook/
+ schedule:
+ interval: daily
+ allow:
+ - dependency-type: direct
+ versioning-strategy: increase-if-necessary
+ commit-message:
+ prefix: deps
+ prefix-development: chore
+ labels:
+ - "Dependencies"
+ - package-ecosystem: npm
+ directory: workspaces/libnpmorg/
+ schedule:
+ interval: daily
+ allow:
+ - dependency-type: direct
+ versioning-strategy: increase-if-necessary
+ commit-message:
+ prefix: deps
+ prefix-development: chore
+ labels:
+ - "Dependencies"
+ - package-ecosystem: npm
+ directory: workspaces/libnpmpack/
+ schedule:
+ interval: daily
+ allow:
+ - dependency-type: direct
+ versioning-strategy: increase-if-necessary
+ commit-message:
+ prefix: deps
+ prefix-development: chore
+ labels:
+ - "Dependencies"
+ - package-ecosystem: npm
+ directory: workspaces/libnpmpublish/
+ schedule:
+ interval: daily
+ allow:
+ - dependency-type: direct
+ versioning-strategy: increase-if-necessary
+ commit-message:
+ prefix: deps
+ prefix-development: chore
+ labels:
+ - "Dependencies"
+ - package-ecosystem: npm
+ directory: workspaces/libnpmsearch/
+ schedule:
+ interval: daily
+ allow:
+ - dependency-type: direct
+ versioning-strategy: increase-if-necessary
+ commit-message:
+ prefix: deps
+ prefix-development: chore
+ labels:
+ - "Dependencies"
+ - package-ecosystem: npm
+ directory: workspaces/libnpmteam/
+ schedule:
+ interval: daily
+ allow:
+ - dependency-type: direct
+ versioning-strategy: increase-if-necessary
+ commit-message:
+ prefix: deps
+ prefix-development: chore
+ labels:
+ - "Dependencies"
+ - package-ecosystem: npm
+ directory: workspaces/libnpmversion/
+ schedule:
+ interval: daily
+ allow:
+ - dependency-type: direct
+ versioning-strategy: increase-if-necessary
+ commit-message:
+ prefix: deps
+ prefix-development: chore
+ labels:
+ - "Dependencies"
diff --git a/.github/workflows/audit.yml b/.github/workflows/audit.yml
new file mode 100644
index 000000000..1eca24a40
--- /dev/null
+++ b/.github/workflows/audit.yml
@@ -0,0 +1,34 @@
+# This file is automatically added by @npmcli/template-oss. Do not edit.
+
+name: Audit
+
+on:
+ workflow_dispatch:
+ schedule:
+ # "At 08:00 UTC (01:00 PT) on Monday" https://crontab.guru/#0_8_*_*_1
+ - cron: "0 8 * * 1"
+
+jobs:
+ audit:
+ name: Audit Dependencies
+ if: github.repository_owner == 'npm'
+ runs-on: ubuntu-latest
+ defaults:
+ run:
+ shell: bash
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+ - name: Setup Git User
+ run: |
+ git config --global user.email "npm-cli+bot@github.com"
+ git config --global user.name "npm CLI robot"
+ - name: Setup Node
+ uses: actions/setup-node@v3
+ with:
+ node-version: 18.x
+ cache: npm
+ - name: Reset Deps
+ run: node . run resetdeps
+ - name: Run Audit
+ run: node . audit
diff --git a/.github/workflows/ci-docs.yml b/.github/workflows/ci-docs.yml
index dd8a43192..b79c9f5b8 100644
--- a/.github/workflows/ci-docs.yml
+++ b/.github/workflows/ci-docs.yml
@@ -5,8 +5,6 @@ name: CI - docs
on:
workflow_dispatch:
pull_request:
- branches:
- - '*'
paths:
- docs/**
push:
@@ -21,67 +19,68 @@ on:
jobs:
lint:
+ name: Lint
+ if: github.repository_owner == 'npm'
runs-on: ubuntu-latest
+ defaults:
+ run:
+ shell: bash
steps:
- - uses: actions/checkout@v3
- - name: Setup git user
+ - name: Checkout
+ uses: actions/checkout@v3
+ - name: Setup Git User
run: |
git config --global user.email "npm-cli+bot@github.com"
git config --global user.name "npm CLI robot"
- - uses: actions/setup-node@v3
+ - name: Setup Node
+ uses: actions/setup-node@v3
with:
- node-version: 16
- - name: Update npm to latest
- run: npm i --prefer-online --no-fund --no-audit -g npm@latest
- - run: npm -v
- - run: npm i --ignore-scripts --no-audit --no-fund
- - run: npm run lint -w docs
+ node-version: 18.x
+ cache: npm
+ - name: Reset Deps
+ run: node . run resetdeps
+ - name: Lint
+ run: node . run lint --ignore-scripts
+ - name: Post Lint
+ run: node . run postlint --ignore-scripts
test:
+ name: Test - ${{ matrix.platform.name }} - ${{ matrix.node-version }}
+ if: github.repository_owner == 'npm'
strategy:
fail-fast: false
matrix:
- node-version:
- - 16
platform:
- - os: ubuntu-latest
+ - name: Linux
+ os: ubuntu-latest
shell: bash
- - os: macos-latest
+ - name: macOS
+ os: macos-latest
shell: bash
- - os: windows-latest
+ - name: Windows
+ os: windows-latest
shell: cmd
+ node-version:
+ - 18.x
runs-on: ${{ matrix.platform.os }}
defaults:
run:
shell: ${{ matrix.platform.shell }}
steps:
- - uses: actions/checkout@v3
- - name: Setup git user
+ - name: Checkout
+ uses: actions/checkout@v3
+ - name: Setup Git User
run: |
git config --global user.email "npm-cli+bot@github.com"
git config --global user.name "npm CLI robot"
- - uses: actions/setup-node@v3
+ - name: Setup Node
+ uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
- - name: Update to workable npm (windows)
- # node 12 and 14 ship with npm@6, which is known to fail when updating itself in windows
- if: matrix.platform.os == 'windows-latest' && (startsWith(matrix.node-version, '12.') || startsWith(matrix.node-version, '14.'))
- run: |
- curl -sO https://registry.npmjs.org/npm/-/npm-7.5.4.tgz
- tar xf npm-7.5.4.tgz
- cd package
- node lib/npm.js install --no-fund --no-audit -g ..\npm-7.5.4.tgz
- cd ..
- rmdir /s /q package
- - name: Update npm to 7
- # If we do test on npm 10 it needs npm7
- if: startsWith(matrix.node-version, '10.')
- run: npm i --prefer-online --no-fund --no-audit -g npm@7
- - name: Update npm to latest
- if: ${{ !startsWith(matrix.node-version, '10.') }}
- run: npm i --prefer-online --no-fund --no-audit -g npm@latest
- - run: npm -v
- - run: npm i --ignore-scripts --no-audit --no-fund
- - name: add tap problem matcher
+ cache: npm
+ - name: Reset Deps
+ run: node . run resetdeps
+ - name: Add Problem Matcher
run: echo "::add-matcher::.github/matchers/tap.json"
- - run: npm test --ignore-scripts -w docs
+ - name: Test
+ run: node . test --ignore-scripts -w docs
diff --git a/.github/workflows/ci-libnpmaccess.yml b/.github/workflows/ci-libnpmaccess.yml
index 6f27d9555..5cbe173c1 100644
--- a/.github/workflows/ci-libnpmaccess.yml
+++ b/.github/workflows/ci-libnpmaccess.yml
@@ -5,8 +5,6 @@ name: CI - libnpmaccess
on:
workflow_dispatch:
pull_request:
- branches:
- - '*'
paths:
- workspaces/libnpmaccess/**
push:
@@ -21,26 +19,47 @@ on:
jobs:
lint:
+ name: Lint
+ if: github.repository_owner == 'npm'
runs-on: ubuntu-latest
+ defaults:
+ run:
+ shell: bash
steps:
- - uses: actions/checkout@v3
- - name: Setup git user
+ - name: Checkout
+ uses: actions/checkout@v3
+ - name: Setup Git User
run: |
git config --global user.email "npm-cli+bot@github.com"
git config --global user.name "npm CLI robot"
- - uses: actions/setup-node@v3
+ - name: Setup Node
+ uses: actions/setup-node@v3
with:
node-version: 18.x
- - name: Update npm to latest
- run: npm i --prefer-online --no-fund --no-audit -g npm@latest
- - run: npm -v
- - run: npm i --ignore-scripts --no-audit --no-fund
- - run: npm run lint -w libnpmaccess
+ cache: npm
+ - name: Reset Deps
+ run: node . run resetdeps
+ - name: Lint
+ run: node . run lint --ignore-scripts
+ - name: Post Lint
+ run: node . run postlint --ignore-scripts
test:
+ name: Test - ${{ matrix.platform.name }} - ${{ matrix.node-version }}
+ if: github.repository_owner == 'npm'
strategy:
fail-fast: false
matrix:
+ platform:
+ - name: Linux
+ os: ubuntu-latest
+ shell: bash
+ - name: macOS
+ os: macos-latest
+ shell: bash
+ - name: Windows
+ os: windows-latest
+ shell: cmd
node-version:
- 14.17.0
- 14.x
@@ -48,45 +67,25 @@ jobs:
- 16.x
- 18.0.0
- 18.x
- platform:
- - os: ubuntu-latest
- shell: bash
- - os: macos-latest
- shell: bash
- - os: windows-latest
- shell: cmd
runs-on: ${{ matrix.platform.os }}
defaults:
run:
shell: ${{ matrix.platform.shell }}
steps:
- - uses: actions/checkout@v3
- - name: Setup git user
+ - name: Checkout
+ uses: actions/checkout@v3
+ - name: Setup Git User
run: |
git config --global user.email "npm-cli+bot@github.com"
git config --global user.name "npm CLI robot"
- - uses: actions/setup-node@v3
+ - name: Setup Node
+ uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
- - name: Update to workable npm (windows)
- # node 12 and 14 ship with npm@6, which is known to fail when updating itself in windows
- if: matrix.platform.os == 'windows-latest' && (startsWith(matrix.node-version, '12.') || startsWith(matrix.node-version, '14.'))
- run: |
- curl -sO https://registry.npmjs.org/npm/-/npm-7.5.4.tgz
- tar xf npm-7.5.4.tgz
- cd package
- node lib/npm.js install --no-fund --no-audit -g ..\npm-7.5.4.tgz
- cd ..
- rmdir /s /q package
- - name: Update npm to 7
- # If we do test on npm 10 it needs npm7
- if: startsWith(matrix.node-version, '10.')
- run: npm i --prefer-online --no-fund --no-audit -g npm@7
- - name: Update npm to latest
- if: ${{ !startsWith(matrix.node-version, '10.') }}
- run: npm i --prefer-online --no-fund --no-audit -g npm@latest
- - run: npm -v
- - run: npm i --ignore-scripts --no-audit --no-fund
- - name: add tap problem matcher
+ cache: npm
+ - name: Reset Deps
+ run: node . run resetdeps
+ - name: Add Problem Matcher
run: echo "::add-matcher::.github/matchers/tap.json"
- - run: npm test --ignore-scripts -w libnpmaccess
+ - name: Test
+ run: node . test --ignore-scripts -w libnpmaccess
diff --git a/.github/workflows/ci-libnpmdiff.yml b/.github/workflows/ci-libnpmdiff.yml
index daba1324d..cd7623243 100644
--- a/.github/workflows/ci-libnpmdiff.yml
+++ b/.github/workflows/ci-libnpmdiff.yml
@@ -5,8 +5,6 @@ name: CI - libnpmdiff
on:
workflow_dispatch:
pull_request:
- branches:
- - '*'
paths:
- workspaces/libnpmdiff/**
push:
@@ -21,26 +19,47 @@ on:
jobs:
lint:
+ name: Lint
+ if: github.repository_owner == 'npm'
runs-on: ubuntu-latest
+ defaults:
+ run:
+ shell: bash
steps:
- - uses: actions/checkout@v3
- - name: Setup git user
+ - name: Checkout
+ uses: actions/checkout@v3
+ - name: Setup Git User
run: |
git config --global user.email "npm-cli+bot@github.com"
git config --global user.name "npm CLI robot"
- - uses: actions/setup-node@v3
+ - name: Setup Node
+ uses: actions/setup-node@v3
with:
node-version: 18.x
- - name: Update npm to latest
- run: npm i --prefer-online --no-fund --no-audit -g npm@latest
- - run: npm -v
- - run: npm i --ignore-scripts --no-audit --no-fund
- - run: npm run lint -w libnpmdiff
+ cache: npm
+ - name: Reset Deps
+ run: node . run resetdeps
+ - name: Lint
+ run: node . run lint --ignore-scripts
+ - name: Post Lint
+ run: node . run postlint --ignore-scripts
test:
+ name: Test - ${{ matrix.platform.name }} - ${{ matrix.node-version }}
+ if: github.repository_owner == 'npm'
strategy:
fail-fast: false
matrix:
+ platform:
+ - name: Linux
+ os: ubuntu-latest
+ shell: bash
+ - name: macOS
+ os: macos-latest
+ shell: bash
+ - name: Windows
+ os: windows-latest
+ shell: cmd
node-version:
- 14.17.0
- 14.x
@@ -48,45 +67,25 @@ jobs:
- 16.x
- 18.0.0
- 18.x
- platform:
- - os: ubuntu-latest
- shell: bash
- - os: macos-latest
- shell: bash
- - os: windows-latest
- shell: cmd
runs-on: ${{ matrix.platform.os }}
defaults:
run:
shell: ${{ matrix.platform.shell }}
steps:
- - uses: actions/checkout@v3
- - name: Setup git user
+ - name: Checkout
+ uses: actions/checkout@v3
+ - name: Setup Git User
run: |
git config --global user.email "npm-cli+bot@github.com"
git config --global user.name "npm CLI robot"
- - uses: actions/setup-node@v3
+ - name: Setup Node
+ uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
- - name: Update to workable npm (windows)
- # node 12 and 14 ship with npm@6, which is known to fail when updating itself in windows
- if: matrix.platform.os == 'windows-latest' && (startsWith(matrix.node-version, '12.') || startsWith(matrix.node-version, '14.'))
- run: |
- curl -sO https://registry.npmjs.org/npm/-/npm-7.5.4.tgz
- tar xf npm-7.5.4.tgz
- cd package
- node lib/npm.js install --no-fund --no-audit -g ..\npm-7.5.4.tgz
- cd ..
- rmdir /s /q package
- - name: Update npm to 7
- # If we do test on npm 10 it needs npm7
- if: startsWith(matrix.node-version, '10.')
- run: npm i --prefer-online --no-fund --no-audit -g npm@7
- - name: Update npm to latest
- if: ${{ !startsWith(matrix.node-version, '10.') }}
- run: npm i --prefer-online --no-fund --no-audit -g npm@latest
- - run: npm -v
- - run: npm i --ignore-scripts --no-audit --no-fund
- - name: add tap problem matcher
+ cache: npm
+ - name: Reset Deps
+ run: node . run resetdeps
+ - name: Add Problem Matcher
run: echo "::add-matcher::.github/matchers/tap.json"
- - run: npm test --ignore-scripts -w libnpmdiff
+ - name: Test
+ run: node . test --ignore-scripts -w libnpmdiff
diff --git a/.github/workflows/ci-libnpmexec.yml b/.github/workflows/ci-libnpmexec.yml
index e7cd77124..644d04ce4 100644
--- a/.github/workflows/ci-libnpmexec.yml
+++ b/.github/workflows/ci-libnpmexec.yml
@@ -5,8 +5,6 @@ name: CI - libnpmexec
on:
workflow_dispatch:
pull_request:
- branches:
- - '*'
paths:
- workspaces/libnpmexec/**
push:
@@ -21,26 +19,47 @@ on:
jobs:
lint:
+ name: Lint
+ if: github.repository_owner == 'npm'
runs-on: ubuntu-latest
+ defaults:
+ run:
+ shell: bash
steps:
- - uses: actions/checkout@v3
- - name: Setup git user
+ - name: Checkout
+ uses: actions/checkout@v3
+ - name: Setup Git User
run: |
git config --global user.email "npm-cli+bot@github.com"
git config --global user.name "npm CLI robot"
- - uses: actions/setup-node@v3
+ - name: Setup Node
+ uses: actions/setup-node@v3
with:
node-version: 18.x
- - name: Update npm to latest
- run: npm i --prefer-online --no-fund --no-audit -g npm@latest
- - run: npm -v
- - run: npm i --ignore-scripts --no-audit --no-fund
- - run: npm run lint -w libnpmexec
+ cache: npm
+ - name: Reset Deps
+ run: node . run resetdeps
+ - name: Lint
+ run: node . run lint --ignore-scripts
+ - name: Post Lint
+ run: node . run postlint --ignore-scripts
test:
+ name: Test - ${{ matrix.platform.name }} - ${{ matrix.node-version }}
+ if: github.repository_owner == 'npm'
strategy:
fail-fast: false
matrix:
+ platform:
+ - name: Linux
+ os: ubuntu-latest
+ shell: bash
+ - name: macOS
+ os: macos-latest
+ shell: bash
+ - name: Windows
+ os: windows-latest
+ shell: cmd
node-version:
- 14.17.0
- 14.x
@@ -48,45 +67,25 @@ jobs:
- 16.x
- 18.0.0
- 18.x
- platform:
- - os: ubuntu-latest
- shell: bash
- - os: macos-latest
- shell: bash
- - os: windows-latest
- shell: cmd
runs-on: ${{ matrix.platform.os }}
defaults:
run:
shell: ${{ matrix.platform.shell }}
steps:
- - uses: actions/checkout@v3
- - name: Setup git user
+ - name: Checkout
+ uses: actions/checkout@v3
+ - name: Setup Git User
run: |
git config --global user.email "npm-cli+bot@github.com"
git config --global user.name "npm CLI robot"
- - uses: actions/setup-node@v3
+ - name: Setup Node
+ uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
- - name: Update to workable npm (windows)
- # node 12 and 14 ship with npm@6, which is known to fail when updating itself in windows
- if: matrix.platform.os == 'windows-latest' && (startsWith(matrix.node-version, '12.') || startsWith(matrix.node-version, '14.'))
- run: |
- curl -sO https://registry.npmjs.org/npm/-/npm-7.5.4.tgz
- tar xf npm-7.5.4.tgz
- cd package
- node lib/npm.js install --no-fund --no-audit -g ..\npm-7.5.4.tgz
- cd ..
- rmdir /s /q package
- - name: Update npm to 7
- # If we do test on npm 10 it needs npm7
- if: startsWith(matrix.node-version, '10.')
- run: npm i --prefer-online --no-fund --no-audit -g npm@7
- - name: Update npm to latest
- if: ${{ !startsWith(matrix.node-version, '10.') }}
- run: npm i --prefer-online --no-fund --no-audit -g npm@latest
- - run: npm -v
- - run: npm i --ignore-scripts --no-audit --no-fund
- - name: add tap problem matcher
+ cache: npm
+ - name: Reset Deps
+ run: node . run resetdeps
+ - name: Add Problem Matcher
run: echo "::add-matcher::.github/matchers/tap.json"
- - run: npm test --ignore-scripts -w libnpmexec
+ - name: Test
+ run: node . test --ignore-scripts -w libnpmexec
diff --git a/.github/workflows/ci-libnpmfund.yml b/.github/workflows/ci-libnpmfund.yml
index 268db59da..ea50c49e6 100644
--- a/.github/workflows/ci-libnpmfund.yml
+++ b/.github/workflows/ci-libnpmfund.yml
@@ -5,8 +5,6 @@ name: CI - libnpmfund
on:
workflow_dispatch:
pull_request:
- branches:
- - '*'
paths:
- workspaces/libnpmfund/**
push:
@@ -21,26 +19,47 @@ on:
jobs:
lint:
+ name: Lint
+ if: github.repository_owner == 'npm'
runs-on: ubuntu-latest
+ defaults:
+ run:
+ shell: bash
steps:
- - uses: actions/checkout@v3
- - name: Setup git user
+ - name: Checkout
+ uses: actions/checkout@v3
+ - name: Setup Git User
run: |
git config --global user.email "npm-cli+bot@github.com"
git config --global user.name "npm CLI robot"
- - uses: actions/setup-node@v3
+ - name: Setup Node
+ uses: actions/setup-node@v3
with:
node-version: 18.x
- - name: Update npm to latest
- run: npm i --prefer-online --no-fund --no-audit -g npm@latest
- - run: npm -v
- - run: npm i --ignore-scripts --no-audit --no-fund
- - run: npm run lint -w libnpmfund
+ cache: npm
+ - name: Reset Deps
+ run: node . run resetdeps
+ - name: Lint
+ run: node . run lint --ignore-scripts
+ - name: Post Lint
+ run: node . run postlint --ignore-scripts
test:
+ name: Test - ${{ matrix.platform.name }} - ${{ matrix.node-version }}
+ if: github.repository_owner == 'npm'
strategy:
fail-fast: false
matrix:
+ platform:
+ - name: Linux
+ os: ubuntu-latest
+ shell: bash
+ - name: macOS
+ os: macos-latest
+ shell: bash
+ - name: Windows
+ os: windows-latest
+ shell: cmd
node-version:
- 14.17.0
- 14.x
@@ -48,45 +67,25 @@ jobs:
- 16.x
- 18.0.0
- 18.x
- platform:
- - os: ubuntu-latest
- shell: bash
- - os: macos-latest
- shell: bash
- - os: windows-latest
- shell: cmd
runs-on: ${{ matrix.platform.os }}
defaults:
run:
shell: ${{ matrix.platform.shell }}
steps:
- - uses: actions/checkout@v3
- - name: Setup git user
+ - name: Checkout
+ uses: actions/checkout@v3
+ - name: Setup Git User
run: |
git config --global user.email "npm-cli+bot@github.com"
git config --global user.name "npm CLI robot"
- - uses: actions/setup-node@v3
+ - name: Setup Node
+ uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
- - name: Update to workable npm (windows)
- # node 12 and 14 ship with npm@6, which is known to fail when updating itself in windows
- if: matrix.platform.os == 'windows-latest' && (startsWith(matrix.node-version, '12.') || startsWith(matrix.node-version, '14.'))
- run: |
- curl -sO https://registry.npmjs.org/npm/-/npm-7.5.4.tgz
- tar xf npm-7.5.4.tgz
- cd package
- node lib/npm.js install --no-fund --no-audit -g ..\npm-7.5.4.tgz
- cd ..
- rmdir /s /q package
- - name: Update npm to 7
- # If we do test on npm 10 it needs npm7
- if: startsWith(matrix.node-version, '10.')
- run: npm i --prefer-online --no-fund --no-audit -g npm@7
- - name: Update npm to latest
- if: ${{ !startsWith(matrix.node-version, '10.') }}
- run: npm i --prefer-online --no-fund --no-audit -g npm@latest
- - run: npm -v
- - run: npm i --ignore-scripts --no-audit --no-fund
- - name: add tap problem matcher
+ cache: npm
+ - name: Reset Deps
+ run: node . run resetdeps
+ - name: Add Problem Matcher
run: echo "::add-matcher::.github/matchers/tap.json"
- - run: npm test --ignore-scripts -w libnpmfund
+ - name: Test
+ run: node . test --ignore-scripts -w libnpmfund
diff --git a/.github/workflows/ci-libnpmhook.yml b/.github/workflows/ci-libnpmhook.yml
index 81eb7fe68..250fb2f5a 100644
--- a/.github/workflows/ci-libnpmhook.yml
+++ b/.github/workflows/ci-libnpmhook.yml
@@ -5,8 +5,6 @@ name: CI - libnpmhook
on:
workflow_dispatch:
pull_request:
- branches:
- - '*'
paths:
- workspaces/libnpmhook/**
push:
@@ -21,26 +19,47 @@ on:
jobs:
lint:
+ name: Lint
+ if: github.repository_owner == 'npm'
runs-on: ubuntu-latest
+ defaults:
+ run:
+ shell: bash
steps:
- - uses: actions/checkout@v3
- - name: Setup git user
+ - name: Checkout
+ uses: actions/checkout@v3
+ - name: Setup Git User
run: |
git config --global user.email "npm-cli+bot@github.com"
git config --global user.name "npm CLI robot"
- - uses: actions/setup-node@v3
+ - name: Setup Node
+ uses: actions/setup-node@v3
with:
node-version: 18.x
- - name: Update npm to latest
- run: npm i --prefer-online --no-fund --no-audit -g npm@latest
- - run: npm -v
- - run: npm i --ignore-scripts --no-audit --no-fund
- - run: npm run lint -w libnpmhook
+ cache: npm
+ - name: Reset Deps
+ run: node . run resetdeps
+ - name: Lint
+ run: node . run lint --ignore-scripts
+ - name: Post Lint
+ run: node . run postlint --ignore-scripts
test:
+ name: Test - ${{ matrix.platform.name }} - ${{ matrix.node-version }}
+ if: github.repository_owner == 'npm'
strategy:
fail-fast: false
matrix:
+ platform:
+ - name: Linux
+ os: ubuntu-latest
+ shell: bash
+ - name: macOS
+ os: macos-latest
+ shell: bash
+ - name: Windows
+ os: windows-latest
+ shell: cmd
node-version:
- 14.17.0
- 14.x
@@ -48,45 +67,25 @@ jobs:
- 16.x
- 18.0.0
- 18.x
- platform:
- - os: ubuntu-latest
- shell: bash
- - os: macos-latest
- shell: bash
- - os: windows-latest
- shell: cmd
runs-on: ${{ matrix.platform.os }}
defaults:
run:
shell: ${{ matrix.platform.shell }}
steps:
- - uses: actions/checkout@v3
- - name: Setup git user
+ - name: Checkout
+ uses: actions/checkout@v3
+ - name: Setup Git User
run: |
git config --global user.email "npm-cli+bot@github.com"
git config --global user.name "npm CLI robot"
- - uses: actions/setup-node@v3
+ - name: Setup Node
+ uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
- - name: Update to workable npm (windows)
- # node 12 and 14 ship with npm@6, which is known to fail when updating itself in windows
- if: matrix.platform.os == 'windows-latest' && (startsWith(matrix.node-version, '12.') || startsWith(matrix.node-version, '14.'))
- run: |
- curl -sO https://registry.npmjs.org/npm/-/npm-7.5.4.tgz
- tar xf npm-7.5.4.tgz
- cd package
- node lib/npm.js install --no-fund --no-audit -g ..\npm-7.5.4.tgz
- cd ..
- rmdir /s /q package
- - name: Update npm to 7
- # If we do test on npm 10 it needs npm7
- if: startsWith(matrix.node-version, '10.')
- run: npm i --prefer-online --no-fund --no-audit -g npm@7
- - name: Update npm to latest
- if: ${{ !startsWith(matrix.node-version, '10.') }}
- run: npm i --prefer-online --no-fund --no-audit -g npm@latest
- - run: npm -v
- - run: npm i --ignore-scripts --no-audit --no-fund
- - name: add tap problem matcher
+ cache: npm
+ - name: Reset Deps
+ run: node . run resetdeps
+ - name: Add Problem Matcher
run: echo "::add-matcher::.github/matchers/tap.json"
- - run: npm test --ignore-scripts -w libnpmhook
+ - name: Test
+ run: node . test --ignore-scripts -w libnpmhook
diff --git a/.github/workflows/ci-libnpmorg.yml b/.github/workflows/ci-libnpmorg.yml
index 26e5a26dd..dc901e4f3 100644
--- a/.github/workflows/ci-libnpmorg.yml
+++ b/.github/workflows/ci-libnpmorg.yml
@@ -5,8 +5,6 @@ name: CI - libnpmorg
on:
workflow_dispatch:
pull_request:
- branches:
- - '*'
paths:
- workspaces/libnpmorg/**
push:
@@ -21,26 +19,47 @@ on:
jobs:
lint:
+ name: Lint
+ if: github.repository_owner == 'npm'
runs-on: ubuntu-latest
+ defaults:
+ run:
+ shell: bash
steps:
- - uses: actions/checkout@v3
- - name: Setup git user
+ - name: Checkout
+ uses: actions/checkout@v3
+ - name: Setup Git User
run: |
git config --global user.email "npm-cli+bot@github.com"
git config --global user.name "npm CLI robot"
- - uses: actions/setup-node@v3
+ - name: Setup Node
+ uses: actions/setup-node@v3
with:
node-version: 18.x
- - name: Update npm to latest
- run: npm i --prefer-online --no-fund --no-audit -g npm@latest
- - run: npm -v
- - run: npm i --ignore-scripts --no-audit --no-fund
- - run: npm run lint -w libnpmorg
+ cache: npm
+ - name: Reset Deps
+ run: node . run resetdeps
+ - name: Lint
+ run: node . run lint --ignore-scripts
+ - name: Post Lint
+ run: node . run postlint --ignore-scripts
test:
+ name: Test - ${{ matrix.platform.name }} - ${{ matrix.node-version }}
+ if: github.repository_owner == 'npm'
strategy:
fail-fast: false
matrix:
+ platform:
+ - name: Linux
+ os: ubuntu-latest
+ shell: bash
+ - name: macOS
+ os: macos-latest
+ shell: bash
+ - name: Windows
+ os: windows-latest
+ shell: cmd
node-version:
- 14.17.0
- 14.x
@@ -48,45 +67,25 @@ jobs:
- 16.x
- 18.0.0
- 18.x
- platform:
- - os: ubuntu-latest
- shell: bash
- - os: macos-latest
- shell: bash
- - os: windows-latest
- shell: cmd
runs-on: ${{ matrix.platform.os }}
defaults:
run:
shell: ${{ matrix.platform.shell }}
steps:
- - uses: actions/checkout@v3
- - name: Setup git user
+ - name: Checkout
+ uses: actions/checkout@v3
+ - name: Setup Git User
run: |
git config --global user.email "npm-cli+bot@github.com"
git config --global user.name "npm CLI robot"
- - uses: actions/setup-node@v3
+ - name: Setup Node
+ uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
- - name: Update to workable npm (windows)
- # node 12 and 14 ship with npm@6, which is known to fail when updating itself in windows
- if: matrix.platform.os == 'windows-latest' && (startsWith(matrix.node-version, '12.') || startsWith(matrix.node-version, '14.'))
- run: |
- curl -sO https://registry.npmjs.org/npm/-/npm-7.5.4.tgz
- tar xf npm-7.5.4.tgz
- cd package
- node lib/npm.js install --no-fund --no-audit -g ..\npm-7.5.4.tgz
- cd ..
- rmdir /s /q package
- - name: Update npm to 7
- # If we do test on npm 10 it needs npm7
- if: startsWith(matrix.node-version, '10.')
- run: npm i --prefer-online --no-fund --no-audit -g npm@7
- - name: Update npm to latest
- if: ${{ !startsWith(matrix.node-version, '10.') }}
- run: npm i --prefer-online --no-fund --no-audit -g npm@latest
- - run: npm -v
- - run: npm i --ignore-scripts --no-audit --no-fund
- - name: add tap problem matcher
+ cache: npm
+ - name: Reset Deps
+ run: node . run resetdeps
+ - name: Add Problem Matcher
run: echo "::add-matcher::.github/matchers/tap.json"
- - run: npm test --ignore-scripts -w libnpmorg
+ - name: Test
+ run: node . test --ignore-scripts -w libnpmorg
diff --git a/.github/workflows/ci-libnpmpack.yml b/.github/workflows/ci-libnpmpack.yml
index 4bd344e76..fac63daf6 100644
--- a/.github/workflows/ci-libnpmpack.yml
+++ b/.github/workflows/ci-libnpmpack.yml
@@ -5,8 +5,6 @@ name: CI - libnpmpack
on:
workflow_dispatch:
pull_request:
- branches:
- - '*'
paths:
- workspaces/libnpmpack/**
push:
@@ -21,26 +19,47 @@ on:
jobs:
lint:
+ name: Lint
+ if: github.repository_owner == 'npm'
runs-on: ubuntu-latest
+ defaults:
+ run:
+ shell: bash
steps:
- - uses: actions/checkout@v3
- - name: Setup git user
+ - name: Checkout
+ uses: actions/checkout@v3
+ - name: Setup Git User
run: |
git config --global user.email "npm-cli+bot@github.com"
git config --global user.name "npm CLI robot"
- - uses: actions/setup-node@v3
+ - name: Setup Node
+ uses: actions/setup-node@v3
with:
node-version: 18.x
- - name: Update npm to latest
- run: npm i --prefer-online --no-fund --no-audit -g npm@latest
- - run: npm -v
- - run: npm i --ignore-scripts --no-audit --no-fund
- - run: npm run lint -w libnpmpack
+ cache: npm
+ - name: Reset Deps
+ run: node . run resetdeps
+ - name: Lint
+ run: node . run lint --ignore-scripts
+ - name: Post Lint
+ run: node . run postlint --ignore-scripts
test:
+ name: Test - ${{ matrix.platform.name }} - ${{ matrix.node-version }}
+ if: github.repository_owner == 'npm'
strategy:
fail-fast: false
matrix:
+ platform:
+ - name: Linux
+ os: ubuntu-latest
+ shell: bash
+ - name: macOS
+ os: macos-latest
+ shell: bash
+ - name: Windows
+ os: windows-latest
+ shell: cmd
node-version:
- 14.17.0
- 14.x
@@ -48,45 +67,25 @@ jobs:
- 16.x
- 18.0.0
- 18.x
- platform:
- - os: ubuntu-latest
- shell: bash
- - os: macos-latest
- shell: bash
- - os: windows-latest
- shell: cmd
runs-on: ${{ matrix.platform.os }}
defaults:
run:
shell: ${{ matrix.platform.shell }}
steps:
- - uses: actions/checkout@v3
- - name: Setup git user
+ - name: Checkout
+ uses: actions/checkout@v3
+ - name: Setup Git User
run: |
git config --global user.email "npm-cli+bot@github.com"
git config --global user.name "npm CLI robot"
- - uses: actions/setup-node@v3
+ - name: Setup Node
+ uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
- - name: Update to workable npm (windows)
- # node 12 and 14 ship with npm@6, which is known to fail when updating itself in windows
- if: matrix.platform.os == 'windows-latest' && (startsWith(matrix.node-version, '12.') || startsWith(matrix.node-version, '14.'))
- run: |
- curl -sO https://registry.npmjs.org/npm/-/npm-7.5.4.tgz
- tar xf npm-7.5.4.tgz
- cd package
- node lib/npm.js install --no-fund --no-audit -g ..\npm-7.5.4.tgz
- cd ..
- rmdir /s /q package
- - name: Update npm to 7
- # If we do test on npm 10 it needs npm7
- if: startsWith(matrix.node-version, '10.')
- run: npm i --prefer-online --no-fund --no-audit -g npm@7
- - name: Update npm to latest
- if: ${{ !startsWith(matrix.node-version, '10.') }}
- run: npm i --prefer-online --no-fund --no-audit -g npm@latest
- - run: npm -v
- - run: npm i --ignore-scripts --no-audit --no-fund
- - name: add tap problem matcher
+ cache: npm
+ - name: Reset Deps
+ run: node . run resetdeps
+ - name: Add Problem Matcher
run: echo "::add-matcher::.github/matchers/tap.json"
- - run: npm test --ignore-scripts -w libnpmpack
+ - name: Test
+ run: node . test --ignore-scripts -w libnpmpack
diff --git a/.github/workflows/ci-libnpmpublish.yml b/.github/workflows/ci-libnpmpublish.yml
index cad4ea600..7947dc61a 100644
--- a/.github/workflows/ci-libnpmpublish.yml
+++ b/.github/workflows/ci-libnpmpublish.yml
@@ -5,8 +5,6 @@ name: CI - libnpmpublish
on:
workflow_dispatch:
pull_request:
- branches:
- - '*'
paths:
- workspaces/libnpmpublish/**
push:
@@ -21,26 +19,47 @@ on:
jobs:
lint:
+ name: Lint
+ if: github.repository_owner == 'npm'
runs-on: ubuntu-latest
+ defaults:
+ run:
+ shell: bash
steps:
- - uses: actions/checkout@v3
- - name: Setup git user
+ - name: Checkout
+ uses: actions/checkout@v3
+ - name: Setup Git User
run: |
git config --global user.email "npm-cli+bot@github.com"
git config --global user.name "npm CLI robot"
- - uses: actions/setup-node@v3
+ - name: Setup Node
+ uses: actions/setup-node@v3
with:
node-version: 18.x
- - name: Update npm to latest
- run: npm i --prefer-online --no-fund --no-audit -g npm@latest
- - run: npm -v
- - run: npm i --ignore-scripts --no-audit --no-fund
- - run: npm run lint -w libnpmpublish
+ cache: npm
+ - name: Reset Deps
+ run: node . run resetdeps
+ - name: Lint
+ run: node . run lint --ignore-scripts
+ - name: Post Lint
+ run: node . run postlint --ignore-scripts
test:
+ name: Test - ${{ matrix.platform.name }} - ${{ matrix.node-version }}
+ if: github.repository_owner == 'npm'
strategy:
fail-fast: false
matrix:
+ platform:
+ - name: Linux
+ os: ubuntu-latest
+ shell: bash
+ - name: macOS
+ os: macos-latest
+ shell: bash
+ - name: Windows
+ os: windows-latest
+ shell: cmd
node-version:
- 14.17.0
- 14.x
@@ -48,45 +67,25 @@ jobs:
- 16.x
- 18.0.0
- 18.x
- platform:
- - os: ubuntu-latest
- shell: bash
- - os: macos-latest
- shell: bash
- - os: windows-latest
- shell: cmd
runs-on: ${{ matrix.platform.os }}
defaults:
run:
shell: ${{ matrix.platform.shell }}
steps:
- - uses: actions/checkout@v3
- - name: Setup git user
+ - name: Checkout
+ uses: actions/checkout@v3
+ - name: Setup Git User
run: |
git config --global user.email "npm-cli+bot@github.com"
git config --global user.name "npm CLI robot"
- - uses: actions/setup-node@v3
+ - name: Setup Node
+ uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
- - name: Update to workable npm (windows)
- # node 12 and 14 ship with npm@6, which is known to fail when updating itself in windows
- if: matrix.platform.os == 'windows-latest' && (startsWith(matrix.node-version, '12.') || startsWith(matrix.node-version, '14.'))
- run: |
- curl -sO https://registry.npmjs.org/npm/-/npm-7.5.4.tgz
- tar xf npm-7.5.4.tgz
- cd package
- node lib/npm.js install --no-fund --no-audit -g ..\npm-7.5.4.tgz
- cd ..
- rmdir /s /q package
- - name: Update npm to 7
- # If we do test on npm 10 it needs npm7
- if: startsWith(matrix.node-version, '10.')
- run: npm i --prefer-online --no-fund --no-audit -g npm@7
- - name: Update npm to latest
- if: ${{ !startsWith(matrix.node-version, '10.') }}
- run: npm i --prefer-online --no-fund --no-audit -g npm@latest
- - run: npm -v
- - run: npm i --ignore-scripts --no-audit --no-fund
- - name: add tap problem matcher
+ cache: npm
+ - name: Reset Deps
+ run: node . run resetdeps
+ - name: Add Problem Matcher
run: echo "::add-matcher::.github/matchers/tap.json"
- - run: npm test --ignore-scripts -w libnpmpublish
+ - name: Test
+ run: node . test --ignore-scripts -w libnpmpublish
diff --git a/.github/workflows/ci-libnpmsearch.yml b/.github/workflows/ci-libnpmsearch.yml
index 83341b465..95a8d30bf 100644
--- a/.github/workflows/ci-libnpmsearch.yml
+++ b/.github/workflows/ci-libnpmsearch.yml
@@ -5,8 +5,6 @@ name: CI - libnpmsearch
on:
workflow_dispatch:
pull_request:
- branches:
- - '*'
paths:
- workspaces/libnpmsearch/**
push:
@@ -21,26 +19,47 @@ on:
jobs:
lint:
+ name: Lint
+ if: github.repository_owner == 'npm'
runs-on: ubuntu-latest
+ defaults:
+ run:
+ shell: bash
steps:
- - uses: actions/checkout@v3
- - name: Setup git user
+ - name: Checkout
+ uses: actions/checkout@v3
+ - name: Setup Git User
run: |
git config --global user.email "npm-cli+bot@github.com"
git config --global user.name "npm CLI robot"
- - uses: actions/setup-node@v3
+ - name: Setup Node
+ uses: actions/setup-node@v3
with:
node-version: 18.x
- - name: Update npm to latest
- run: npm i --prefer-online --no-fund --no-audit -g npm@latest
- - run: npm -v
- - run: npm i --ignore-scripts --no-audit --no-fund
- - run: npm run lint -w libnpmsearch
+ cache: npm
+ - name: Reset Deps
+ run: node . run resetdeps
+ - name: Lint
+ run: node . run lint --ignore-scripts
+ - name: Post Lint
+ run: node . run postlint --ignore-scripts
test:
+ name: Test - ${{ matrix.platform.name }} - ${{ matrix.node-version }}
+ if: github.repository_owner == 'npm'
strategy:
fail-fast: false
matrix:
+ platform:
+ - name: Linux
+ os: ubuntu-latest
+ shell: bash
+ - name: macOS
+ os: macos-latest
+ shell: bash
+ - name: Windows
+ os: windows-latest
+ shell: cmd
node-version:
- 14.17.0
- 14.x
@@ -48,45 +67,25 @@ jobs:
- 16.x
- 18.0.0
- 18.x
- platform:
- - os: ubuntu-latest
- shell: bash
- - os: macos-latest
- shell: bash
- - os: windows-latest
- shell: cmd
runs-on: ${{ matrix.platform.os }}
defaults:
run:
shell: ${{ matrix.platform.shell }}
steps:
- - uses: actions/checkout@v3
- - name: Setup git user
+ - name: Checkout
+ uses: actions/checkout@v3
+ - name: Setup Git User
run: |
git config --global user.email "npm-cli+bot@github.com"
git config --global user.name "npm CLI robot"
- - uses: actions/setup-node@v3
+ - name: Setup Node
+ uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
- - name: Update to workable npm (windows)
- # node 12 and 14 ship with npm@6, which is known to fail when updating itself in windows
- if: matrix.platform.os == 'windows-latest' && (startsWith(matrix.node-version, '12.') || startsWith(matrix.node-version, '14.'))
- run: |
- curl -sO https://registry.npmjs.org/npm/-/npm-7.5.4.tgz
- tar xf npm-7.5.4.tgz
- cd package
- node lib/npm.js install --no-fund --no-audit -g ..\npm-7.5.4.tgz
- cd ..
- rmdir /s /q package
- - name: Update npm to 7
- # If we do test on npm 10 it needs npm7
- if: startsWith(matrix.node-version, '10.')
- run: npm i --prefer-online --no-fund --no-audit -g npm@7
- - name: Update npm to latest
- if: ${{ !startsWith(matrix.node-version, '10.') }}
- run: npm i --prefer-online --no-fund --no-audit -g npm@latest
- - run: npm -v
- - run: npm i --ignore-scripts --no-audit --no-fund
- - name: add tap problem matcher
+ cache: npm
+ - name: Reset Deps
+ run: node . run resetdeps
+ - name: Add Problem Matcher
run: echo "::add-matcher::.github/matchers/tap.json"
- - run: npm test --ignore-scripts -w libnpmsearch
+ - name: Test
+ run: node . test --ignore-scripts -w libnpmsearch
diff --git a/.github/workflows/ci-libnpmteam.yml b/.github/workflows/ci-libnpmteam.yml
index 38d77d209..aa82f5a7a 100644
--- a/.github/workflows/ci-libnpmteam.yml
+++ b/.github/workflows/ci-libnpmteam.yml
@@ -5,8 +5,6 @@ name: CI - libnpmteam
on:
workflow_dispatch:
pull_request:
- branches:
- - '*'
paths:
- workspaces/libnpmteam/**
push:
@@ -21,26 +19,47 @@ on:
jobs:
lint:
+ name: Lint
+ if: github.repository_owner == 'npm'
runs-on: ubuntu-latest
+ defaults:
+ run:
+ shell: bash
steps:
- - uses: actions/checkout@v3
- - name: Setup git user
+ - name: Checkout
+ uses: actions/checkout@v3
+ - name: Setup Git User
run: |
git config --global user.email "npm-cli+bot@github.com"
git config --global user.name "npm CLI robot"
- - uses: actions/setup-node@v3
+ - name: Setup Node
+ uses: actions/setup-node@v3
with:
node-version: 18.x
- - name: Update npm to latest
- run: npm i --prefer-online --no-fund --no-audit -g npm@latest
- - run: npm -v
- - run: npm i --ignore-scripts --no-audit --no-fund
- - run: npm run lint -w libnpmteam
+ cache: npm
+ - name: Reset Deps
+ run: node . run resetdeps
+ - name: Lint
+ run: node . run lint --ignore-scripts
+ - name: Post Lint
+ run: node . run postlint --ignore-scripts
test:
+ name: Test - ${{ matrix.platform.name }} - ${{ matrix.node-version }}
+ if: github.repository_owner == 'npm'
strategy:
fail-fast: false
matrix:
+ platform:
+ - name: Linux
+ os: ubuntu-latest
+ shell: bash
+ - name: macOS
+ os: macos-latest
+ shell: bash
+ - name: Windows
+ os: windows-latest
+ shell: cmd
node-version:
- 14.17.0
- 14.x
@@ -48,45 +67,25 @@ jobs:
- 16.x
- 18.0.0
- 18.x
- platform:
- - os: ubuntu-latest
- shell: bash
- - os: macos-latest
- shell: bash
- - os: windows-latest
- shell: cmd
runs-on: ${{ matrix.platform.os }}
defaults:
run:
shell: ${{ matrix.platform.shell }}
steps:
- - uses: actions/checkout@v3
- - name: Setup git user
+ - name: Checkout
+ uses: actions/checkout@v3
+ - name: Setup Git User
run: |
git config --global user.email "npm-cli+bot@github.com"
git config --global user.name "npm CLI robot"
- - uses: actions/setup-node@v3
+ - name: Setup Node
+ uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
- - name: Update to workable npm (windows)
- # node 12 and 14 ship with npm@6, which is known to fail when updating itself in windows
- if: matrix.platform.os == 'windows-latest' && (startsWith(matrix.node-version, '12.') || startsWith(matrix.node-version, '14.'))
- run: |
- curl -sO https://registry.npmjs.org/npm/-/npm-7.5.4.tgz
- tar xf npm-7.5.4.tgz
- cd package
- node lib/npm.js install --no-fund --no-audit -g ..\npm-7.5.4.tgz
- cd ..
- rmdir /s /q package
- - name: Update npm to 7
- # If we do test on npm 10 it needs npm7
- if: startsWith(matrix.node-version, '10.')
- run: npm i --prefer-online --no-fund --no-audit -g npm@7
- - name: Update npm to latest
- if: ${{ !startsWith(matrix.node-version, '10.') }}
- run: npm i --prefer-online --no-fund --no-audit -g npm@latest
- - run: npm -v
- - run: npm i --ignore-scripts --no-audit --no-fund
- - name: add tap problem matcher
+ cache: npm
+ - name: Reset Deps
+ run: node . run resetdeps
+ - name: Add Problem Matcher
run: echo "::add-matcher::.github/matchers/tap.json"
- - run: npm test --ignore-scripts -w libnpmteam
+ - name: Test
+ run: node . test --ignore-scripts -w libnpmteam
diff --git a/.github/workflows/ci-libnpmversion.yml b/.github/workflows/ci-libnpmversion.yml
index 023fd8b7a..1bb0219fc 100644
--- a/.github/workflows/ci-libnpmversion.yml
+++ b/.github/workflows/ci-libnpmversion.yml
@@ -5,8 +5,6 @@ name: CI - libnpmversion
on:
workflow_dispatch:
pull_request:
- branches:
- - '*'
paths:
- workspaces/libnpmversion/**
push:
@@ -21,26 +19,47 @@ on:
jobs:
lint:
+ name: Lint
+ if: github.repository_owner == 'npm'
runs-on: ubuntu-latest
+ defaults:
+ run:
+ shell: bash
steps:
- - uses: actions/checkout@v3
- - name: Setup git user
+ - name: Checkout
+ uses: actions/checkout@v3
+ - name: Setup Git User
run: |
git config --global user.email "npm-cli+bot@github.com"
git config --global user.name "npm CLI robot"
- - uses: actions/setup-node@v3
+ - name: Setup Node
+ uses: actions/setup-node@v3
with:
node-version: 18.x
- - name: Update npm to latest
- run: npm i --prefer-online --no-fund --no-audit -g npm@latest
- - run: npm -v
- - run: npm i --ignore-scripts --no-audit --no-fund
- - run: npm run lint -w libnpmversion
+ cache: npm
+ - name: Reset Deps
+ run: node . run resetdeps
+ - name: Lint
+ run: node . run lint --ignore-scripts
+ - name: Post Lint
+ run: node . run postlint --ignore-scripts
test:
+ name: Test - ${{ matrix.platform.name }} - ${{ matrix.node-version }}
+ if: github.repository_owner == 'npm'
strategy:
fail-fast: false
matrix:
+ platform:
+ - name: Linux
+ os: ubuntu-latest
+ shell: bash
+ - name: macOS
+ os: macos-latest
+ shell: bash
+ - name: Windows
+ os: windows-latest
+ shell: cmd
node-version:
- 14.17.0
- 14.x
@@ -48,45 +67,25 @@ jobs:
- 16.x
- 18.0.0
- 18.x
- platform:
- - os: ubuntu-latest
- shell: bash
- - os: macos-latest
- shell: bash
- - os: windows-latest
- shell: cmd
runs-on: ${{ matrix.platform.os }}
defaults:
run:
shell: ${{ matrix.platform.shell }}
steps:
- - uses: actions/checkout@v3
- - name: Setup git user
+ - name: Checkout
+ uses: actions/checkout@v3
+ - name: Setup Git User
run: |
git config --global user.email "npm-cli+bot@github.com"
git config --global user.name "npm CLI robot"
- - uses: actions/setup-node@v3
+ - name: Setup Node
+ uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
- - name: Update to workable npm (windows)
- # node 12 and 14 ship with npm@6, which is known to fail when updating itself in windows
- if: matrix.platform.os == 'windows-latest' && (startsWith(matrix.node-version, '12.') || startsWith(matrix.node-version, '14.'))
- run: |
- curl -sO https://registry.npmjs.org/npm/-/npm-7.5.4.tgz
- tar xf npm-7.5.4.tgz
- cd package
- node lib/npm.js install --no-fund --no-audit -g ..\npm-7.5.4.tgz
- cd ..
- rmdir /s /q package
- - name: Update npm to 7
- # If we do test on npm 10 it needs npm7
- if: startsWith(matrix.node-version, '10.')
- run: npm i --prefer-online --no-fund --no-audit -g npm@7
- - name: Update npm to latest
- if: ${{ !startsWith(matrix.node-version, '10.') }}
- run: npm i --prefer-online --no-fund --no-audit -g npm@latest
- - run: npm -v
- - run: npm i --ignore-scripts --no-audit --no-fund
- - name: add tap problem matcher
+ cache: npm
+ - name: Reset Deps
+ run: node . run resetdeps
+ - name: Add Problem Matcher
run: echo "::add-matcher::.github/matchers/tap.json"
- - run: npm test --ignore-scripts -w libnpmversion
+ - name: Test
+ run: node . test --ignore-scripts -w libnpmversion
diff --git a/.github/workflows/ci-npmcli-arborist.yml b/.github/workflows/ci-npmcli-arborist.yml
index d2c83de9e..7d571a608 100644
--- a/.github/workflows/ci-npmcli-arborist.yml
+++ b/.github/workflows/ci-npmcli-arborist.yml
@@ -5,8 +5,6 @@ name: CI - @npmcli/arborist
on:
workflow_dispatch:
pull_request:
- branches:
- - '*'
paths:
- workspaces/arborist/**
push:
@@ -21,26 +19,47 @@ on:
jobs:
lint:
+ name: Lint
+ if: github.repository_owner == 'npm'
runs-on: ubuntu-latest
+ defaults:
+ run:
+ shell: bash
steps:
- - uses: actions/checkout@v3
- - name: Setup git user
+ - name: Checkout
+ uses: actions/checkout@v3
+ - name: Setup Git User
run: |
git config --global user.email "npm-cli+bot@github.com"
git config --global user.name "npm CLI robot"
- - uses: actions/setup-node@v3
+ - name: Setup Node
+ uses: actions/setup-node@v3
with:
node-version: 18.x
- - name: Update npm to latest
- run: npm i --prefer-online --no-fund --no-audit -g npm@latest
- - run: npm -v
- - run: npm i --ignore-scripts --no-audit --no-fund
- - run: npm run lint -w @npmcli/arborist
+ cache: npm
+ - name: Reset Deps
+ run: node . run resetdeps
+ - name: Lint
+ run: node . run lint --ignore-scripts
+ - name: Post Lint
+ run: node . run postlint --ignore-scripts
test:
+ name: Test - ${{ matrix.platform.name }} - ${{ matrix.node-version }}
+ if: github.repository_owner == 'npm'
strategy:
fail-fast: false
matrix:
+ platform:
+ - name: Linux
+ os: ubuntu-latest
+ shell: bash
+ - name: macOS
+ os: macos-latest
+ shell: bash
+ - name: Windows
+ os: windows-latest
+ shell: cmd
node-version:
- 14.17.0
- 14.x
@@ -48,45 +67,25 @@ jobs:
- 16.x
- 18.0.0
- 18.x
- platform:
- - os: ubuntu-latest
- shell: bash
- - os: macos-latest
- shell: bash
- - os: windows-latest
- shell: cmd
runs-on: ${{ matrix.platform.os }}
defaults:
run:
shell: ${{ matrix.platform.shell }}
steps:
- - uses: actions/checkout@v3
- - name: Setup git user
+ - name: Checkout
+ uses: actions/checkout@v3
+ - name: Setup Git User
run: |
git config --global user.email "npm-cli+bot@github.com"
git config --global user.name "npm CLI robot"
- - uses: actions/setup-node@v3
+ - name: Setup Node
+ uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
- - name: Update to workable npm (windows)
- # node 12 and 14 ship with npm@6, which is known to fail when updating itself in windows
- if: matrix.platform.os == 'windows-latest' && (startsWith(matrix.node-version, '12.') || startsWith(matrix.node-version, '14.'))
- run: |
- curl -sO https://registry.npmjs.org/npm/-/npm-7.5.4.tgz
- tar xf npm-7.5.4.tgz
- cd package
- node lib/npm.js install --no-fund --no-audit -g ..\npm-7.5.4.tgz
- cd ..
- rmdir /s /q package
- - name: Update npm to 7
- # If we do test on npm 10 it needs npm7
- if: startsWith(matrix.node-version, '10.')
- run: npm i --prefer-online --no-fund --no-audit -g npm@7
- - name: Update npm to latest
- if: ${{ !startsWith(matrix.node-version, '10.') }}
- run: npm i --prefer-online --no-fund --no-audit -g npm@latest
- - run: npm -v
- - run: npm i --ignore-scripts --no-audit --no-fund
- - name: add tap problem matcher
+ cache: npm
+ - name: Reset Deps
+ run: node . run resetdeps
+ - name: Add Problem Matcher
run: echo "::add-matcher::.github/matchers/tap.json"
- - run: npm test --ignore-scripts -w @npmcli/arborist
+ - name: Test
+ run: node . test --ignore-scripts -w @npmcli/arborist
diff --git a/.github/workflows/ci-release.yml b/.github/workflows/ci-release.yml
new file mode 100644
index 000000000..8e07a57fe
--- /dev/null
+++ b/.github/workflows/ci-release.yml
@@ -0,0 +1,214 @@
+# This file is automatically added by @npmcli/template-oss. Do not edit.
+
+name: CI - Release
+
+on:
+ workflow_call:
+ inputs:
+ ref:
+ required: true
+ type: string
+ check-sha:
+ required: true
+ type: string
+
+jobs:
+ lint-all:
+ name: Lint All
+ if: github.repository_owner == 'npm'
+ runs-on: ubuntu-latest
+ defaults:
+ run:
+ shell: bash
+ steps:
+ - name: Create Check
+ uses: LouisBrunner/checks-action@v1.3.1
+ id: check
+
+ with:
+ token: ${{ secrets.GITHUB_TOKEN }}
+ status: in_progress
+ name: Lint All
+ sha: ${{ inputs.check-sha }}
+ # XXX: this does not work when using the default GITHUB_TOKEN.
+ # Instead we post the main job url to the PR as a comment which
+ # will link to all the other checks. To work around this we would
+ # need to create a GitHub that would create on-demand tokens.
+ # https://github.com/LouisBrunner/checks-action/issues/18
+ # details_url:
+ - name: Checkout
+ uses: actions/checkout@v3
+ with:
+ ref: ${{ inputs.ref }}
+ - name: Setup Git User
+ run: |
+ git config --global user.email "npm-cli+bot@github.com"
+ git config --global user.name "npm CLI robot"
+ - name: Setup Node
+ uses: actions/setup-node@v3
+ with:
+ node-version: 18.x
+ cache: npm
+ - name: Reset Deps
+ run: node . run resetdeps
+ - name: Lint
+ run: node . run lint --ignore-scripts
+ - name: Post Lint
+ run: node . run postlint --ignore-scripts
+ - name: Conclude Check
+ uses: LouisBrunner/checks-action@v1.3.1
+ if: always()
+ with:
+ token: ${{ secrets.GITHUB_TOKEN }}
+ conclusion: ${{ job.status }}
+ check_id: ${{ steps.check.outputs.check_id }}
+
+ test-all:
+ name: Test All - ${{ matrix.platform.name }} - ${{ matrix.node-version }}
+ if: github.repository_owner == 'npm'
+ strategy:
+ fail-fast: false
+ matrix:
+ platform:
+ - name: Linux
+ os: ubuntu-latest
+ shell: bash
+ - name: macOS
+ os: macos-latest
+ shell: bash
+ - name: Windows
+ os: windows-latest
+ shell: cmd
+ node-version:
+ - 14.17.0
+ - 14.x
+ - 16.13.0
+ - 16.x
+ - 18.0.0
+ - 18.x
+ runs-on: ${{ matrix.platform.os }}
+ defaults:
+ run:
+ shell: ${{ matrix.platform.shell }}
+ steps:
+ - name: Create Check
+ uses: LouisBrunner/checks-action@v1.3.1
+ id: check
+
+ with:
+ token: ${{ secrets.GITHUB_TOKEN }}
+ status: in_progress
+ name: Test All - ${{ matrix.platform.name }} - ${{ matrix.node-version }}
+ sha: ${{ inputs.check-sha }}
+ # XXX: this does not work when using the default GITHUB_TOKEN.
+ # Instead we post the main job url to the PR as a comment which
+ # will link to all the other checks. To work around this we would
+ # need to create a GitHub that would create on-demand tokens.
+ # https://github.com/LouisBrunner/checks-action/issues/18
+ # details_url:
+ - name: Checkout
+ uses: actions/checkout@v3
+ with:
+ ref: ${{ inputs.ref }}
+ - name: Setup Git User
+ run: |
+ git config --global user.email "npm-cli+bot@github.com"
+ git config --global user.name "npm CLI robot"
+ - name: Setup Node
+ uses: actions/setup-node@v3
+ with:
+ node-version: ${{ matrix.node-version }}
+ cache: npm
+ - name: Reset Deps
+ run: node . run resetdeps
+ - name: Add Problem Matcher
+ run: echo "::add-matcher::.github/matchers/tap.json"
+ - name: Test
+ run: node . test --ignore-scripts -ws -iwr --if-present
+ - name: Conclude Check
+ uses: LouisBrunner/checks-action@v1.3.1
+ if: always()
+ with:
+ token: ${{ secrets.GITHUB_TOKEN }}
+ conclusion: ${{ job.status }}
+ check_id: ${{ steps.check.outputs.check_id }}
+
+ smoke-publish:
+ name: Smoke Publish - ${{ matrix.platform.name }} - ${{ matrix.node-version }}
+ if: github.repository_owner == 'npm'
+ strategy:
+ fail-fast: false
+ matrix:
+ platform:
+ - name: Linux
+ os: ubuntu-latest
+ shell: bash
+ - name: macOS
+ os: macos-latest
+ shell: bash
+ - name: Windows
+ os: windows-latest
+ shell: cmd
+ node-version:
+ - 14.17.0
+ - 14.x
+ - 16.13.0
+ - 16.x
+ - 18.0.0
+ - 18.x
+ runs-on: ${{ matrix.platform.os }}
+ defaults:
+ run:
+ shell: ${{ matrix.platform.shell }}
+ steps:
+ - name: Create Check
+ uses: LouisBrunner/checks-action@v1.3.1
+ id: check
+
+ with:
+ token: ${{ secrets.GITHUB_TOKEN }}
+ status: in_progress
+ name: Smoke Publish - ${{ matrix.platform.name }} - ${{ matrix.node-version }}
+ sha: ${{ inputs.check-sha }}
+ # XXX: this does not work when using the default GITHUB_TOKEN.
+ # Instead we post the main job url to the PR as a comment which
+ # will link to all the other checks. To work around this we would
+ # need to create a GitHub that would create on-demand tokens.
+ # https://github.com/LouisBrunner/checks-action/issues/18
+ # details_url:
+ - name: Checkout
+ uses: actions/checkout@v3
+ with:
+ ref: ${{ inputs.ref }}
+ - name: Setup Git User
+ run: |
+ git config --global user.email "npm-cli+bot@github.com"
+ git config --global user.name "npm CLI robot"
+ - name: Setup Node
+ uses: actions/setup-node@v3
+ with:
+ node-version: ${{ matrix.node-version }}
+ cache: npm
+ - name: Reset Deps
+ run: node . run resetdeps
+ - name: Pack
+ run: |
+ NPM_VERSION="$(node . --version)-$GITHUB_SHA.0"
+ node . version $NPM_VERSION --ignore-scripts
+ node . run resetdeps
+ git clean -fd
+ node . ls --production >/dev/null
+ node . prune --production --no-save --no-audit --no-fund
+ node scripts/git-dirty.js
+ node . pack --pack-destination=$RUNNER_TEMP
+ node . install -g $RUNNER_TEMP/npm-$NPM_VERSION.tgz
+ node . install -w smoke-tests --ignore-scripts --no-audit --no-fund
+ rm -rf {lib,bin,index.js}
+ SMOKE_PUBLISH_NPM=1 node . test -w smoke-tests --ignore-scripts
+ - name: Conclude Check
+ uses: LouisBrunner/checks-action@v1.3.1
+ if: always()
+ with:
+ token: ${{ secrets.GITHUB_TOKEN }}
+ conclusion: ${{ job.status }}
+ check_id: ${{ steps.check.outputs.check_id }}
diff --git a/.github/workflows/ci-smoke-tests.yml b/.github/workflows/ci-smoke-tests.yml
new file mode 100644
index 000000000..346335a72
--- /dev/null
+++ b/.github/workflows/ci-smoke-tests.yml
@@ -0,0 +1,91 @@
+# This file is automatically added by @npmcli/template-oss. Do not edit.
+
+name: CI - smoke-tests
+
+on:
+ workflow_dispatch:
+ pull_request:
+ paths:
+ - smoke-tests/**
+ push:
+ branches:
+ - main
+ - latest
+ paths:
+ - smoke-tests/**
+ schedule:
+ # "At 09:00 UTC (02:00 PT) on Monday" https://crontab.guru/#0_9_*_*_1
+ - cron: "0 9 * * 1"
+
+jobs:
+ lint:
+ name: Lint
+ if: github.repository_owner == 'npm'
+ runs-on: ubuntu-latest
+ defaults:
+ run:
+ shell: bash
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+ - name: Setup Git User
+ run: |
+ git config --global user.email "npm-cli+bot@github.com"
+ git config --global user.name "npm CLI robot"
+ - name: Setup Node
+ uses: actions/setup-node@v3
+ with:
+ node-version: 18.x
+ cache: npm
+ - name: Reset Deps
+ run: node . run resetdeps
+ - name: Lint
+ run: node . run lint --ignore-scripts
+ - name: Post Lint
+ run: node . run postlint --ignore-scripts
+
+ test:
+ name: Test - ${{ matrix.platform.name }} - ${{ matrix.node-version }}
+ if: github.repository_owner == 'npm'
+ strategy:
+ fail-fast: false
+ matrix:
+ platform:
+ - name: Linux
+ os: ubuntu-latest
+ shell: bash
+ - name: macOS
+ os: macos-latest
+ shell: bash
+ - name: Windows
+ os: windows-latest
+ shell: cmd
+ node-version:
+ - 14.17.0
+ - 14.x
+ - 16.13.0
+ - 16.x
+ - 18.0.0
+ - 18.x
+ runs-on: ${{ matrix.platform.os }}
+ defaults:
+ run:
+ shell: ${{ matrix.platform.shell }}
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+ - name: Setup Git User
+ run: |
+ git config --global user.email "npm-cli+bot@github.com"
+ git config --global user.name "npm CLI robot"
+ - name: Setup Node
+ uses: actions/setup-node@v3
+ with:
+ node-version: ${{ matrix.node-version }}
+ cache: npm
+ - name: Reset Deps
+ run: node . run resetdeps
+ - name: Add Problem Matcher
+ run: echo "::add-matcher::.github/matchers/tap.json"
+ - name: Test
+ run: node . test --ignore-scripts -w smoke-tests
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 8914fa041..cb34dca32 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -1,70 +1,139 @@
+# This file is automatically added by @npmcli/template-oss. Do not edit.
+
name: CI - cli
on:
workflow_dispatch:
pull_request:
- branches:
- - '*'
+ paths-ignore:
push:
branches:
+ - main
- latest
+ paths-ignore:
+ schedule:
+ # "At 09:00 UTC (02:00 PT) on Monday" https://crontab.guru/#0_9_*_*_1
+ - cron: "0 9 * * 1"
jobs:
lint:
+ name: Lint
+ if: github.repository_owner == 'npm'
runs-on: ubuntu-latest
+ defaults:
+ run:
+ shell: bash
steps:
- - uses: actions/checkout@v3
- - name: Use Node.js 16.x
+ - name: Checkout
+ uses: actions/checkout@v3
+ - name: Setup Git User
+ run: |
+ git config --global user.email "npm-cli+bot@github.com"
+ git config --global user.name "npm CLI robot"
+ - name: Setup Node
uses: actions/setup-node@v3
with:
- node-version: 16.x
+ node-version: 18.x
cache: npm
- - run: node bin/npm-cli.js run resetdeps
- - run: node bin/npm-cli.js run lint
+ - name: Reset Deps
+ run: node . run resetdeps
+ - name: Lint
+ run: node . run lint --ignore-scripts
+ - name: Post Lint
+ run: node . run postlint --ignore-scripts
- check_docs:
+ check-docs:
+ name: Check Docs
+ if: github.repository_owner == 'npm'
runs-on: ubuntu-latest
+ defaults:
+ run:
+ shell: bash
steps:
- - uses: actions/checkout@v3
- - name: Use Node.js 16.x
+ - name: Checkout
+ uses: actions/checkout@v3
+ - name: Setup Git User
+ run: |
+ git config --global user.email "npm-cli+bot@github.com"
+ git config --global user.name "npm CLI robot"
+ - name: Setup Node
uses: actions/setup-node@v3
with:
- node-version: 16.x
+ node-version: 18.x
cache: npm
- - run: make freshdocs
- - run: node scripts/git-dirty.js
+ - name: Reset Deps
+ run: node . run resetdeps
+ - name: Make Docs
+ run: make freshdocs
+ - name: Check Git Status
+ run: node scripts/git-dirty.js
licenses:
+ name: Check Licenses
+ if: github.repository_owner == 'npm'
runs-on: ubuntu-latest
+ defaults:
+ run:
+ shell: bash
steps:
- - uses: actions/checkout@v3
- - name: Use Node.js 16.x
+ - name: Checkout
+ uses: actions/checkout@v3
+ - name: Setup Git User
+ run: |
+ git config --global user.email "npm-cli+bot@github.com"
+ git config --global user.name "npm CLI robot"
+ - name: Setup Node
uses: actions/setup-node@v3
with:
- node-version: 16.x
+ node-version: 18.x
cache: npm
- - run: node bin/npm-cli.js run resetdeps
- - run: node bin/npm-cli.js run licenses
-
+ - name: Reset Deps
+ run: node . run resetdeps
+ - name: Check Licenses
+ run: node . run licenses
+
smoke-tests:
+ name: Smoke Tests
+ if: github.repository_owner == 'npm'
runs-on: ubuntu-latest
+ defaults:
+ run:
+ shell: bash
steps:
- - uses: actions/checkout@v3
- - name: Use Node.js 16.x
+ - name: Checkout
+ uses: actions/checkout@v3
+ - name: Setup Git User
+ run: |
+ git config --global user.email "npm-cli+bot@github.com"
+ git config --global user.name "npm CLI robot"
+ - name: Setup Node
uses: actions/setup-node@v3
with:
- node-version: 16.x
+ node-version: 18.x
cache: npm
- - run: node bin/npm-cli.js run resetdeps
- - run: node bin/npm-cli.js test -w smoke-tests --ignore-scripts
- - name: git status
- if: matrix.platform.os != 'windows-latest'
+ - name: Reset Deps
+ run: node . run resetdeps
+ - name: Run Smoke Tests
+ run: node . test -w smoke-tests --ignore-scripts
+ - name: Check Git Status
run: node scripts/git-dirty.js
test:
+ name: Test - ${{ matrix.platform.name }} - ${{ matrix.node-version }}
+ if: github.repository_owner == 'npm'
strategy:
fail-fast: false
matrix:
+ platform:
+ - name: Linux
+ os: ubuntu-latest
+ shell: bash
+ - name: macOS
+ os: macos-latest
+ shell: bash
+ - name: Windows
+ os: windows-latest
+ shell: cmd
node-version:
- 14.17.0
- 14.x
@@ -72,26 +141,28 @@ jobs:
- 16.x
- 18.0.0
- 18.x
- platform:
- - os: ubuntu-latest
- shell: bash
- - os: macos-latest
- shell: bash
- - os: windows-latest
- shell: cmd
runs-on: ${{ matrix.platform.os }}
defaults:
run:
shell: ${{ matrix.platform.shell }}
steps:
- - uses: actions/checkout@v3
- - name: Use Node.js ${{ matrix.node-version }}
- uses: actions/setup-node@v3
- with:
- node-version: ${{ matrix.node-version }}
- cache: npm
- - run: node bin/npm-cli.js run resetdeps
- - run: node bin/npm-cli.js run test --ignore-scripts
- - name: git status
- if: matrix.platform.os != 'windows-latest'
- run: node scripts/git-dirty.js
+ - name: Checkout
+ uses: actions/checkout@v3
+ - name: Setup Git User
+ run: |
+ git config --global user.email "npm-cli+bot@github.com"
+ git config --global user.name "npm CLI robot"
+ - name: Setup Node
+ uses: actions/setup-node@v3
+ with:
+ node-version: ${{ matrix.node-version }}
+ cache: npm
+ - name: Reset Deps
+ run: node . run resetdeps
+ - name: Add Problem Matcher
+ run: echo "::add-matcher::.github/matchers/tap.json"
+ - name: Test
+ run: node . test --ignore-scripts -iwr
+ - name: Check Git Status
+ if: matrix.platform.os != 'windows-latest'
+ run: node scripts/git-dirty.js
diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml
new file mode 100644
index 000000000..66b9498a6
--- /dev/null
+++ b/.github/workflows/codeql-analysis.yml
@@ -0,0 +1,38 @@
+# This file is automatically added by @npmcli/template-oss. Do not edit.
+
+name: CodeQL
+
+on:
+ push:
+ branches:
+ - main
+ - latest
+ pull_request:
+ branches:
+ - main
+ - latest
+ schedule:
+ # "At 10:00 UTC (03:00 PT) on Monday" https://crontab.guru/#0_10_*_*_1
+ - cron: "0 10 * * 1"
+
+jobs:
+ analyze:
+ name: Analyze
+ runs-on: ubuntu-latest
+ permissions:
+ actions: read
+ contents: read
+ security-events: write
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+ - name: Setup Git User
+ run: |
+ git config --global user.email "npm-cli+bot@github.com"
+ git config --global user.name "npm CLI robot"
+ - name: Initialize CodeQL
+ uses: github/codeql-action/init@v2
+ with:
+ languages: javascript
+ - name: Perform CodeQL Analysis
+ uses: github/codeql-action/analyze@v2
diff --git a/.github/workflows/post-dependabot.yml b/.github/workflows/post-dependabot.yml
new file mode 100644
index 000000000..1302c7a80
--- /dev/null
+++ b/.github/workflows/post-dependabot.yml
@@ -0,0 +1,88 @@
+# This file is automatically added by @npmcli/template-oss. Do not edit.
+
+name: Post Dependabot
+
+on: pull_request
+
+permissions:
+ contents: write
+
+jobs:
+ template-oss:
+ name: template-oss
+ if: github.repository_owner == 'npm' && github.actor == 'dependabot[bot]'
+ runs-on: ubuntu-latest
+ defaults:
+ run:
+ shell: bash
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+ with:
+ ref: ${{ github.event.pull_request.head_ref }}
+ - name: Setup Git User
+ run: |
+ git config --global user.email "npm-cli+bot@github.com"
+ git config --global user.name "npm CLI robot"
+ - name: Setup Node
+ uses: actions/setup-node@v3
+ with:
+ node-version: 18.x
+ cache: npm
+ - name: Reset Deps
+ run: node . run resetdeps
+ - name: Fetch Dependabot Metadata
+ id: metadata
+ uses: dependabot/fetch-metadata@v1
+ with:
+ github-token: ${{ secrets.GITHUB_TOKEN }}
+
+ # Dependabot can update multiple directories so we output which directory
+ # it is acting on so we can run the command for the correct root or workspace
+ - name: Get Dependabot Directory
+ if: contains(steps.metadata.outputs.dependency-names, '@npmcli/template-oss')
+ id: flags
+ run: |
+ if [[ "${{ steps.metadata.outputs.directory }}" == "/" ]]; then
+ echo "::set-output name=workspace::-iwr"
+ else
+ echo "::set-output name=workspace::-w ${{ steps.metadata.outputs.directory }}"
+ fi
+
+ - name: Apply Changes
+ if: steps.flags.outputs.workspace
+ id: apply
+ run: |
+ node . run template-oss-apply ${{ steps.flags.outputs.workspace }}
+ if [[ `git status --porcelain` ]]; then
+ echo "::set-output name=changes::true"
+ fi
+
+ # This step will fail if template-oss has made any workflow updates. It is impossible
+ # for a workflow to update other workflows. In the case it does fail, we continue
+ # and then try to apply only a portion of the changes in the next step
+ - name: Push All Changes
+ if: steps.apply.outputs.changes
+ id: push
+ continue-on-error: true
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ run: |
+ git commit -am "chore: postinstall for dependabot template-oss PR"
+ git push
+
+ - name: Push All Changes Except Workflows
+ if: steps.push.outcome == 'failure'
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ run: |
+ git reset HEAD~
+ git checkout HEAD -- .github/workflows/
+ git clean -fd .github/workflows/
+ git commit -am "chore: postinstall for dependabot template-oss PR"
+ git push
+
+ - name: Check Changes
+ if: steps.apply.outputs.changes
+ run: |
+ node . exec --offline ${{ steps.flags.outputs.workspace }} -- template-oss-check
diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml
new file mode 100644
index 000000000..3d0082088
--- /dev/null
+++ b/.github/workflows/pull-request.yml
@@ -0,0 +1,45 @@
+# This file is automatically added by @npmcli/template-oss. Do not edit.
+
+name: Pull Request
+
+on:
+ pull_request:
+ types:
+ - opened
+ - reopened
+ - edited
+ - synchronize
+
+jobs:
+ commitlint:
+ name: Lint Commits
+ if: github.repository_owner == 'npm'
+ runs-on: ubuntu-latest
+ defaults:
+ run:
+ shell: bash
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+ with:
+ fetch-depth: 0
+ - name: Setup Git User
+ run: |
+ git config --global user.email "npm-cli+bot@github.com"
+ git config --global user.name "npm CLI robot"
+ - name: Setup Node
+ uses: actions/setup-node@v3
+ with:
+ node-version: 18.x
+ cache: npm
+ - name: Reset Deps
+ run: node . run resetdeps
+ - name: Run Commitlint on Commits
+ id: commit
+ continue-on-error: true
+ run: |
+ npx --offline commitlint -V --from origin/${{ github.base_ref }} --to ${{ github.event.pull_request.head.sha }}
+ - name: Run Commitlint on PR Title
+ if: steps.commit.outcome == 'failure'
+ run: |
+ echo ${{ github.event.pull_request.title }} | npx --offline commitlint -V
diff --git a/.github/workflows/release-please.yml b/.github/workflows/release-please.yml
deleted file mode 100644
index edd39d0ba..000000000
--- a/.github/workflows/release-please.yml
+++ /dev/null
@@ -1,101 +0,0 @@
-# This file is automatically added by @npmcli/template-oss. Do not edit.
-
-name: Release Please
-
-on:
- push:
- branches:
- - main
- - latest
-
-permissions:
- contents: write
- pull-requests: write
-
-jobs:
- release-please:
- runs-on: ubuntu-latest
- outputs:
- pr: ${{ steps.release.outputs.pr }}
- release: ${{ steps.release.outputs.release }}
- steps:
- - uses: actions/checkout@v3
- - name: Setup git user
- run: |
- git config --global user.email "npm-cli+bot@github.com"
- git config --global user.name "npm CLI robot"
- - uses: actions/setup-node@v3
- with:
- node-version: 18.x
- - name: Update npm to latest
- run: npm i --prefer-online --no-fund --no-audit -g npm@latest
- - run: npm -v
- - run: npm i --ignore-scripts --no-audit --no-fund
- - name: Release Please
- id: release
- run: npx --offline template-oss-release-please ${{ github.ref_name }}
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-
- post-pr:
- needs: release-please
- if: needs.release-please.outputs.pr
- runs-on: ubuntu-latest
- outputs:
- ref: ${{ steps.ref.outputs.branch }}
- steps:
- - name: Output ref
- id: ref
- run: echo "::set-output name=branch::${{ fromJSON(needs.release-please.outputs.pr).headBranchName }}"
- - uses: actions/checkout@v3
- with:
- fetch-depth: 0
- ref: ${{ steps.ref.outputs.branch }}
- - name: Setup git user
- run: |
- git config --global user.email "npm-cli+bot@github.com"
- git config --global user.name "npm CLI robot"
- - uses: actions/setup-node@v3
- with:
- node-version: 18.x
- - name: Update npm to latest
- run: npm i --prefer-online --no-fund --no-audit -g npm@latest
- - run: npm -v
- - run: npm i --ignore-scripts --no-audit --no-fund
- - name: Post pull request actions
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- run: |
- npm run rp-pull-request --ignore-scripts --if-present -ws -iwr
- git commit -am "chore: post pull request" || true
- git push
-
- release-test:
- needs: post-pr
- if: needs.post-pr.outputs.ref
- uses: ./.github/workflows/release.yml
- with:
- ref: ${{ needs.post-pr.outputs.ref }}
-
- post-release:
- needs: release-please
- if: needs.release-please.outputs.release
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v3
- - name: Setup git user
- run: |
- git config --global user.email "npm-cli+bot@github.com"
- git config --global user.name "npm CLI robot"
- - uses: actions/setup-node@v3
- with:
- node-version: 18.x
- - name: Update npm to latest
- run: npm i --prefer-online --no-fund --no-audit -g npm@latest
- - run: npm -v
- - run: npm i --ignore-scripts --no-audit --no-fund
- - name: Post release actions
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- run: |
- npm run rp-release --ignore-scripts --if-present -ws -iwr
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 5035e2651..87d95eeea 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -1,111 +1,225 @@
-name: Release - cli
+# This file is automatically added by @npmcli/template-oss. Do not edit.
+
+name: Release
on:
- workflow_call:
- inputs:
- ref:
- required: true
- type: string
+ push:
+ branches:
+ - main
+ - latest
+
+permissions:
+ contents: write
+ pull-requests: write
+ checks: write
jobs:
- lint-all:
+ release:
+ outputs:
+ pr: ${{ steps.release.outputs.pr }}
+ releases: ${{ steps.release.outputs.releases }}
+ release-flags: ${{ steps.release.outputs.release-flags }}
+ branch: ${{ steps.release.outputs.pr-branch }}
+ pr-number: ${{ steps.release.outputs.pr-number }}
+ comment-id: ${{ steps.pr-comment.outputs.result }}
+ check-id: ${{ steps.check.outputs.check_id }}
+ name: Release
+ if: github.repository_owner == 'npm'
runs-on: ubuntu-latest
+ defaults:
+ run:
+ shell: bash
steps:
- - uses: actions/checkout@v3
- with:
- ref: ${{ inputs.ref }}
- - name: Use Node.js 16.x
+ - name: Checkout
+ uses: actions/checkout@v3
+ - name: Setup Git User
+ run: |
+ git config --global user.email "npm-cli+bot@github.com"
+ git config --global user.name "npm CLI robot"
+ - name: Setup Node
uses: actions/setup-node@v3
with:
- node-version: 16.x
+ node-version: 18.x
cache: npm
- - run: node bin/npm-cli.js run resetdeps
- - run: node bin/npm-cli.js run lint-all --ignore-scripts
+ - name: Reset Deps
+ run: node . run resetdeps
+ - name: Release Please
+ id: release
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ run: |
+ npx --offline template-oss-release-please ${{ github.ref_name }}
+ - name: Post Pull Request Comment
+ if: steps.release.outputs.pr-number
+ uses: actions/github-script@v6
+ id: pr-comment
+ env:
+ PR_NUMBER: ${{ steps.release.outputs.pr-number }}
+ with:
+ script: |
+ const repo = { owner: context.repo.owner, repo: context.repo.repo }
+ const issue = { ...repo, issue_number: process.env.PR_NUMBER }
- smoke-publish:
- strategy:
- fail-fast: false
- matrix:
- node-version:
- - 14.17.0
- - 14.x
- - 16.13.0
- - 16.x
- - 18.0.0
- - 18.x
- platform:
- - os: ubuntu-latest
- shell: bash
- - os: macos-latest
- shell: bash
- # XXX: this should be possible in windows also
- # but resetdeps cant be a bash script
- runs-on: ${{ matrix.platform.os }}
+ const { data: workflow } = await github.rest.actions.getWorkflowRun({ ...repo, run_id: context.runId })
+
+ let body = '## Release Manager\n\n'
+
+ const comments = await github.paginate(github.rest.issues.listComments, issue)
+ let commentId = comments?.find(c => c.user.login === 'github-actions[bot]' && c.body.startsWith(body))?.id
+
+ body += `- Release workflow run: ${workflow.html_url}`
+ if (commentId) {
+ await github.rest.issues.updateComment({ ...repo, comment_id: commentId, body })
+ } else {
+ const { data: comment } = await github.rest.issues.createComment({ ...issue, body })
+ commentId = comment?.id
+ }
+
+ return commentId
+ - name: Create Check
+ uses: LouisBrunner/checks-action@v1.3.1
+ id: check
+ if: steps.release.outputs.pr-number
+ with:
+ token: ${{ secrets.GITHUB_TOKEN }}
+ status: in_progress
+ name: Release
+ sha: ${{ steps.release.outputs.pr-sha }}
+ # XXX: this does not work when using the default GITHUB_TOKEN.
+ # Instead we post the main job url to the PR as a comment which
+ # will link to all the other checks. To work around this we would
+ # need to create a GitHub that would create on-demand tokens.
+ # https://github.com/LouisBrunner/checks-action/issues/18
+ # details_url:
+
+ update:
+ needs: release
+ outputs:
+ sha: ${{ steps.commit.outputs.sha }}
+ check-id: ${{ steps.check.outputs.check_id }}
+ name: Update - Release
+ if: github.repository_owner == 'npm' && needs.release.outputs.pr
+ runs-on: ubuntu-latest
defaults:
run:
- shell: ${{ matrix.platform.shell }}
+ shell: bash
steps:
- - uses: actions/checkout@v3
+ - name: Checkout
+ uses: actions/checkout@v3
with:
- ref: ${{ inputs.ref }}
- - name: Setup git user
+ fetch-depth: 0
+ ref: ${{ needs.release.outputs.branch }}
+ - name: Setup Git User
run: |
- git config --global user.email "ops+npm-cli@npmjs.com"
- git config --global user.name "npm cli ops bot"
- - name: Use Node.js 16.x
+ git config --global user.email "npm-cli+bot@github.com"
+ git config --global user.name "npm CLI robot"
+ - name: Setup Node
uses: actions/setup-node@v3
with:
- node-version: 16.x
+ node-version: 18.x
cache: npm
- - name: Pack
+ - name: Reset Deps
+ run: node . run resetdeps
+ - name: Run Post Pull Request Actions
+ env:
+ RELEASE_PR_NUMBER: ${{ needs.release.outputs.pr-number }}
+ RELEASE_COMMENT_ID: ${{ needs.release.outputs.comment-id }}
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
- NPM_VERSION="$(node bin/npm-cli.js --version)-$GITHUB_SHA.0"
- node bin/npm-cli.js version $NPM_VERSION --ignore-scripts
- node bin/npm-cli.js run resetdeps
- git clean -fd
- node bin/npm-cli.js ls --production >/dev/null
- node bin/npm-cli.js prune --production --no-save --no-audit --no-fund
- node scripts/git-dirty.js
- node bin/npm-cli.js pack --pack-destination=$RUNNER_TEMP
- node bin/npm-cli.js install -g $RUNNER_TEMP/npm-$NPM_VERSION.tgz
- node bin/npm-cli.js install -w smoke-tests --ignore-scripts --no-audit --no-fund
- rm -rf {lib,bin,index.js}
- SMOKE_PUBLISH_NPM=1 npm test -w smoke-tests --ignore-scripts
-
- test-all:
- strategy:
- fail-fast: false
- matrix:
- node-version:
- - 14.17.0
- - 14.x
- - 16.13.0
- - 16.x
- - 18.0.0
- - 18.x
- platform:
- - os: ubuntu-latest
- shell: bash
- - os: macos-latest
- shell: bash
- - os: windows-latest
- shell: cmd
- runs-on: ${{ matrix.platform.os }}
+ node . run rp-pull-request --ignore-scripts -ws -iwr --if-present
+ - name: Commit
+ id: commit
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ run: |
+ git commit --all --amend --no-edit || true
+ git push --force-with-lease
+ echo "::set-output name=sha::$(git rev-parse HEAD)"
+ - name: Create Check
+ uses: LouisBrunner/checks-action@v1.3.1
+ id: check
+
+ with:
+ token: ${{ secrets.GITHUB_TOKEN }}
+ status: in_progress
+ name: Release
+ sha: ${{ steps.commit.outputs.sha }}
+ # XXX: this does not work when using the default GITHUB_TOKEN.
+ # Instead we post the main job url to the PR as a comment which
+ # will link to all the other checks. To work around this we would
+ # need to create a GitHub that would create on-demand tokens.
+ # https://github.com/LouisBrunner/checks-action/issues/18
+ # details_url:
+ - name: Conclude Check
+ uses: LouisBrunner/checks-action@v1.3.1
+ if: always()
+ with:
+ token: ${{ secrets.GITHUB_TOKEN }}
+ conclusion: ${{ job.status }}
+ check_id: ${{ needs.release.outputs.check-id }}
+
+ ci:
+ name: CI - Release
+ needs: [ release, update ]
+ if: needs.release.outputs.pr
+ uses: ./.github/workflows/ci-release.yml
+ with:
+ ref: ${{ needs.release.outputs.branch }}
+ check-sha: ${{ needs.update.outputs.sha }}
+
+ post-ci:
+ needs: [ release, update, ci ]
+ name: Post CI - Release
+ if: github.repository_owner == 'npm' && needs.release.outputs.pr && always()
+ runs-on: ubuntu-latest
defaults:
run:
- shell: ${{ matrix.platform.shell }}
+ shell: bash
steps:
- - uses: actions/checkout@v3
+ - name: Get Needs Result
+ id: needs-result
+ run: |
+ result=""
+ if [[ "${{ contains(needs.*.result, 'failure') }}" == "true" ]]; then
+ result="failure"
+ elif [[ "${{ contains(needs.*.result, 'cancelled') }}" == "true" ]]; then
+ result="cancelled"
+ else
+ result="success"
+ fi
+ echo "::set-output name=result::$result"
+ - name: Conclude Check
+ uses: LouisBrunner/checks-action@v1.3.1
+ if: always()
with:
- ref: ${{ inputs.ref }}
- - name: Use Node.js ${{ matrix.node-version }}
+ token: ${{ secrets.GITHUB_TOKEN }}
+ conclusion: ${{ steps.needs-result.outputs.result }}
+ check_id: ${{ needs.update.outputs.check-id }}
+
+ post-release:
+ needs: release
+ name: Post Release - Release
+ if: github.repository_owner == 'npm' && needs.release.outputs.releases
+ runs-on: ubuntu-latest
+ defaults:
+ run:
+ shell: bash
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+ - name: Setup Git User
+ run: |
+ git config --global user.email "npm-cli+bot@github.com"
+ git config --global user.name "npm CLI robot"
+ - name: Setup Node
uses: actions/setup-node@v3
with:
- node-version: ${{ matrix.node-version }}
+ node-version: 18.x
cache: npm
- - run: node bin/npm-cli.js run resetdeps
- - run: node bin/npm-cli.js link -f --ignore-scripts
- - run: node bin/npm-cli.js run test-all --ignore-scripts
- - name: git status
- if: matrix.platform.os != 'windows-latest'
- run: node scripts/git-dirty.js
+ - name: Reset Deps
+ run: node . run resetdeps
+ - name: Run Post Release Actions
+ env:
+ RELEASES: ${{ needs.release.outputs.releases }}
+ run: |
+ node . run rp-release --ignore-scripts --if-present ${{ join(fromJSON(needs.release.outputs.release-flags), ' ') }}