chore(deps): lock file maintenance #586
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build, Lint and Test | |
on: | |
workflow_call: | |
workflow_dispatch: | |
pull_request: | |
push: | |
branches-ignore: | |
- main | |
jobs: | |
check-skippable: | |
continue-on-error: true | |
runs-on: ubuntu-22.04 | |
permissions: | |
actions: write | |
contents: read | |
timeout-minutes: 10 | |
outputs: | |
skippable: ${{ steps.check.outputs.should_skip }} | |
steps: | |
- id: check | |
uses: fkirc/skip-duplicate-actions@f75f66ce1886f00957d99748a42c724f4330bdcf # v5.3.1 | |
test: | |
name: Test | |
needs: check-skippable | |
if: needs.check-skippable.outputs.skippable != 'true' | |
permissions: | |
contents: read | |
actions: read | |
timeout-minutes: 10 | |
strategy: | |
fail-fast: false | |
matrix: | |
os: | |
- ubuntu-22.04 | |
node-version: | |
- 16.14.0 | |
- 18 | |
- 20 | |
- 22 | |
experimental: | |
- false | |
include: | |
- os: windows-latest | |
# latest LTS | |
node-version: 20 | |
experimental: false | |
- os: macos-latest | |
# latest LTS | |
node-version: 20 | |
experimental: false | |
- os: ubuntu-22.04 | |
node-version: 23-nightly | |
experimental: true | |
runs-on: ${{ matrix.os }} | |
continue-on-error: ${{ matrix.experimental }} | |
steps: | |
- name: Collect Workflow Telemetry | |
uses: catchpoint/workflow-telemetry-action@94c3c3d9567a0205de6da68a76c428ce4e769af1 # v2.0.0 | |
with: | |
# Set to true to publish the results as comment to the PR (applicable if workflow run is triggered by PR). | |
comment_on_pr: false | |
- name: Checkout the source | |
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | |
with: | |
show-progress: false | |
submodules: recursive | |
- name: Setup pnpm | |
uses: pnpm/action-setup@fe02b34f77f8bc703788d5817da081398fad5dd2 # v4.0.0 | |
with: | |
standalone: true | |
- name: Setup Node.js | |
uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4.1.0 | |
with: | |
node-version: ${{ matrix.node-version }} | |
cache: pnpm | |
- name: Install dependencies | |
run: pnpm install --frozen-lockfile | |
- run: pnpm test | |
build-lint: | |
name: Build and Lint | |
needs: check-skippable | |
if: needs.check-skippable.outputs.skippable != 'true' | |
permissions: | |
contents: read | |
actions: read | |
timeout-minutes: 10 | |
# Using matrix strategy, OS and Node version will be displayed in a title of a job. | |
strategy: | |
matrix: | |
os: | |
- ubuntu-22.04 | |
node-version: | |
# oldest LTS | |
- 18 | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Collect Workflow Telemetry | |
uses: catchpoint/workflow-telemetry-action@94c3c3d9567a0205de6da68a76c428ce4e769af1 # v2.0.0 | |
- name: Checkout the source | |
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | |
with: | |
show-progress: false | |
submodules: recursive | |
- name: Setup pnpm | |
uses: pnpm/action-setup@fe02b34f77f8bc703788d5817da081398fad5dd2 # v4.0.0 | |
with: | |
standalone: false | |
- name: Setup Node.js | |
uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4.1.0 | |
with: | |
node-version: ${{ matrix.node-version }} | |
cache: pnpm | |
- name: Install dependencies | |
run: pnpm install --frozen-lockfile | |
- run: pnpm build | |
- run: pnpm lint | |
action-timeline: | |
needs: | |
- check-skippable | |
- test | |
- build-lint | |
continue-on-error: true | |
runs-on: ubuntu-22.04 | |
permissions: | |
actions: read | |
timeout-minutes: 10 | |
steps: | |
- uses: Kesin11/actions-timeline@3046833d9aacfd7745c5264b7f3af851c3e2a619 # v2.2.1 |