feat: rpc::Client #7692
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: Integration tests | |
concurrency: | |
group: '${{ github.workflow }}-${{ github.ref }}' | |
cancel-in-progress: '${{ github.ref != ''refs/heads/main'' }}' | |
'on': | |
workflow_dispatch: null | |
merge_group: null | |
pull_request: | |
branches: | |
- main | |
push: | |
branches: | |
- main | |
schedule: | |
- cron: 0 0 * * * | |
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 | |
- name: Checkout Sources | |
uses: actions/checkout@v4 | |
- name: Setup sccache | |
uses: mozilla-actions/sccache-action@v0.0.4 | |
timeout-minutes: '${{ fromJSON(env.CACHE_TIMEOUT_MINUTES) }}' | |
continue-on-error: true | |
- name: Cargo Check | |
run: cargo check | |
build-ubuntu: | |
name: Build Ubuntu | |
runs-on: ubuntu-latest | |
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@v4 | |
- name: Setup sccache | |
uses: mozilla-actions/sccache-action@v0.0.4 | |
timeout-minutes: '${{ fromJSON(env.CACHE_TIMEOUT_MINUTES) }}' | |
continue-on-error: true | |
- name: Install Apt Dependencies | |
run: | | |
sudo make install-deps | |
- name: Cargo Install | |
run: make install | |
- 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-latest | |
steps: | |
- name: Checkout Sources | |
uses: actions/checkout@v4 | |
- name: Setup sccache | |
uses: mozilla-actions/sccache-action@v0.0.4 | |
timeout-minutes: '${{ fromJSON(env.CACHE_TIMEOUT_MINUTES) }}' | |
continue-on-error: true | |
- name: Install Apt Dependencies | |
run: | | |
sudo make install-deps | |
- run: cargo publish --dry-run | |
forest-cli-check: | |
needs: | |
- build-ubuntu | |
name: Forest CLI checks | |
runs-on: ubuntu-latest | |
steps: | |
- run: lscpu | |
- uses: actions/cache@v4 | |
with: | |
path: ${{ env.FIL_PROOFS_PARAMETER_CACHE }} | |
key: proof-params-keys | |
- uses: actions/checkout@v4 | |
- uses: actions/download-artifact@v4 | |
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-latest | |
steps: | |
- run: lscpu | |
- uses: actions/cache@v4 | |
with: | |
path: '${{ env.FIL_PROOFS_PARAMETER_CACHE }}' | |
key: proof-params-keys | |
- uses: actions/checkout@v4 | |
- uses: actions/download-artifact@v4 | |
with: | |
name: 'forest-${{ runner.os }}' | |
path: ~/.cargo/bin | |
- uses: actions/download-artifact@v4 | |
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) }}' | |
calibnet-stateless-mode-check: | |
needs: | |
- build-ubuntu | |
name: Calibnet stateless mode check | |
runs-on: ubuntu-latest | |
steps: | |
- run: lscpu | |
- uses: actions/cache@v4 | |
with: | |
path: '${{ env.FIL_PROOFS_PARAMETER_CACHE }}' | |
key: proof-params-keys | |
- name: Checkout Sources | |
uses: actions/checkout@v4 | |
- uses: actions/download-artifact@v4 | |
with: | |
name: 'forest-${{ runner.os }}' | |
path: ~/.cargo/bin | |
- uses: actions/download-artifact@v4 | |
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) }}' | |
state-migrations-check: | |
needs: | |
- build-ubuntu | |
name: State migrations | |
runs-on: ubuntu-latest | |
steps: | |
- run: lscpu | |
- uses: actions/cache@v4 | |
with: | |
path: '${{ env.FIL_PROOFS_PARAMETER_CACHE }}' | |
key: proof-params-keys | |
- uses: actions/checkout@v4 | |
- uses: actions/download-artifact@v4 | |
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-latest | |
steps: | |
- run: lscpu | |
- uses: actions/cache@v4 | |
with: | |
path: '${{ env.FIL_PROOFS_PARAMETER_CACHE }}' | |
key: proof-params-keys | |
- uses: actions/checkout@v4 | |
- uses: actions/download-artifact@v4 | |
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: | |
needs: | |
- build-ubuntu | |
name: Snapshot export checks | |
runs-on: ubuntu-latest | |
steps: | |
- run: lscpu | |
- uses: actions/cache@v4 | |
with: | |
path: '${{ env.FIL_PROOFS_PARAMETER_CACHE }}' | |
key: proof-params-keys | |
- uses: actions/checkout@v4 | |
- uses: actions/download-artifact@v4 | |
with: | |
name: 'forest-${{ runner.os }}' | |
path: ~/.cargo/bin | |
- name: Set permissions | |
run: | | |
chmod +x ~/.cargo/bin/forest* | |
- name: Snapshot export check | |
run: ./scripts/tests/calibnet_export_check.sh | |
timeout-minutes: '${{ fromJSON(env.SCRIPT_TIMEOUT_MINUTES) }}' | |
calibnet-no-discovery-checks: | |
needs: | |
- build-ubuntu | |
name: Calibnet no discovery checks | |
runs-on: ubuntu-latest | |
steps: | |
- run: lscpu | |
- uses: actions/cache@v4 | |
with: | |
path: '${{ env.FIL_PROOFS_PARAMETER_CACHE }}' | |
key: proof-params-keys | |
- uses: actions/checkout@v4 | |
- uses: actions/download-artifact@v4 | |
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-latest | |
steps: | |
- run: lscpu | |
- uses: actions/cache@v4 | |
with: | |
path: '${{ env.FIL_PROOFS_PARAMETER_CACHE }}' | |
key: proof-params-keys | |
- uses: actions/checkout@v4 | |
- uses: actions/download-artifact@v4 | |
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) }}' | |
db-migration-checks: | |
needs: | |
- build-ubuntu | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/cache@v4 | |
with: | |
path: '${{ env.FIL_PROOFS_PARAMETER_CACHE }}' | |
key: proof-params-keys | |
- uses: actions/checkout@v4 | |
- uses: actions/download-artifact@v4 | |
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) }}' | |
db-migration-checks-car-db: | |
needs: | |
- build-ubuntu | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/cache@v4 | |
with: | |
path: '${{ env.FIL_PROOFS_PARAMETER_CACHE }}' | |
key: proof-params-keys | |
- uses: actions/checkout@v4 | |
- uses: actions/download-artifact@v4 | |
with: | |
name: 'forest-${{ runner.os }}' | |
path: ~/.cargo/bin | |
- name: Set permissions | |
run: | | |
chmod +x ~/.cargo/bin/forest* | |
- name: Database migration checks with car_db folder | |
run: ./scripts/tests/calibnet_db_migration_car_db.sh | |
timeout-minutes: '${{ fromJSON(env.SCRIPT_TIMEOUT_MINUTES) }}' | |
local-devnet-check: | |
name: Devnet checks | |
runs-on: ubuntu-latest | |
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@v4 | |
- uses: actions/download-artifact@v4 | |
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 | |
calibnet-rpc-checks: | |
needs: | |
- build-ubuntu | |
name: Calibnet RPC checks | |
runs-on: ubuntu-latest | |
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-keys | |
- name: Load cache into volume | |
if: steps.cache.outputs.cache-hit == 'true' | |
run: | | |
docker volume create api_compare_filecoin-proofs | |
docker run --rm \ | |
-v api_compare_filecoin-proofs:/proofs \ | |
-v $FIL_PROOFS_PARAMETER_CACHE:/cache \ | |
$SHELL_IMAGE \ | |
sh -c "cp /cache/* /proofs" | |
- uses: actions/checkout@v4 | |
- uses: actions/download-artifact@v4 | |
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: Prepare cache folder for uploading | |
if: steps.cache.outputs.cache-hit != 'true' | |
run: | | |
docker run --rm \ | |
-v api_compare_filecoin-proofs:/proofs \ | |
-v $FIL_PROOFS_PARAMETER_CACHE:/cache \ | |
$SHELL_IMAGE \ | |
sh -c "cp /proofs/* /cache" | |
sudo chmod -R 755 $FIL_PROOFS_PARAMETER_CACHE |