Skip to content

build: update CI step for creating changesets + reporting coverage #10357

build: update CI step for creating changesets + reporting coverage

build: update CI step for creating changesets + reporting coverage #10357

Workflow file for this run

name: "Test"
on:
pull_request:
push:
branches:
- master
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
environments:
runs-on: ubuntu-latest
# name will be node@<version> or browser
name: ${{ matrix.env.name }}${{ matrix.env.version && '@' || ''}}${{ matrix.env.version || ''}}
strategy:
fail-fast: false
matrix:
env:
[
{ name: node, version: 18.18.2 },
{ name: node, version: 20 },
{ name: browser },
]
timeout-minutes: 25
steps:
- name: Checkout
uses: actions/checkout@v4
- name: CI Setup
uses: ./.github/actions/test-setup
with:
node-version: ${{ matrix.env.version || 20 }}
- name: Validate Tests
run: pnpm test:validate
- name: Run Tests - ${{ matrix.env.name }}
run: pnpm ci:test --${{ matrix.env.name }}
- name: Upload Coverage - ${{ matrix.env.name }}
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.env.name }}
path: coverage/environments/${{ matrix.env.name }}
overwrite: true
e2e:
runs-on: ubuntu-latest
timeout-minutes: 10
needs: [environments]
if: ${{ !github.event.pull_request.draft }}
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: CI Setup
uses: ./.github/actions/test-setup
- name: Pretest
run: pnpm pretest
- name: Run Isolated Tests
run: pnpm test:e2e
env:
FUEL_NETWORK_URL: https://devnet.fuel.network/v1/graphql
TEST_WALLET_PVT_KEY: ${{ secrets.TEST_WALLET_PVT_KEY }}
TEST_WALLET_ADDRESS: ${{ secrets.TEST_WALLET_ADDRESS }}
FUEL_TESTNET_NETWORK_URL: ${{ secrets.FUEL_TESTNET_NETWORK_URL }}
report-coverage:
if: (github.base_ref == 'master' || github.ref_name == 'master') && github.actor != 'dependabot[bot]'
runs-on: ubuntu-latest
needs: [environments, e2e]
steps:
- name: Checkout
uses: actions/checkout@v4
- name: CI Setup
uses: ./.github/actions/test-setup
- name: Generate Coverage Directory
run: mkdir -p coverage/environments
- name: Download Coverage Artifact for Node Tests
uses: actions/download-artifact@v4
with:
name: node
path: coverage/environments
- name: Generate Coverage
run: pnpm test:coverage-merge
- name: Find PR Number
uses: jwalton/gh-find-current-pr@v1
id: findPr
- name: Upload Master Coverage Artifact
uses: actions/upload-artifact@v4
if: ${{ !steps.findPr.outputs.number }}
with:
name: coverage-master
path: coverage/report
- name: Download Master Coverage Artifact
uses: dawidd6/action-download-artifact@v2
if: ${{ steps.findPr.outputs.number }}
with:
workflow: test.yaml
branch: master
name: coverage-master
path: coverage-master
- name: Generate Coverage Diff
if: ${{ (steps.findPr.outputs.number) }}
run: pnpm test:coverage-diff
- name: Report Coverage
uses: thollander/actions-comment-pull-request@v2
if: ${{ steps.findPr.outputs.number }}
with:
filePath: coverage/report/coverage-diff.txt
pr_number: ${{ (steps.findPr.outputs.number) }}
comment_tag: diff
mode: recreate
create_if_not_exists: true