Integration tests #16691
Workflow file for this run
This file contains hidden or 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: Integration tests | |
concurrency: | |
group: "${{ github.workflow }}-${{ github.ref }}" | |
cancel-in-progress: ${{ github.ref != 'refs/heads/main' }} | |
on: | |
workflow_dispatch: | |
merge_group: | |
pull_request: | |
branches: | |
- main | |
# This needs to be declared explicitly so that the RPC checks job is actually | |
# run when PR is labeled. | |
types: [opened, synchronize, reopened, labeled, unlabeled] | |
paths-ignore: | |
- "docs/**" | |
- ".github/workflows/docs-*.yml" | |
push: | |
branches: | |
- main | |
paths-ignore: | |
- "docs/**" | |
- ".github/workflows/docs-*.yml" | |
env: | |
CI: 1 | |
CARGO_INCREMENTAL: 0 | |
CACHE_TIMEOUT_MINUTES: 5 | |
SCRIPT_TIMEOUT_MINUTES: 30 | |
AWS_ACCESS_KEY_ID: "${{ secrets.AWS_ACCESS_KEY_ID }}" | |
AWS_SECRET_ACCESS_KEY: "${{ secrets.AWS_SECRET_ACCESS_KEY }}" | |
RUSTC_WRAPPER: sccache | |
CC: sccache clang | |
CXX: sccache clang++ | |
FIL_PROOFS_PARAMETER_CACHE: /var/tmp/filecoin-proof-parameters | |
SHELL_IMAGE: busybox | |
jobs: | |
build-macos: | |
name: Build MacOS | |
runs-on: macos-latest | |
steps: | |
- name: Configure SCCache variables | |
run: | | |
# External PRs do not have access to 'vars' or 'secrets'. | |
if [[ "$AWS_ACCESS_KEY_ID" != "" ]]; then | |
echo "SCCACHE_ENDPOINT=${{ vars.SCCACHE_ENDPOINT}}" >> $GITHUB_ENV | |
echo "SCCACHE_BUCKET=${{ vars.SCCACHE_BUCKET}}" >> $GITHUB_ENV | |
echo "SCCACHE_REGION=${{ vars.SCCACHE_REGION}}" >> $GITHUB_ENV | |
fi | |
echo "SCCACHE_S3_KEY_PREFIX=macos" >> $GITHUB_ENV | |
- name: Checkout Sources | |
uses: actions/checkout@v5 | |
- name: Setup sccache | |
uses: mozilla-actions/[email protected] | |
timeout-minutes: ${{ fromJSON(env.CACHE_TIMEOUT_MINUTES) }} | |
continue-on-error: true | |
- uses: actions/setup-go@v6 | |
with: | |
go-version-file: "go.work" | |
- name: Cargo Check | |
run: cargo check | |
build-ubuntu: | |
name: Build Ubuntu | |
runs-on: ubuntu-24.04 | |
steps: | |
- name: Configure SCCache variables | |
run: | | |
# External PRs do not have access to 'vars' or 'secrets'. | |
if [[ "${{secrets.AWS_ACCESS_KEY_ID}}" != "" ]]; then | |
echo "SCCACHE_ENDPOINT=${{ vars.SCCACHE_ENDPOINT}}" >> $GITHUB_ENV | |
echo "SCCACHE_BUCKET=${{ vars.SCCACHE_BUCKET}}" >> $GITHUB_ENV | |
echo "SCCACHE_REGION=${{ vars.SCCACHE_REGION}}" >> $GITHUB_ENV | |
fi | |
- run: lscpu | |
- name: Show IP | |
run: curl ifconfig.me | |
continue-on-error: true | |
- name: Checkout Sources | |
uses: actions/checkout@v5 | |
- name: Setup sccache | |
uses: mozilla-actions/[email protected] | |
timeout-minutes: ${{ fromJSON(env.CACHE_TIMEOUT_MINUTES) }} | |
continue-on-error: true | |
- uses: actions/setup-go@v6 | |
with: | |
go-version-file: "go.work" | |
- name: Cargo Install | |
env: | |
# To minimize compile times: https://nnethercote.github.io/perf-book/build-configuration.html#minimizing-compile-times | |
RUSTFLAGS: "-C linker=clang -C link-arg=-fuse-ld=lld" | |
run: make install-slim-quick | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: "forest-${{ runner.os }}" | |
path: | | |
~/.cargo/bin/forest* | |
if-no-files-found: error | |
cargo-publish-dry-run: | |
runs-on: ubuntu-24.04 | |
steps: | |
- name: Checkout Sources | |
uses: actions/checkout@v5 | |
- name: Setup sccache | |
uses: mozilla-actions/[email protected] | |
timeout-minutes: ${{ fromJSON(env.CACHE_TIMEOUT_MINUTES) }} | |
continue-on-error: true | |
- name: Install Apt Dependencies | |
run: | | |
sudo make install-deps | |
- uses: actions/setup-go@v6 | |
with: | |
go-version-file: "go.work" | |
- run: cargo publish --dry-run | |
forest-cli-check: | |
needs: | |
- build-ubuntu | |
name: Forest CLI checks | |
runs-on: ubuntu-24.04 | |
steps: | |
- run: lscpu | |
- uses: actions/cache@v4 | |
with: | |
path: ${{ env.FIL_PROOFS_PARAMETER_CACHE }} | |
key: proof-params-keys | |
- uses: actions/checkout@v5 | |
- uses: actions/download-artifact@v5 | |
with: | |
name: "forest-${{ runner.os }}" | |
path: ~/.cargo/bin | |
- name: Set permissions | |
run: | | |
chmod +x ~/.cargo/bin/forest* | |
- name: forest-cli check | |
run: ./scripts/tests/forest_cli_check.sh | |
timeout-minutes: ${{ fromJSON(env.SCRIPT_TIMEOUT_MINUTES) }} | |
calibnet-check: | |
needs: | |
- build-ubuntu | |
name: Calibnet check | |
runs-on: ubuntu-24.04 | |
steps: | |
- run: lscpu | |
- uses: actions/cache@v4 | |
with: | |
path: "${{ env.FIL_PROOFS_PARAMETER_CACHE }}" | |
key: proof-params-keys | |
- uses: actions/checkout@v5 | |
- uses: actions/download-artifact@v5 | |
with: | |
name: "forest-${{ runner.os }}" | |
path: ~/.cargo/bin | |
- uses: actions/download-artifact@v5 | |
with: | |
name: "forest-${{ runner.os }}" | |
path: ~/.cargo/bin | |
- name: Set permissions | |
run: | | |
chmod +x ~/.cargo/bin/forest* | |
- name: Other commands check | |
run: ./scripts/tests/calibnet_other_check.sh | |
timeout-minutes: ${{ fromJSON(env.SCRIPT_TIMEOUT_MINUTES) }} | |
env: | |
CC: clang | |
CXX: clang++ | |
calibnet-stateless-mode-check: | |
needs: | |
- build-ubuntu | |
name: Calibnet stateless mode check | |
runs-on: ubuntu-24.04 | |
steps: | |
- run: lscpu | |
- uses: actions/cache@v4 | |
with: | |
path: "${{ env.FIL_PROOFS_PARAMETER_CACHE }}" | |
key: proof-params-keys | |
- name: Checkout Sources | |
uses: actions/checkout@v5 | |
- uses: actions/download-artifact@v5 | |
with: | |
name: "forest-${{ runner.os }}" | |
path: ~/.cargo/bin | |
- uses: actions/download-artifact@v5 | |
with: | |
name: "forest-${{ runner.os }}" | |
path: ~/.cargo/bin | |
- name: Set permissions | |
run: | | |
chmod +x ~/.cargo/bin/forest* | |
- run: ./scripts/tests/calibnet_stateless_mode_check.sh | |
timeout-minutes: ${{ fromJSON(env.SCRIPT_TIMEOUT_MINUTES) }} | |
calibnet-stateless-rpc-check: | |
needs: | |
- build-ubuntu | |
name: Calibnet stateless RPC check | |
runs-on: ubuntu-24.04 | |
steps: | |
- run: lscpu | |
- uses: actions/cache@v4 | |
with: | |
path: "${{ env.FIL_PROOFS_PARAMETER_CACHE }}" | |
key: proof-params-keys | |
- name: Checkout Sources | |
uses: actions/checkout@v5 | |
- uses: actions/download-artifact@v5 | |
with: | |
name: "forest-${{ runner.os }}" | |
path: ~/.cargo/bin | |
- uses: actions/download-artifact@v5 | |
with: | |
name: "forest-${{ runner.os }}" | |
path: ~/.cargo/bin | |
- name: Set permissions | |
run: | | |
chmod +x ~/.cargo/bin/forest* | |
- run: ./scripts/tests/calibnet_stateless_rpc_check.sh | |
timeout-minutes: ${{ fromJSON(env.SCRIPT_TIMEOUT_MINUTES) }} | |
state-migrations-check: | |
needs: | |
- build-ubuntu | |
name: State migrations | |
runs-on: ubuntu-24.04 | |
steps: | |
- run: lscpu | |
- uses: actions/cache@v4 | |
with: | |
path: "${{ env.FIL_PROOFS_PARAMETER_CACHE }}" | |
key: proof-params-keys | |
- uses: actions/checkout@v5 | |
- uses: actions/download-artifact@v5 | |
with: | |
name: "forest-${{ runner.os }}" | |
path: ~/.cargo/bin | |
- name: Set permissions | |
run: | | |
chmod +x ~/.cargo/bin/forest* | |
- name: Migration Regression Tests | |
run: ./scripts/tests/calibnet_migration_regression_tests.sh | |
timeout-minutes: ${{ fromJSON(env.SCRIPT_TIMEOUT_MINUTES) }} | |
calibnet-wallet-check: | |
needs: | |
- build-ubuntu | |
name: Wallet tests | |
runs-on: ubuntu-24.04 | |
steps: | |
- run: lscpu | |
- uses: actions/cache@v4 | |
with: | |
path: "${{ env.FIL_PROOFS_PARAMETER_CACHE }}" | |
key: proof-params-keys | |
- uses: actions/checkout@v5 | |
- uses: actions/download-artifact@v5 | |
with: | |
name: "forest-${{ runner.os }}" | |
path: ~/.cargo/bin | |
- name: Set permissions | |
run: | | |
chmod +x ~/.cargo/bin/forest* | |
- name: Wallet commands check | |
env: | |
CALIBNET_WALLET: "${{ secrets.CALIBNET_WALLET }}" | |
run: | | |
if [[ "$CALIBNET_WALLET" != "" ]]; then | |
./scripts/tests/calibnet_wallet_check.sh "$CALIBNET_WALLET" | |
fi | |
timeout-minutes: ${{ fromJSON(env.SCRIPT_TIMEOUT_MINUTES) }} | |
calibnet-export-check-v1: | |
needs: | |
- build-ubuntu | |
name: V1 snapshot export checks | |
runs-on: ubuntu-24.04 | |
steps: | |
- run: lscpu | |
- uses: actions/cache@v4 | |
with: | |
path: "${{ env.FIL_PROOFS_PARAMETER_CACHE }}" | |
key: proof-params-keys | |
- uses: actions/checkout@v5 | |
- uses: actions/download-artifact@v5 | |
with: | |
name: "forest-${{ runner.os }}" | |
path: ~/.cargo/bin | |
- name: Set permissions | |
run: | | |
chmod +x ~/.cargo/bin/forest* | |
- name: V1 snapshot export checks | |
run: ./scripts/tests/calibnet_export_check.sh v1 | |
timeout-minutes: ${{ fromJSON(env.SCRIPT_TIMEOUT_MINUTES) }} | |
calibnet-export-check-v2: | |
needs: | |
- build-ubuntu | |
name: V2 snapshot export checks | |
runs-on: ubuntu-24.04 | |
steps: | |
- run: lscpu | |
- uses: actions/cache@v4 | |
with: | |
path: "${{ env.FIL_PROOFS_PARAMETER_CACHE }}" | |
key: proof-params-keys | |
- uses: actions/checkout@v5 | |
- uses: actions/download-artifact@v5 | |
with: | |
name: "forest-${{ runner.os }}" | |
path: ~/.cargo/bin | |
- name: Set permissions | |
run: | | |
chmod +x ~/.cargo/bin/forest* | |
- name: V2 snapshot export checks | |
run: ./scripts/tests/calibnet_export_check.sh v2 | |
timeout-minutes: ${{ fromJSON(env.SCRIPT_TIMEOUT_MINUTES) }} | |
calibnet-export-diff-check: | |
needs: | |
- build-ubuntu | |
name: Diff snapshot export checks | |
runs-on: ubuntu-24.04 | |
steps: | |
- run: lscpu | |
- uses: actions/cache@v4 | |
with: | |
path: "${{ env.FIL_PROOFS_PARAMETER_CACHE }}" | |
key: proof-params-keys | |
- uses: actions/checkout@v5 | |
- uses: actions/download-artifact@v5 | |
with: | |
name: "forest-${{ runner.os }}" | |
path: ~/.cargo/bin | |
- name: Set permissions | |
run: | | |
chmod +x ~/.cargo/bin/forest* | |
- name: Diff snapshot export check | |
run: ./scripts/tests/calibnet_export_diff_check.sh | |
timeout-minutes: ${{ fromJSON(env.SCRIPT_TIMEOUT_MINUTES) }} | |
calibnet-no-discovery-checks: | |
needs: | |
- build-ubuntu | |
name: Calibnet no discovery checks | |
runs-on: ubuntu-24.04 | |
steps: | |
- run: lscpu | |
- uses: actions/cache@v4 | |
with: | |
path: "${{ env.FIL_PROOFS_PARAMETER_CACHE }}" | |
key: proof-params-keys | |
- uses: actions/checkout@v5 | |
- uses: actions/download-artifact@v5 | |
with: | |
name: "forest-${{ runner.os }}" | |
path: ~/.cargo/bin | |
- name: Set permissions | |
run: | | |
chmod +x ~/.cargo/bin/forest* | |
- run: ./scripts/tests/calibnet_no_discovery_check.sh | |
timeout-minutes: ${{ fromJSON(env.SCRIPT_TIMEOUT_MINUTES) }} | |
calibnet-kademlia-checks: | |
needs: | |
- build-ubuntu | |
name: Calibnet kademlia checks | |
runs-on: ubuntu-24.04 | |
steps: | |
- run: lscpu | |
- uses: actions/cache@v4 | |
with: | |
path: "${{ env.FIL_PROOFS_PARAMETER_CACHE }}" | |
key: proof-params-keys | |
- uses: actions/checkout@v5 | |
- uses: actions/download-artifact@v5 | |
with: | |
name: "forest-${{ runner.os }}" | |
path: ~/.cargo/bin | |
- name: Set permissions | |
run: | | |
chmod +x ~/.cargo/bin/forest* | |
- run: ./scripts/tests/calibnet_kademlia_check.sh | |
timeout-minutes: ${{ fromJSON(env.SCRIPT_TIMEOUT_MINUTES) }} | |
calibnet-eth-mapping-check: | |
needs: | |
- build-ubuntu | |
name: Calibnet eth mapping check | |
runs-on: ubuntu-24.04 | |
steps: | |
- run: lscpu | |
- uses: actions/cache@v4 | |
with: | |
path: "${{ env.FIL_PROOFS_PARAMETER_CACHE }}" | |
key: proof-params-keys | |
- name: Checkout Sources | |
uses: actions/checkout@v5 | |
- uses: actions/download-artifact@v5 | |
with: | |
name: "forest-${{ runner.os }}" | |
path: ~/.cargo/bin | |
- uses: actions/download-artifact@v5 | |
with: | |
name: "forest-${{ runner.os }}" | |
path: ~/.cargo/bin | |
- name: Set permissions | |
run: | | |
chmod +x ~/.cargo/bin/forest* | |
- run: ./scripts/tests/calibnet_eth_mapping_check.sh | |
timeout-minutes: ${{ fromJSON(env.SCRIPT_TIMEOUT_MINUTES) }} | |
calibnet-api-test-stateful: | |
needs: | |
- build-ubuntu | |
name: Calibnet api test-stateful check | |
runs-on: ubuntu-24.04 | |
steps: | |
- run: lscpu | |
- uses: actions/cache@v4 | |
with: | |
path: "${{ env.FIL_PROOFS_PARAMETER_CACHE }}" | |
key: proof-params-keys | |
- name: Checkout Sources | |
uses: actions/checkout@v5 | |
- uses: actions/download-artifact@v5 | |
with: | |
name: "forest-${{ runner.os }}" | |
path: ~/.cargo/bin | |
- uses: actions/download-artifact@v5 | |
with: | |
name: "forest-${{ runner.os }}" | |
path: ~/.cargo/bin | |
- name: Set permissions | |
run: | | |
chmod +x ~/.cargo/bin/forest* | |
- name: Api test stateful check | |
env: | |
CALIBNET_WALLET: "${{ secrets.CALIBNET_WALLET }}" | |
run: | | |
if [[ "$CALIBNET_WALLET" != "" ]]; then | |
./scripts/tests/calibnet_api_test_stateful_check.sh "$CALIBNET_WALLET" | |
fi | |
timeout-minutes: ${{ fromJSON(env.SCRIPT_TIMEOUT_MINUTES) }} | |
db-migration-checks: | |
needs: | |
- build-ubuntu | |
runs-on: ubuntu-24.04 | |
steps: | |
- uses: actions/cache@v4 | |
with: | |
path: "${{ env.FIL_PROOFS_PARAMETER_CACHE }}" | |
key: proof-params-keys | |
- uses: actions/checkout@v5 | |
- uses: actions/download-artifact@v5 | |
with: | |
name: "forest-${{ runner.os }}" | |
path: ~/.cargo/bin | |
- name: Set permissions | |
run: | | |
chmod +x ~/.cargo/bin/forest* | |
- name: Database migration checks | |
run: ./scripts/tests/calibnet_db_migration.sh | |
timeout-minutes: ${{ fromJSON(env.SCRIPT_TIMEOUT_MINUTES) }} | |
local-devnet-check: | |
name: Devnet checks | |
runs-on: ubuntu-24.04 | |
needs: | |
- build-ubuntu | |
env: | |
# We use a custom Dockerfile for CI to speed up the build process. | |
FOREST_DOCKERFILE_OVERRIDE: scripts/devnet/forest_ci.dockerfile | |
steps: | |
- uses: actions/cache@v4 | |
id: cache | |
with: | |
path: "${{ env.FIL_PROOFS_PARAMETER_CACHE }}" | |
key: proof-params-2k | |
- name: Load cache into volume | |
if: steps.cache.outputs.cache-hit == 'true' | |
run: | | |
docker volume create devnet_filecoin-proofs | |
docker run --rm \ | |
-v devnet_filecoin-proofs:/proofs \ | |
-v $FIL_PROOFS_PARAMETER_CACHE:/cache \ | |
$SHELL_IMAGE \ | |
sh -c "cp /cache/* /proofs" | |
- uses: actions/checkout@v5 | |
- uses: actions/download-artifact@v5 | |
with: | |
name: "forest-${{ runner.os }}" | |
- name: Devnet setup | |
run: ./scripts/devnet/setup.sh | |
timeout-minutes: ${{ fromJSON(env.SCRIPT_TIMEOUT_MINUTES) }} | |
- name: Devnet check | |
run: ./scripts/devnet/check.sh | |
timeout-minutes: ${{ fromJSON(env.SCRIPT_TIMEOUT_MINUTES) }} | |
- name: Dump docker logs | |
if: always() | |
uses: jwalton/gh-docker-logs@v2 | |
- name: Prepare cache folder for uploading | |
if: steps.cache.outputs.cache-hit != 'true' | |
run: | | |
docker run --rm \ | |
-v devnet_filecoin-proofs:/proofs \ | |
-v $FIL_PROOFS_PARAMETER_CACHE:/cache \ | |
$SHELL_IMAGE \ | |
sh -c "cp /proofs/* /cache" | |
sudo chmod -R 755 $FIL_PROOFS_PARAMETER_CACHE | |
local-devnet-curio-check: | |
# Disabling this job as it is not providing any value until the curio setup is fixed. See: https://github.com/ChainSafe/forest/issues/5171 | |
if: false | |
name: Devnet Curio checks | |
runs-on: ubuntu-24.04 | |
needs: | |
- build-ubuntu | |
env: | |
# We use a custom Dockerfile for CI to speed up the build process. | |
FOREST_DOCKERFILE_OVERRIDE: scripts/devnet/forest_ci.dockerfile | |
steps: | |
- uses: actions/cache@v4 | |
id: cache | |
with: | |
path: "${{ env.FIL_PROOFS_PARAMETER_CACHE }}" | |
key: proof-params-2k | |
- name: Load cache into volume | |
if: steps.cache.outputs.cache-hit == 'true' | |
run: | | |
docker volume create devnet_filecoin-proofs | |
docker run --rm \ | |
-v devnet_filecoin-proofs:/proofs \ | |
-v $FIL_PROOFS_PARAMETER_CACHE:/cache \ | |
$SHELL_IMAGE \ | |
sh -c "cp /cache/* /proofs" | |
- uses: actions/checkout@v5 | |
- uses: actions/download-artifact@v5 | |
with: | |
name: "forest-${{ runner.os }}" | |
- name: Devnet setup | |
run: | | |
cp ./scripts/devnet/setup.sh ./scripts/devnet-curio/setup.sh | |
chmod +x ./scripts/devnet-curio/setup.sh | |
./scripts/devnet-curio/setup.sh | |
timeout-minutes: ${{ fromJSON(env.SCRIPT_TIMEOUT_MINUTES) }} | |
- name: Devnet check | |
run: | | |
cp ./scripts/devnet/check.sh ./scripts/devnet-curio/check.sh | |
chmod +x ./scripts/devnet-curio/check.sh | |
./scripts/devnet-curio/check.sh | |
timeout-minutes: ${{ fromJSON(env.SCRIPT_TIMEOUT_MINUTES) }} | |
- name: Dump docker logs | |
if: always() | |
uses: jwalton/gh-docker-logs@v2 | |
- name: Prepare cache folder for uploading | |
if: steps.cache.outputs.cache-hit != 'true' | |
run: | | |
docker run --rm \ | |
-v devnet_filecoin-proofs:/proofs \ | |
-v $FIL_PROOFS_PARAMETER_CACHE:/cache \ | |
$SHELL_IMAGE \ | |
sh -c "cp /proofs/* /cache" | |
sudo chmod -R 755 $FIL_PROOFS_PARAMETER_CACHE | |
bootstrap-checks-forest: | |
needs: | |
- build-ubuntu | |
name: Bootstrap checks - Forest | |
runs-on: ubuntu-24.04 | |
env: | |
# We use a custom Dockerfile for CI to speed up the build process. | |
FOREST_DOCKERFILE_OVERRIDE: scripts/devnet/forest_ci.dockerfile | |
steps: | |
- uses: actions/checkout@v5 | |
- uses: actions/download-artifact@v5 | |
with: | |
name: "forest-${{ runner.os }}" | |
- name: Run bootstrap tests | |
run: ./scripts/tests/bootstrapper/test_bootstrapper.sh forest | |
timeout-minutes: ${{ fromJSON(env.SCRIPT_TIMEOUT_MINUTES) }} | |
- name: Dump docker logs | |
if: always() | |
uses: jwalton/gh-docker-logs@v2 | |
bootstrap-checks-lotus: | |
needs: | |
- build-ubuntu | |
name: Bootstrap checks - Lotus | |
runs-on: ubuntu-24.04 | |
env: | |
# We use a custom Dockerfile for CI to speed up the build process. | |
FOREST_DOCKERFILE_OVERRIDE: scripts/devnet/forest_ci.dockerfile | |
steps: | |
- uses: actions/checkout@v5 | |
- uses: actions/download-artifact@v5 | |
with: | |
name: "forest-${{ runner.os }}" | |
- name: Run bootstrap tests | |
run: ./scripts/tests/bootstrapper/test_bootstrapper.sh lotus | |
timeout-minutes: ${{ fromJSON(env.SCRIPT_TIMEOUT_MINUTES) }} | |
- name: Dump docker logs | |
if: always() | |
uses: jwalton/gh-docker-logs@v2 | |
calibnet-rpc-checks-no-ops: | |
name: Calibnet RPC checks | |
runs-on: ubuntu-24.04-arm | |
if: ${{ !contains(github.event.pull_request.labels.*.name, 'RPC') }} | |
steps: | |
- run: echo "No-op job to trigger the required calibnet RPC checks." | |
calibnet-rpc-checks: | |
if: ${{ contains(github.event.pull_request.labels.*.name, 'RPC') }} | |
needs: | |
- build-ubuntu | |
name: Calibnet RPC checks | |
runs-on: buildjet-8vcpu-ubuntu-2204 | |
env: | |
# We use a custom Dockerfile for CI to speed up the build process. | |
FOREST_DOCKERFILE_OVERRIDE: scripts/devnet/forest_ci.dockerfile | |
steps: | |
- uses: actions/checkout@v5 | |
- uses: actions/download-artifact@v5 | |
with: | |
name: "forest-${{ runner.os }}" | |
- name: Run api compare tests | |
run: ./scripts/tests/api_compare/setup.sh | |
timeout-minutes: ${{ fromJSON(env.SCRIPT_TIMEOUT_MINUTES) }} | |
- name: Dump docker logs | |
if: always() | |
uses: jwalton/gh-docker-logs@v2 | |
- name: Dump Docker usage | |
if: always() | |
run: | | |
sudo ls /var/lib/docker/volumes | |
docker system df | |
docker system df --verbose | |
df -h | |
# Umbrella job to aggregate all integration tests and get their status | |
integration-tests-status: | |
needs: | |
- build-macos | |
- build-ubuntu | |
- cargo-publish-dry-run | |
- forest-cli-check | |
- calibnet-check | |
- calibnet-stateless-mode-check | |
- calibnet-stateless-rpc-check | |
- state-migrations-check | |
- calibnet-wallet-check | |
- calibnet-export-check-v1 | |
- calibnet-export-check-v2 | |
- calibnet-no-discovery-checks | |
- calibnet-kademlia-checks | |
- calibnet-eth-mapping-check | |
- calibnet-api-test-stateful | |
- db-migration-checks | |
- local-devnet-check | |
# - local-devnet-curio-check | |
- bootstrap-checks-forest | |
- bootstrap-checks-lotus | |
name: Integration tests status | |
runs-on: ubuntu-24.04 | |
steps: | |
- run: echo "All integration tests passed." |