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

test: Migrate CI to GitHub Actions [SDK-4451] #372

Merged
merged 5 commits into from
Sep 20, 2023
Merged
Changes from 1 commit
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
Prev Previous commit
Next Next commit
Update test.yml
  • Loading branch information
evansims committed Sep 18, 2023
commit b9fbbac2d9ec90ff0a40fc1a57180efe9dbd088b
42 changes: 33 additions & 9 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,50 +18,74 @@ concurrency:
cancel-in-progress: ${{ github.ref != 'refs/heads/master' }}

env:
NODE_VERSION: 18
CACHE_KEY: "${{ github.ref }}-${{ github.run_id }}-${{ github.run_attempt }}"

jobs:
configure:
name: Configure Build Matrix
runs-on: ubuntu-latest

outputs:
matrix: ${{ steps.set-matrix.outputs.matrix }}

steps:
- uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.head.sha || github.ref }}

- id: set-matrix
run: echo "matrix=$(jq -c . < ./.github/workflows/matrix.json)" >> $GITHUB_OUTPUT

build:
needs: configure

name: Build Package
runs-on: ubuntu-latest

strategy:
matrix: ${{ fromJson(needs.configure.outputs.matrix) }}

steps:
- name: Checkout code
uses: actions/checkout@v4

- uses: ./.github/actions/build
with:
node: ${{ env.NODE_VERSION }}
node: ${{ matrix.node }}

- name: Save build artifacts
uses: actions/cache/save@v3
with:
path: .
key: ${{ env.CACHE_KEY }}
key: ${{ matrix.node }}-${{ env.CACHE_KEY }}

unit:
needs: build # Require build to complete before running tests
needs: [configure, build] # Require build to complete before running tests

name: Run Unit Tests
runs-on: ubuntu-latest

strategy:
matrix: ${{ fromJson(needs.configure.outputs.matrix) }}

steps:
- uses: actions/checkout@v4

- uses: actions/setup-node@v3
with:
node-version: ${{ env.NODE_VERSION }}
node-version: ${{ matrix.node }}
cache: npm

- uses: actions/cache/restore@v3
with:
path: .
key: ${{ env.CACHE_KEY }}
key: ${{ matrix.node }}-${{ env.CACHE_KEY }}

- run: npm run test:ci

- uses: codecov/codecov-action@eaaf4bedf32dbdc6b720b63067d99c4d77d6047d # [email protected]
# only upload coverage on one node version
- if: matrix.node == 18
uses: codecov/codecov-action@eaaf4bedf32dbdc6b720b63067d99c4d77d6047d # [email protected]

lint:
needs: build # Require build to complete before running tests
Expand All @@ -74,12 +98,12 @@ jobs:

- uses: actions/setup-node@v3
with:
node-version: ${{ env.NODE_VERSION }}
node-version: ${{ matrix.node }}
cache: npm

- uses: actions/cache/restore@v3
with:
path: .
key: ${{ env.CACHE_KEY }}
key: ${{ matrix.node }}-${{ env.CACHE_KEY }}

- run: npm run lint
Loading