Skip to content

feat!: add launchTestNode utility #10051

feat!: add launchTestNode utility

feat!: add launchTestNode utility #10051

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:
docs:
uses: FuelLabs/github-actions/.github/workflows/vp-docs.yml@master
with:
doc-folder-path: "apps/docs/src"
spellcheck-config-path: "apps/docs/.spellcheck.yml"
environments:
runs-on: ubuntu-latest
# name will be node@<version> or browser
name: ${{ matrix.env.name }}${{ matrix.env.name == 'node' && '@' || ''}}${{ matrix.env.name == 'node' && 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@v3
- name: CI Setup
uses: ./.github/actions/test-setup
with:
node-version: ${{ matrix.env.version || 20 }}
- name: Verify package.json integrity
run: pnpm lint:package-jsons
- name: Verify package exports integrity
run: pnpm verify:package-exports
- name: Forc Format Check
run: pnpm forc:check
# linting of some tests depends on pretest being run so that it generates the necessary files
- name: Pretest
run: pnpm pretest
- name: Lint
run: pnpm lint
- 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@v2
with:
name: ${{ matrix.env.name }}
path: coverage/environments/${{ matrix.env.name }}
e2e:
runs-on: ubuntu-latest
timeout-minutes: 10
needs: [environments]
if: ${{ !github.event.pull_request.draft }}
steps:
- name: Checkout
uses: actions/checkout@v3
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://beta-5.fuel.network/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 }}
test:
if: github.base_ref == 'master' || github.ref_name == 'master'
runs-on: ubuntu-latest
needs: [environments, e2e]
steps:
- name: Checkout
uses: actions/checkout@v3
- 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@v3
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@v3
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
create-changeset:
needs: [test]
name: Create Changeset
runs-on: ubuntu-latest
if: github.actor == 'dependabot[bot]'
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
ref: ${{ github.event.client_payload.ref }}
- name: Setup PNPM
uses: pnpm/action-setup@v2.1.0
with:
version: 9.0.5
run_install: true
- name: Install jq
run: sudo apt-get install -y jq
- name: Run dependabot changeset script
run: pnpm changeset:dependabot
env:
PR_TITLE: ${{ github.event.pull_request.title }}
- name: Commit Changeset
run: |
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
git config user.name "github-actions[bot]"
git add .
git commit -m "build: update dependency changeset [skip ci]"
git push origin HEAD:${{ github.event.pull_request.head.ref }}
env:
GITHUB_TOKEN: ${{ secrets.REPO_TOKEN }}