Skip to content

chore(deps): bump actions/setup-node from 3 to 4 #460

chore(deps): bump actions/setup-node from 3 to 4

chore(deps): bump actions/setup-node from 3 to 4 #460

Workflow file for this run

on: push
name: Push
env:
NX_BRANCH: ${{ github.ref_name }}
NX_CLOUD_ACCESS_TOKEN: ${{ secrets.NX_CLOUD_ACCESS_TOKEN }}
NX_RUN_GROUP: ${{ github.run_id }}-${{ github.run_attempt }}
SAM_CLI_TELEMETRY: 0
jobs:
build:
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- uses: actions/[email protected]
with:
fetch-depth: 0
- uses: actions/setup-node@v4
with:
node-version: 18
cache: 'npm'
- uses: nrwl/nx-set-shas@v3
- run: npm ci
- run: npx nx run-many --target=build --parallel=4
diff:
needs: build
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
- uses: actions/[email protected]
with:
fetch-depth: 0
- uses: actions/setup-node@v4
with:
node-version: 18
cache: 'npm'
- uses: nrwl/nx-set-shas@v3
- run: npm ci
# by making this job depend on the build job, the following line should be
# 100% cache hits; The nx cache seems to be much easier to use than the
# GitHub artifact action.
- run: npx nx run-many --target=build --parallel=4
- run: ./scripts/diff-lint
lint:
needs: build
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
- uses: actions/[email protected]
with:
fetch-depth: 0
- uses: actions/setup-node@v4
with:
node-version: 18
cache: 'npm'
- uses: nrwl/nx-set-shas@v3
- run: npm ci
# by making this job depend on the build job, the following line should be
# 100% cache hits; The nx cache seems to be much easier to use than the
# GitHub artifact action.
- run: npx nx run-many --target=build --parallel=4
- run: npx nx workspace-lint
- run: npx nx format:check
- run: npm run lint
env:
ESLINT_FORMAT_OPTIONS: |
--format json-with-metadata --output-file reports/style/eslint.json
TSC_OPTIONS: '| tee reports/style/tsc.log'
- uses: check-run-reporter/[email protected]
if: ${{ always() }}
with:
token: ${{ secrets.CHECK_RUN_REPORTER_TOKEN }}
label: ESLint
report: 'reports/style/eslint.json'
- uses: check-run-reporter/[email protected]
if: ${{ always() }}
with:
token: ${{ secrets.CHECK_RUN_REPORTER_TOKEN }}
label: TSC
report: 'reports/style/tsc.log'
release:
needs:
- build
- diff
- lint
- test-integration
- test-unit
runs-on: ubuntu-latest
# This job gets exponentially slower based on the number of packages that
# need to be release, so 60 is not unreasonable.
timeout-minutes: 60
steps:
- uses: actions/[email protected]
with:
fetch-depth: 0
- uses: actions/setup-node@v4
with:
node-version: 18
cache: 'npm'
- uses: nrwl/nx-set-shas@v3
- run: npm ci
# by making this job depend on the build job, the following line should be
# 100% cache hits; The nx cache seems to be much easier to use than the
# GitHub artifact action.
- run: npx nx run-many --target=build --parallel=4
- run: |
npm config set workspaces-update false
npx multi-semantic-release \
--deps.release=inherit \
--ignore-private-packages
env:
GIT_AUTHOR_EMAIL:
${{ github.actor_id }}+${{ github.actor }}@users.noreply.github.com
GIT_COMMITTER_EMAIL:
${{ github.actor_id }}+${{ github.actor }}@users.noreply.github.com
GIT_AUTHOR_NAME: ${{ github.actor }}
GIT_COMMITTER_NAME: ${{ github.actor }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
test-integration:
needs: build
permissions:
id-token: write
contents: read
runs-on: ubuntu-latest
timeout-minutes: 15
strategy:
fail-fast: false
matrix:
# There should be one node for each example, but at time of writing,
# two of the examples are disabled due to issues with localstack.
nodeCount: [5]
nodeIndex: [0, 1, 2, 3, 4]
steps:
- uses: actions/[email protected]
with:
fetch-depth: 0
- name: Configure AWS credentials from Test account
uses: aws-actions/configure-aws-credentials@v2
with:
role-to-assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
aws-region: ${{ secrets.AWS_REGION }}
- uses: actions/setup-node@v4
with:
node-version: 18
cache: 'npm'
- uses: nrwl/nx-set-shas@v3
- run: npm ci
# by making this job depend on the build job, the following line should be
# 100% cache hits; The nx cache seems to be much easier to use than the
# GitHub artifact action.
- run: npx nx run-many --target=build --parallel=4
- uses: check-run-reporter/[email protected]
id: split
with:
token: ${{ secrets.CHECK_RUN_REPORTER_TOKEN }}
label: Unit Tests
nodeCount: ${{ matrix.nodeCount }}
nodeIndex: ${{ matrix.nodeIndex }}
tests: 'examples/**/*.test.ts'
# Deploy all the stacks. Assuming we tuned the matrix correctly, this
# _should_ be one stack per job, but we treat it as a list just in case.
- run: |
PATH=$PATH:$(pwd)/node_modules/.bin ./scripts/crr-sam deploy ${{ steps.split.outputs.tests }}
id: deploy
- run: npm test -- ${{ steps.split.outputs.tests }}
env:
# We set RETAIN=true so that the cleanup script can take remove the
# stack rather than doing it inside the jest lifecycle.
RETAIN: true
TEST_ENV: aws
# The script keeps track of each stack it deployed so we only attempt to
# cleanup stacks that actually exist.
- run: ./scripts/crr-sam destroy ${{ steps.deploy.outputs.deployed }}
if: ${{ always() }}
- uses: check-run-reporter/[email protected]
if: ${{ always() }}
with:
token: ${{ secrets.CHECK_RUN_REPORTER_TOKEN }}
label: Examples
nodeCount: ${{ matrix.nodeCount }}
nodeIndex: ${{ matrix.nodeIndex }}
report: 'reports/junit/**/*.xml'
- name: Upload coverage reports to Codecov
uses: codecov/codecov-action@v3
with:
token: ${{ secrets.CODECOV_TOKEN }}
directory: 'reports/coverage'
test-unit:
needs: build
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
- uses: actions/[email protected]
with:
fetch-depth: 0
- uses: actions/setup-node@v4
with:
node-version: 18
cache: 'npm'
- uses: nrwl/nx-set-shas@v3
- run: npm ci
# by making this job depend on the build job, the following line should be
# 100% cache hits; The nx cache seems to be much easier to use than the
# GitHub artifact action.
- run: npx nx run-many --target=build --parallel=4
- run: npm test -- --selectProjects 'Unit Tests'
- uses: check-run-reporter/[email protected]
if: ${{ always() }}
with:
token: ${{ secrets.CHECK_RUN_REPORTER_TOKEN }}
label: Unit Tests
report: 'reports/junit/**/*.xml'
- name: Upload coverage reports to Codecov
uses: codecov/codecov-action@v3
with:
token: ${{ secrets.CODECOV_TOKEN }}
directory: 'reports/coverage'