diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml new file mode 100644 index 00000000..d909be5a --- /dev/null +++ b/.github/workflows/integration.yml @@ -0,0 +1,74 @@ +name: Integration Test + +on: + merge_group: + workflow_dispatch: + pull_request: + branches: + - master + push: + branches: + - master + +permissions: + contents: read + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: ${{ github.ref != 'refs/heads/master' }} + +env: + NODE_VERSION: 18 + CACHE_KEY: '${{ github.ref }}-${{ github.run_id }}-${{ github.run_attempt }}' + +jobs: + build: + name: Build Package + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v4 + with: + ref: ${{ github.event.pull_request.head.sha || github.ref }} + + - name: Build package + uses: ./.github/actions/build + with: + node: ${{ env.NODE_VERSION }} + + - name: Save build artifacts + uses: actions/cache/save@v3 + with: + path: . + key: ${{ env.CACHE_KEY }} + + integration: + needs: build # Require build to complete before running tests + + name: Run Tests + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v4 + with: + ref: ${{ github.event.pull_request.head.sha || github.ref }} + + - name: Setup Node + uses: actions/setup-node@v3 + with: + node-version: ${{ env.NODE_VERSION }} + cache: npm + + - name: Restore build artifacts + uses: actions/cache/restore@v3 + with: + path: . + key: ${{ env.CACHE_KEY }} + + - name: Install integration dependencies + run: npm run install:examples + + - name: Run tests + run: npm run test:integration diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 17c99773..dc983a94 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -1,4 +1,4 @@ -name: Build and Test +name: Unit Tests on: merge_group: @@ -46,14 +46,12 @@ jobs: unit: needs: build # Require build to complete before running tests - name: Unit Tests + name: Run Tests runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 - with: - ref: ${{ github.event.pull_request.head.sha || github.ref }} - name: Setup Node uses: actions/setup-node@v3 @@ -72,33 +70,3 @@ jobs: - name: Upload coverage uses: codecov/codecov-action@eaaf4bedf32dbdc6b720b63067d99c4d77d6047d # pin@3.1.4 - - integration: - needs: unit # Only run if unit tests pass - - name: Integration Tests - runs-on: ubuntu-latest - - steps: - - name: Checkout code - uses: actions/checkout@v4 - with: - ref: ${{ github.event.pull_request.head.sha || github.ref }} - - - name: Setup Node - uses: actions/setup-node@v3 - with: - node-version: ${{ env.NODE_VERSION }} - cache: npm - - - name: Restore build artifacts - uses: actions/cache/restore@v3 - with: - path: . - key: ${{ env.CACHE_KEY }} - - - name: Install integration dependencies - run: npm run install:examples - - - name: Run tests - run: npm run test:integration