feat!: add launchTestNode
utility
#10051
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 }} |