Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: splits out smoke-tests from publish-dryrun tests #8069

Merged
merged 8 commits into from
Jan 29, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
79 changes: 70 additions & 9 deletions .github/workflows/ci-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -145,12 +145,12 @@ jobs:
conclusion: ${{ job.status }}
check_id: ${{ steps.create-check.outputs.check-id }}

smoke-publish:
# This cant be tested on Windows because our node_modules directory
# checks in symlinks which are not supported there. This should be
# fixed somehow, because this means some forms of local development
# are likely broken on Windows as well.
name: Smoke Publish - ${{ matrix.platform.name }} - ${{ matrix.node-version }}
smoke-tests:
# This cant be tested on Windows because our node_modules directory
# checks in symlinks which are not supported there. This should be
# fixed somehow, because this means some forms of local development
# are likely broken on Windows as well.
name: Smoke Tests - ${{ matrix.platform.name }} - ${{ matrix.node-version }}
if: github.repository_owner == 'npm'
strategy:
fail-fast: false
Expand Down Expand Up @@ -182,7 +182,7 @@ jobs:
if: ${{ inputs.check-sha }}
uses: ./.github/actions/create-check
with:
name: "Smoke Publish - ${{ matrix.platform.name }} - ${{ matrix.node-version }}"
name: "Smoke Tests - ${{ matrix.platform.name }} - ${{ matrix.node-version }}"
token: ${{ secrets.GITHUB_TOKEN }}
sha: ${{ inputs.check-sha }}
- name: Setup Node
Expand All @@ -196,8 +196,69 @@ jobs:
run: node scripts/git-dirty.js
- name: Reset Deps
run: node scripts/resetdeps.js
- name: Smoke Publish
run: ./scripts/smoke-publish-test.sh
- name: Smoke Tests
run: ./scripts/smoke-tests.sh
- name: Conclude Check
uses: LouisBrunner/checks-action@v1.6.0
if: steps.create-check.outputs.check-id && always()
with:
token: ${{ secrets.GITHUB_TOKEN }}
conclusion: ${{ job.status }}
check_id: ${{ steps.create-check.outputs.check-id }}

publish-dryrun:
# This cant be tested on Windows because our node_modules directory
# checks in symlinks which are not supported there. This should be
# fixed somehow, because this means some forms of local development
# are likely broken on Windows as well.
name: Publish Dry-Run - ${{ matrix.platform.name }} - ${{ matrix.node-version }}
if: github.repository_owner == 'npm'
strategy:
fail-fast: false
matrix:
platform:
- name: Linux
os: ubuntu-latest
shell: bash
node-version:
- 20.17.0
- 20.x
- 22.9.0
- 22.x
runs-on: ${{ matrix.platform.os }}
defaults:
run:
shell: ${{ matrix.platform.shell }}
steps:
- name: Checkout
uses: actions/checkout@v4
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: Create Check
id: create-check
if: ${{ inputs.check-sha }}
uses: ./.github/actions/create-check
with:
name: "Publish Dry-Run - ${{ matrix.platform.name }} - ${{ matrix.node-version }}"
token: ${{ secrets.GITHUB_TOKEN }}
sha: ${{ inputs.check-sha }}
- name: Setup Node
uses: actions/setup-node@v4
id: node
with:
node-version: ${{ matrix.node-version }}
check-latest: contains(matrix.node-version, '.x')
cache: npm
- name: Check Git Status
run: node scripts/git-dirty.js
- name: Reset Deps
run: node scripts/resetdeps.js
- name: Publish Dry-Run
run: node ./scripts/publish.js --pack-destination=$RUNNER_TEMP --smoke-publish=true
- name: Conclude Check
uses: LouisBrunner/checks-action@v1.6.0
if: steps.create-check.outputs.check-id && always()
Expand Down
72 changes: 70 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -147,6 +147,10 @@ jobs:
run: node . run licenses

