Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
2087ba4
chore: include `ribasushi-rpc-checks` to test forest against external…
EclesioMeloJunior Aug 11, 2026
39db12b
chore: update CHANGELOG.md
EclesioMeloJunior Aug 11, 2026
170db74
chore: introduce validation and timeouts
EclesioMeloJunior Aug 11, 2026
23532b3
Merge branch 'main' of github.com:ChainSafe/forest into forest-rpc-ch…
EclesioMeloJunior Aug 11, 2026
6eceded
chore: includes `prepare.sh` and `ribasushi-rpc-checks.yaml`
EclesioMeloJunior Aug 12, 2026
2b16fd1
add `Ribasushi` to .dict
EclesioMeloJunior Aug 12, 2026
71dc887
chore: change to `data.riba.plus`
EclesioMeloJunior Aug 13, 2026
3a0a918
chore: removing some missing refs to `Ribasushi`
EclesioMeloJunior Aug 13, 2026
aea766b
chore: address comments, making `./setup.sh`
EclesioMeloJunior Aug 14, 2026
4027d12
Merge branch 'main' into forest-rpc-checks
EclesioMeloJunior Aug 14, 2026
f0aef7a
chore: address yaml lint problem
EclesioMeloJunior Aug 14, 2026
55bd2b2
Merge branch 'forest-rpc-checks' of github.com:ChainSafe/forest into …
EclesioMeloJunior Aug 14, 2026
15632ce
chore: address rabbit comments
EclesioMeloJunior Aug 14, 2026
5d7382b
chore: transform resolve->download->backfill into a init container
EclesioMeloJunior Aug 17, 2026
5bf2c2b
Merge branch 'main' into forest-rpc-checks
EclesioMeloJunior Aug 17, 2026
4b85d55
Merge branch 'main' into forest-rpc-checks
EclesioMeloJunior Aug 17, 2026
295979e
chore: address comments
EclesioMeloJunior Aug 18, 2026
6eacd4e
Merge branch 'main' into forest-rpc-checks
EclesioMeloJunior Aug 18, 2026
be73015
Merge branch 'forest-rpc-checks' of github.com:ChainSafe/forest into …
EclesioMeloJunior Aug 18, 2026
f36aecb
fix RPC verification routine
EclesioMeloJunior Aug 18, 2026
b9f2c65
Merge branch 'main' into forest-rpc-checks
EclesioMeloJunior Aug 18, 2026
4c718cc
chore: dockerize index backfill verification
EclesioMeloJunior Aug 18, 2026
11dfefa
Merge branch 'forest-rpc-checks' of github.com:ChainSafe/forest into …
EclesioMeloJunior Aug 18, 2026
c053e97
feat: improve external-rpc-checks to run on dispatch and on labeled PRs
EclesioMeloJunior Aug 18, 2026
f81811e
Merge branch 'main' of github.com:ChainSafe/forest into improve-fores…
EclesioMeloJunior Aug 20, 2026
2efc633
chore: update flags and change to arm64
EclesioMeloJunior Aug 20, 2026
6b4a95b
chore: use arm64 as default
EclesioMeloJunior Aug 21, 2026
09393e6
Merge branch 'main' into improve-forest-rpc-checks
EclesioMeloJunior Aug 21, 2026
94d10ec
Merge branch 'main' into improve-forest-rpc-checks
EclesioMeloJunior Aug 23, 2026
b501ee0
Merge branch 'main' of github.com:ChainSafe/forest into improve-fores…
EclesioMeloJunior Aug 24, 2026
9dd7a84
chore: accept image as workflow_dispatch arg and use it instead of bu…
EclesioMeloJunior Aug 24, 2026
87a0903
Merge branch 'improve-forest-rpc-checks' of github.com:ChainSafe/fore…
EclesioMeloJunior Aug 24, 2026
35355d3
chore: sanitize docker image to avoid any other string that is not a …
EclesioMeloJunior Aug 24, 2026
8365615
chore: fix ruby checks
EclesioMeloJunior Aug 24, 2026
459c064
chore: remove
EclesioMeloJunior Aug 25, 2026
6dfc0a8
Merge branch 'main' into improve-forest-rpc-checks
EclesioMeloJunior Aug 25, 2026
a1e27ea
chore: change description and comment
EclesioMeloJunior Aug 27, 2026
824420d
Merge branch 'main' into improve-forest-rpc-checks
EclesioMeloJunior Aug 27, 2026
ea08628
Merge branch 'main' into improve-forest-rpc-checks
EclesioMeloJunior Aug 27, 2026
3972adf
chore: resolve `forest_image` description
EclesioMeloJunior Aug 27, 2026
1a21456
Merge branch 'improve-forest-rpc-checks' of github.com:ChainSafe/fore…
EclesioMeloJunior Aug 27, 2026
4c4572c
Merge branch 'main' into improve-forest-rpc-checks
EclesioMeloJunior Aug 27, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
94 changes: 92 additions & 2 deletions .github/workflows/external-rpc-checks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,23 +4,113 @@ permissions:
issues: write

