code #6534
Workflow file for this run
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: 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 |