smoke-tests:
# This cant be tested on Windows because our node_modules directory
# checks in symlinks which are not supported there. This should be
# fixed somehow, because this means some forms of local development
# are likely broken on Windows as well.
name: Smoke Tests
if: github.repository_owner == 'npm'
runs-on: ubuntu-latest
Expand All @@ -156,10 +160,20 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@v4
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: Create Check
id: create-check
if: ${{ inputs.check-sha }}
uses: ./.github/actions/create-check
with:
name: "Smoke Tests"
token: ${{ secrets.GITHUB_TOKEN }}
sha: ${{ inputs.check-sha }}
- name: Setup Node
uses: actions/setup-node@v4
id: node
Expand All @@ -171,10 +185,64 @@ jobs:
run: node scripts/git-dirty.js
- name: Reset Deps
run: node scripts/resetdeps.js
- name: Run Smoke Tests
run: node . test -w smoke-tests --ignore-scripts
- name: Smoke Tests
run: ./scripts/smoke-tests.sh
- name: Conclude Check
uses: LouisBrunner/checks-action@v1.6.0
if: steps.create-check.outputs.check-id && always()
with:
token: ${{ secrets.GITHUB_TOKEN }}
conclusion: ${{ job.status }}
check_id: ${{ steps.create-check.outputs.check-id }}

publish-dryrun:
# This cant be tested on Windows because our node_modules directory
# checks in symlinks which are not supported there. This should be
# fixed somehow, because this means some forms of local development
# are likely broken on Windows as well.
name: Publish Dry-Run
if: github.repository_owner == 'npm'
runs-on: ubuntu-latest
defaults:
run:
shell: bash
steps:
- name: Checkout
uses: actions/checkout@v4
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: Create Check
id: create-check
if: ${{ inputs.check-sha }}
uses: ./.github/actions/create-check
with:
name: "Publish Dry-Run"
token: ${{ secrets.GITHUB_TOKEN }}
sha: ${{ inputs.check-sha }}
- name: Setup Node
uses: actions/setup-node@v4
id: node
with:
node-version: 22.x
check-latest: contains('22.x', '.x')
cache: npm
- name: Check Git Status
run: node scripts/git-dirty.js
- name: Reset Deps
run: node scripts/resetdeps.js
- name: Publish Dry-Run
run: node ./scripts/publish.js --pack-destination=$RUNNER_TEMP --smoke-publish=true
- name: Conclude Check
uses: LouisBrunner/checks-action@v1.6.0
if: steps.create-check.outputs.check-id && always()
with:
token: ${{ secrets.GITHUB_TOKEN }}
conclusion: ${{ job.status }}
check_id: ${{ steps.create-check.outputs.check-id }}

windows-shims:
name: Windows Shims Tests
Expand Down
Empty file added scripts/smoke-tests.js
Empty file.
2 changes: 1 addition & 1 deletion scripts/smoke-publish-test.sh → scripts/smoke-tests.sh
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ fi
# were publishing it to the registry. The only difference is in the
# publish.js script which will only pack and not publish
node . version $NPM_VERSION --ignore-scripts --git-tag-version="$IS_CI"
node scripts/publish.js --pack-destination=$RUNNER_TEMP --smoke-publish=true
node . pack . --pack-destination "$RUNNER_TEMP"
NPM_TARBALL="$RUNNER_TEMP/npm-$NPM_VERSION.tgz"
node . install --global $NPM_TARBALL

Expand Down
66 changes: 44 additions & 22 deletions scripts/template-oss/ci-release-yml.hbs
Original file line number Diff line number Diff line change
@@ -1,23 +1,45 @@
{{> ciReleaseYml }}
{{> ciReleaseYml }}