concurrency:
group: ${{ github.workflow }}
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}

on:
workflow_dispatch:
Comment thread
EclesioMeloJunior marked this conversation as resolved.
inputs:
forest_image:
description: "Test this image instead of building one."
required: false
type: string
pull_request:
branches:
- main
types: [opened, synchronize, reopened, labeled, unlabeled]
schedule:
- cron: "0 13 * * *" # Runs every day at 13:00 UTC

jobs:
# scheduled runs skip this and test the published image instead
build:
name: Build Forest
if: |-
${{ github.event_name == 'workflow_dispatch'
|| (github.event_name == 'pull_request'
&& (contains(github.event.pull_request.labels.*.name, 'RPC')
|| contains(github.event.pull_request.labels.*.name, 'Release'))) }}
runs-on: ubuntu-24.04-arm
env:
RUSTC_WRAPPER: sccache
CC: sccache clang
CXX: sccache clang++
AWS_ACCESS_KEY_ID: "${{ secrets.AWS_ACCESS_KEY_ID }}"
AWS_SECRET_ACCESS_KEY: "${{ secrets.AWS_SECRET_ACCESS_KEY }}"
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}}"
echo "SCCACHE_BUCKET=${{ vars.SCCACHE_BUCKET}}"
echo "SCCACHE_REGION=${{ vars.SCCACHE_REGION}}"
} >> "$GITHUB_ENV"
fi
- uses: rui314/setup-mold@v1
with:
make-default: false
- name: Checkout Sources
uses: actions/checkout@v7
- name: Setup sccache
uses: mozilla-actions/sccache-action@v0.0.11
timeout-minutes: 5
continue-on-error: true
- uses: actions/setup-go@v7
with:
go-version-file: "go.work"
cache-dependency-path: "**/go.sum"
- uses: jdx/mise-action@v4
- name: Install Forest
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=mold"
run: mise run install --slim quick
- uses: actions/upload-artifact@v7
with:
name: "forest-${{ runner.os }}"
path: |
~/.cargo/bin/forest*
if-no-files-found: error

rpc-checks:
name: RPC checks against the data.riba.plus dataset
runs-on: warp-ubuntu-2404-x64-8x
runs-on: warp-ubuntu-2404-arm64-8x
needs: build
# `build` only runs for dispatches and labelled pull requests; scheduled runs skip
# it and test `edge-fat`. Unlabelled pull requests do not run the checks at all.
if: |-
${{ always()
&& (needs.build.result == 'success' || needs.build.result == 'skipped')
&& (github.event_name != 'pull_request'
|| contains(github.event.pull_request.labels.*.name, 'RPC')
|| contains(github.event.pull_request.labels.*.name, 'Release')) }}
defaults:
run:
working-directory: scripts/tests/external-rpc-checks
steps:
- name: Checkout Sources
uses: actions/checkout@v7
- name: Download the build
if: ${{ needs.build.result == 'success' }}
uses: actions/download-artifact@v8
with:
name: "forest-${{ runner.os }}"
- name: Build an image from those binaries
if: ${{ needs.build.result == 'success' && inputs.forest_image == '' }}
working-directory: .
run: |
docker build --platform linux/arm64 --file scripts/devnet/forest_ci.dockerfile --tag forest-under-test:ci .
# overwrites the .env FOREST_IMAGE envvar
echo "FOREST_IMAGE=forest-under-test:ci" >> "$GITHUB_ENV"
Comment thread
EclesioMeloJunior marked this conversation as resolved.
- name: Use the image given to the dispatch
if: ${{ inputs.forest_image != '' }}
working-directory: .
env:
FOREST_IMAGE_INPUT: ${{ inputs.forest_image }}
run: |
echo "FOREST_IMAGE=${FOREST_IMAGE_INPUT}" >> "$GITHUB_ENV"
- name: Run the RPC checks
run: ./setup.sh
- name: Dump docker logs
Expand Down
2 changes: 2 additions & 0 deletions scripts/tests/external-rpc-checks/.env
Original file line number Diff line number Diff line change
@@ -1,2 +1,4 @@
# Prefer a `fat` image: it ships the filecoin proof parameters, which a slim one downloads on first boot.
FOREST_IMAGE=ghcr.io/chainsafe/forest:edge-fat
FOREST_RPC_PORT=2345
FOREST_HEALTHZ_RPC_PORT=2346
2 changes: 1 addition & 1 deletion scripts/tests/external-rpc-checks/docker-compose.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
name: external-rpc-checks

x-forest-service: &forest-service
image: ghcr.io/chainsafe/forest:edge-fat
image: ${FOREST_IMAGE}
volumes:
- node-data:/data
environment:
Expand Down
Loading