Skip to content

code

code #6539

Workflow file for this run

name: code
on:
push:
branches:
- "**"
- "!gh-readonly-queue/**"
merge_group:
schedule:
- cron: "0 20 * * 0"
concurrency:
group: ${{ github.workflow }}-${{ github.ref || github.run_id }}
cancel-in-progress: ${{ github.ref != 'refs/heads/master' && github.event_name != 'merge_group' }}
defaults:
run:
shell: bash
env:
CARGO_INCREMENTAL: "0"
RUSTDOCFLAGS: "-D warnings"
jobs:
plan:
name: Plan the execution
runs-on: ubuntu-22.04
outputs:
matrix: ${{ steps.set-matrix.outputs.matrix }}
permissions:
contents: read
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Compute matrix
uses: ./.github/actions/plan
id: set-matrix
with:
plan-name: code
test:
needs:
- plan
strategy:
matrix: ${{ fromJson(needs.plan.outputs.matrix) }}
fail-fast: false
name: ${{ matrix.plan.platform.name }} / ${{ matrix.plan.mode.name }}
runs-on: ${{ matrix.plan.platform.os }}
env: ${{ matrix.plan.platform.env }}
timeout-minutes: 50
permissions:
contents: read
steps:
- name: Job config
run: printf "%s\n" "$MATRIX_CONTEXT"
env:
MATRIX_CONTEXT: ${{ toJson(matrix) }}
- name: Checkout
uses: actions/checkout@v4
timeout-minutes: 5
- uses: ./.github/actions/common-setup
with:
platformCacheKey: ${{ matrix.plan.platform.cacheKey }}
modeCacheKey: ${{ matrix.plan.mode.cargoCacheKey }}
isOnSelfHostedRunner: ${{ matrix.plan.platform.isOnSelfHostedRunner }}
buildEnvScript: ${{ matrix.plan.platform.buildEnvScript }}
timeout-minutes: 10
- name: Run cargo ${{ matrix.plan.mode.cargoCommand }}
run: cargo ${{ matrix.plan.mode.cargoCommand }} ${{ matrix.plan.mode.cargoArgs }}
e2e:
strategy:
matrix:
test:
- suite: "base"
build-args: ""
- suite: "try-runtime"
build-args: "--features try-runtime"
fail-fast: false
name: End-to-end tests / ${{ matrix.test.suite }}
runs-on: ubuntu-22.04
timeout-minutes: 50
permissions:
contents: read
steps:
- name: Checkout
uses: actions/checkout@v4
timeout-minutes: 5
- run: yarn install --immutable
- uses: ./.github/actions/common-setup
with:
platformCacheKey: ubuntu2204-amd64
buildEnvScript: .github/scripts/build_env/ubuntu.sh
timeout-minutes: 10
- name: Build binaries
run: cargo build --release --locked $BUILD_ARGS
env:
BUILD_ARGS: ${{ matrix.test.build-args }}
- name: Run bash e2e tests
run: utils/e2e-tests/bash/run-tests "$TEST_SUITE"
env:
TEST_SUITE: ${{ matrix.test.suite }}
HUMANODE_PEER_PATH: "target/release/humanode-peer"
RUNTIME_WASM_PATH: "target/release/wbuild/humanode-runtime/humanode_runtime.wasm"
- name: Run ts e2e tests
run: utils/e2e-tests/ts/run-tests "$TEST_SUITE"
env:
TEST_SUITE: ${{ matrix.test.suite }}
HUMANODE_PEER_PATH: "target/release/humanode-peer"
embedded-utils:
strategy:
matrix:
util:
- name: Require fork dependencies
run: utils/checks/require-fork-deps
- name: Check features
run: utils/checks/features
- name: Check features snapshot
run: utils/checks/features-snapshot
fail-fast: false
name: ${{ matrix.util.name }}
runs-on: ubuntu-22.04
timeout-minutes: 20
permissions:
contents: read
steps:
- name: Checkout
uses: actions/checkout@v4
timeout-minutes: 5
- uses: ./.github/actions/common-setup
with:
platformCacheKey: ubuntu2204-amd64
timeout-minutes: 10
- run: ${{ matrix.util.run }}
downloadable-utils:
strategy:
matrix:
util:
- name: cargo deny
download: >
curl -sSL "https://github.com/EmbarkStudios/cargo-deny/releases/download/0.14.24/cargo-deny-0.14.24-x86_64-unknown-linux-musl.tar.gz" |
sudo tar -xzvf - -C /usr/local/bin --strip-components=1
run: cargo-deny check --hide-inclusion-graph --show-stats
requiresRust: true
- name: taplo
download: >
curl -sSL "https://github.com/tamasfe/taplo/releases/download/0.8.0/taplo-linux-x86_64.gz" |
zcat > /usr/local/bin/taplo \
&& chmod +x /usr/local/bin/taplo
run: taplo format --check
- name: cargo-sort
download: >
curl -sSL "https://github.com/DevinR528/cargo-sort/releases/download/v1.0.9/cargo-sort-x86_64-unknown-linux-gnu.tar.gz" |
sudo tar -xzvf - -C /usr/local/bin
run: cargo-sort -cwg
- name: cargo-machete
download: >
curl -sSL "https://github.com/bnjbvr/cargo-machete/releases/download/v0.6.0/cargo-machete-v0.6.0-x86_64-unknown-linux-musl.tar.gz" |
sudo tar -xzvf - --strip-components=1 -C /usr/local/bin
run: cargo-machete
- name: typos
download: >
curl -sSL "https://github.com/crate-ci/typos/releases/download/v1.21.0/typos-v1.21.0-x86_64-unknown-linux-musl.tar.gz" |
sudo tar -xzvf - -C /usr/local/bin
run: typos
fail-fast: false
name: ${{ matrix.util.name }}
runs-on: ubuntu-22.04
timeout-minutes: 20
permissions:
contents: read
steps:
- name: Checkout
uses: actions/checkout@v4
timeout-minutes: 5
- uses: ./.github/actions/common-setup
with:
requiresRust: ${{ matrix.util.requiresRust }}
timeout-minutes: 10
- name: Download ${{ matrix.util.name }}
run: ${{ matrix.util.download }}
timeout-minutes: 10
- run: ${{ matrix.util.run }}
timeout-minutes: 10
prettier:
name: prettier:check
runs-on: ubuntu-22.04
timeout-minutes: 50
permissions:
contents: read
steps:
- name: Checkout
uses: actions/checkout@v4
timeout-minutes: 5
- uses: actions/setup-node@v4
with:
node-version-file: .node-version
- run: yarn install --immutable
- run: yarn prettier:check