configure pnpm and cache, move setup to composite action

This commit is contained in:
Nick Fields
2025-02-25 09:11:15 -05:00
parent 6513c5eede
commit d4bdaeed19
2 changed files with 43 additions and 84 deletions

15
.github/actions/setup/action.yml vendored Normal file
View File

@@ -0,0 +1,15 @@
name: Setup Node, PNPM, cache, and install dependencies
description: Sets up job to use the nodejs version in .nvmrc, pnpm, cache, and install dependencies
runs:
using: composite
steps:
- uses: pnpm/action-setup@v3
with:
version: 9.5.0
- uses: actions/setup-node@v4
with:
node-version-file: ./.nvmrc
cache: 'pnpm'
- run: pnpm install
shell: bash

View File

@@ -15,12 +15,8 @@ jobs:
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v4 uses: actions/checkout@v4
- name: Setup Node.js - name: Setup
uses: actions/setup-node@v4 uses: ./.github/actions/setup
with:
node-version: 20
- name: Install dependencies
run: npm ci
- name: Run Unit Tests - name: Run Unit Tests
run: npm test run: npm test
- uses: codecov/codecov-action@v3 - uses: codecov/codecov-action@v3
@@ -34,12 +30,8 @@ jobs:
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v4 uses: actions/checkout@v4
- name: Setup Node.js - name: Setup
uses: actions/setup-node@v4 uses: ./.github/actions/setup
with:
node-version: 20
- name: Install dependencies
run: npm ci
- name: happy-path - name: happy-path
id: happy_path id: happy_path
@@ -144,12 +136,8 @@ jobs:
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v4 uses: actions/checkout@v4
- name: Setup Node.js - name: Setup
uses: actions/setup-node@v4 uses: ./.github/actions/setup
with:
node-version: 20
- name: Install dependencies
run: npm ci
- name: env-vars-passed-through - name: env-vars-passed-through
uses: ./ uses: ./
env: env:
@@ -165,12 +153,8 @@ jobs:
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v4 uses: actions/checkout@v4
- name: Setup Node.js - name: Setup
uses: actions/setup-node@v4 uses: ./.github/actions/setup
with:
node-version: 20
- name: Install dependencies
run: npm ci
- name: Test 100MiB of output can be processed - name: Test 100MiB of output can be processed
id: large-output id: large-output
continue-on-error: true continue-on-error: true
@@ -196,12 +180,8 @@ jobs:
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v4 uses: actions/checkout@v4
- name: Setup Node.js - name: Setup
uses: actions/setup-node@v4 uses: ./.github/actions/setup
with:
node-version: 20
- name: Install dependencies
run: npm ci
- name: retry_on_exit_code (with expected error code) - name: retry_on_exit_code (with expected error code)
id: retry_on_exit_code_expected id: retry_on_exit_code_expected
uses: ./ uses: ./
@@ -244,12 +224,8 @@ jobs:
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v4 uses: actions/checkout@v4
- name: Setup Node.js - name: Setup
uses: actions/setup-node@v4 uses: ./.github/actions/setup
with:
node-version: 20
- name: Install dependencies
run: npm ci
- name: happy-path (continue_on_error) - name: happy-path (continue_on_error)
id: happy_path_continue_on_error id: happy_path_continue_on_error
uses: ./ uses: ./
@@ -291,12 +267,8 @@ jobs:
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v4 uses: actions/checkout@v4
- name: Setup Node.js - name: Setup
uses: actions/setup-node@v4 uses: ./.github/actions/setup
with:
node-version: 20
- name: Install dependencies
run: npm ci
- name: sad-path (retry_wait_seconds) - name: sad-path (retry_wait_seconds)
id: sad_path_wait_sec id: sad_path_wait_sec
@@ -327,12 +299,8 @@ jobs:
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v4 uses: actions/checkout@v4
- name: Setup Node.js - name: Setup
uses: actions/setup-node@v4 uses: ./.github/actions/setup
with:
node-version: 20
- name: Install dependencies
run: npm ci
- name: new-command-on-retry - name: new-command-on-retry
id: new-command-on-retry id: new-command-on-retry
@@ -370,12 +338,8 @@ jobs:
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v4 uses: actions/checkout@v4
- name: Setup Node.js - name: Setup
uses: actions/setup-node@v4 uses: ./.github/actions/setup
with:
node-version: 20
- name: Install dependencies
run: npm ci
- name: sad-path (timeout) - name: sad-path (timeout)
id: sad_path_timeout id: sad_path_timeout
@@ -400,12 +364,8 @@ jobs:
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v4 uses: actions/checkout@v4
- name: Setup Node.js - name: Setup
uses: actions/setup-node@v4 uses: ./.github/actions/setup
with:
node-version: 20
- name: Install dependencies
run: npm ci
- name: retry_on (timeout) - name: retry_on (timeout)
id: retry_on_timeout id: retry_on_timeout
@@ -431,12 +391,8 @@ jobs:
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v4 uses: actions/checkout@v4
- name: Setup Node.js - name: Setup
uses: actions/setup-node@v4 uses: ./.github/actions/setup
with:
node-version: 20
- name: Install dependencies
run: npm ci
- name: retry_on (error) fails early if timeout encountered - name: retry_on (error) fails early if timeout encountered
id: retry_on_error_fail id: retry_on_error_fail
@@ -466,12 +422,8 @@ jobs:
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v4 uses: actions/checkout@v4
- name: Setup Node.js - name: Setup
uses: actions/setup-node@v4 uses: ./.github/actions/setup
with:
node-version: 20
- name: Install dependencies
run: npm ci
- name: sad-path (timeout minutes) - name: sad-path (timeout minutes)
id: sad_path_timeout_minutes id: sad_path_timeout_minutes
@@ -496,12 +448,8 @@ jobs:
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v4 uses: actions/checkout@v4
- name: Setup Node.js - name: Setup
uses: actions/setup-node@v4 uses: ./.github/actions/setup
with:
node-version: 20
- name: Install dependencies
run: npm ci
- name: Powershell test - name: Powershell test
uses: ./ uses: ./
with: with:
@@ -572,12 +520,8 @@ jobs:
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v4 uses: actions/checkout@v4
- name: Setup Node.js - name: Setup
uses: actions/setup-node@v4 uses: ./.github/actions/setup
with:
node-version: 20
- name: Install dependencies
run: npm ci
- name: Release - name: Release
id: semantic id: semantic
uses: cycjimmy/semantic-release-action@v4 uses: cycjimmy/semantic-release-action@v4