smoke-publish:
# This cant be tested on Windows because our node_modules directory
# checks in symlinks which are not supported there. This should be
# fixed somehow, because this means some forms of local development
# are likely broken on Windows as well.
{{> jobMatrixYml
jobName="Smoke Publish"
jobCheckout=(obj ref="${{ inputs.ref }}")
jobCreateCheck=(obj sha="${{ inputs.check-sha }}")
windowsCI=false
macCI=false
}}
- name: Smoke Publish
run: ./scripts/smoke-publish-test.sh
- name: Conclude Check
uses: LouisBrunner/checks-action@v1.6.0
if: steps.create-check.outputs.check-id && always()
with:
token: $\{{ secrets.GITHUB_TOKEN }}
conclusion: $\{{ job.status }}
check_id: $\{{ steps.create-check.outputs.check-id }}
smoke-tests:
# This cant be tested on Windows because our node_modules directory
# checks in symlinks which are not supported there. This should be
# fixed somehow, because this means some forms of local development
# are likely broken on Windows as well.
{{> jobMatrixYml
jobName="Smoke Tests"
jobCheckout=(obj ref="${{ inputs.ref }}")
jobCreateCheck=(obj sha="${{ inputs.check-sha }}")
windowsCI=false
macCI=false
}}
- name: Smoke Tests
run: ./scripts/smoke-tests.sh
- name: Conclude Check
uses: LouisBrunner/checks-action@v1.6.0
if: steps.create-check.outputs.check-id && always()
with:
token: $\{{ secrets.GITHUB_TOKEN }}
conclusion: $\{{ job.status }}
check_id: $\{{ steps.create-check.outputs.check-id }}

publish-dryrun:
# This cant be tested on Windows because our node_modules directory
# checks in symlinks which are not supported there. This should be
# fixed somehow, because this means some forms of local development
# are likely broken on Windows as well.
{{> jobMatrixYml
jobName="Publish Dry-Run"
jobCheckout=(obj ref="${{ inputs.ref }}")
jobCreateCheck=(obj sha="${{ inputs.check-sha }}")
windowsCI=false
macCI=false
}}
- name: Publish Dry-Run
run: node ./scripts/publish.js --pack-destination=$RUNNER_TEMP --smoke-publish=true
- name: Conclude Check
uses: LouisBrunner/checks-action@v1.6.0
if: steps.create-check.outputs.check-id && always()
with:
token: $\{{ secrets.GITHUB_TOKEN }}
conclusion: $\{{ job.status }}
check_id: $\{{ steps.create-check.outputs.check-id }}
49 changes: 43 additions & 6 deletions scripts/template-oss/ci-yml.hbs
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,49 @@
- name: Check Licenses
run: {{rootNpmPath}} run licenses

smoke-tests:
{{> jobYml jobName="Smoke Tests" }}
- name: Run Smoke Tests
run: {{rootNpmPath}} test -w smoke-tests --ignore-scripts
- name: Check Git Status
run: node scripts/git-dirty.js
smoke-tests:
# This cant be tested on Windows because our node_modules directory
# checks in symlinks which are not supported there. This should be
# fixed somehow, because this means some forms of local development
# are likely broken on Windows as well.
{{> jobYml
jobName="Smoke Tests"
jobCheckout=(obj ref="${{ inputs.ref }}")
jobCreateCheck=(obj sha="${{ inputs.check-sha }}")
windowsCI=false
macCI=false
}}
- name: Smoke Tests
run: ./scripts/smoke-tests.sh
- name: Conclude Check
uses: LouisBrunner/checks-action@v1.6.0
if: steps.create-check.outputs.check-id && always()
with:
token: $\{{ secrets.GITHUB_TOKEN }}
conclusion: $\{{ job.status }}
check_id: $\{{ steps.create-check.outputs.check-id }}

publish-dryrun:
# This cant be tested on Windows because our node_modules directory
# checks in symlinks which are not supported there. This should be
# fixed somehow, because this means some forms of local development
# are likely broken on Windows as well.
{{> jobYml
jobName="Publish Dry-Run"
jobCheckout=(obj ref="${{ inputs.ref }}")
jobCreateCheck=(obj sha="${{ inputs.check-sha }}")
windowsCI=false
macCI=false
}}
- name: Publish Dry-Run
run: node ./scripts/publish.js --pack-destination=$RUNNER_TEMP --smoke-publish=true
- name: Conclude Check
uses: LouisBrunner/checks-action@v1.6.0
if: steps.create-check.outputs.check-id && always()
with:
token: $\{{ secrets.GITHUB_TOKEN }}
conclusion: $\{{ job.status }}
check_id: $\{{ steps.create-check.outputs.check-id }}

windows-shims:
name: Windows Shims Tests
Expand Down
Loading