Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
66 commits
Select commit Hold shift + click to select a range
f373a62
Add DA proof support to daprovider interface
Tristan-Wilson Sep 9, 2025
06c5f87
Merge branch 'master' into customda-daprovider-interface
Tristan-Wilson Sep 10, 2025
9f415d7
Reduce code duplication in factory, more cert validation
Tristan-Wilson Sep 12, 2025
3e28ae0
Merge branch 'master' into customda-daprovider-interface
Tristan-Wilson Sep 12, 2025
3a79a18
Fix for interface change on master
Tristan-Wilson Sep 12, 2025
7ac666a
Merge remote-tracking branch 'origin/master' into customda-daprovider…
Tristan-Wilson Sep 22, 2025
c1f5d1d
Remove DACert flag from KnownHeaderBits for now
Tristan-Wilson Sep 22, 2025
08e9cec
Remove preimageType from daprovider.Validator
Tristan-Wilson Sep 22, 2025
6fb4296
Remove IsValidHeaderByte from RPC API
Tristan-Wilson Sep 22, 2025
931d0c9
Move daprovider api types to own go pkg
Tristan-Wilson Sep 25, 2025
1f5b050
Use Promises with daprovider.Reader iface
Tristan-Wilson Sep 25, 2025
de6cd20
dasserver migration to provider_server
Tristan-Wilson Sep 25, 2025
51456b6
Split rpc payload and preimage methods
Tristan-Wilson Sep 25, 2025
0fdfdc4
Removed the validateSeqMsg param from Reader
Tristan-Wilson Sep 25, 2025
162ff10
Use Promises with Validator interface
Tristan-Wilson Sep 25, 2025
cb742ea
Revert #3700 (#3711)
joshuacolvin0 Sep 26, 2025
6de2dd9
Merge remote-tracking branch 'origin/master' into customda-daprovider…
Tristan-Wilson Sep 26, 2025
87712d4
Add missing import
Tristan-Wilson Sep 26, 2025
4546581
Remove deprecated AnyTrust db storage service (#3701)
Tristan-Wilson Sep 26, 2025
a81514d
Fixup log messages in attributeWasmComputation (#3709)
MishkaRogachev Sep 26, 2025
29d4273
remove no-op OS-specific prerequisites block in check-build.sh (#3675)
VolodymyrBg Sep 26, 2025
a964782
fix: missing reassignment of rivals when recording creation times in …
GarmashAlex Sep 26, 2025
5895dcf
update CI/CD infrastructure: standardize actions and upgrade linting …
ruslan0012 Sep 26, 2025
b580dd7
fix(events): use stable subscription ids and remove by id (#3563)
VolodymyrBg Sep 26, 2025
f96982a
Merge branch 'customda-daprovider-interface' into custom-da-merge-cus…
Tristan-Wilson Sep 26, 2025
f60bbc8
Use new daprovider.Validator interface with promises
Tristan-Wilson Sep 26, 2025
79e0d6a
Extend provider server with data streaming API
pmikolajczyk41 Sep 26, 2025
7da2836
Add TrustingPayloadVerifier, NoopPayload Signer. Create the provider …
pmikolajczyk41 Sep 26, 2025
9aa75b9
Linting
pmikolajczyk41 Sep 26, 2025
0e4cb38
Post-rebase fixes
pmikolajczyk41 Sep 26, 2025
81d61ce
Remove outdated comment
pmikolajczyk41 Sep 26, 2025
7f24e08
Fix server initialization
pmikolajczyk41 Sep 26, 2025
fc8a35c
Remove Store endpoint from the server
pmikolajczyk41 Sep 26, 2025
ac37804
Use data streaming in client
pmikolajczyk41 Sep 26, 2025
6410637
Add body limit argument to the constructor
pmikolajczyk41 Sep 26, 2025
c472837
Add signer argument to the constructor
pmikolajczyk41 Sep 26, 2025
69faaf4
Adjust testcase
pmikolajczyk41 Sep 26, 2025
32a4565
System tests should use BOLD contracts by default (#3690)
amsanghi Sep 28, 2025
5de0279
Update transaction_streamer.go (#3717)
viktorking7 Sep 28, 2025
bc621cc
arbos: Instrument multi-gas in setTrieSlots HostIO (#3713)
MishkaRogachev Sep 29, 2025
eb09283
Update blockchain.go (#3722)
avorylli Sep 29, 2025
3cd69a8
Interpolate the RUN_URL in Slack notification (#3723)
eljobe Sep 29, 2025
cf87312
fix: use Counter for nonceFailureCache overflow metric (#3648)
GarmashAlex Sep 29, 2025
2037191
Update rest_server_list.go (#3715)
maradini77 Sep 29, 2025
0f97322
Resgister DAS reader with both flag variants
Tristan-Wilson Sep 29, 2025
165b171
Merge branch 'master' into customda-daprovider-interface
Tristan-Wilson Sep 29, 2025
57a5ec4
Fix body limit
pmikolajczyk41 Sep 29, 2025
40636dc
Merge branch 'customda-daprovider-interface' into custom-da-merge-cus…
Tristan-Wilson Sep 29, 2025
e348a53
Merge remote-tracking branch 'origin/custom-da-merge-customda-daprovi…
pmikolajczyk41 Sep 29, 2025
138e365
Update blob_client.go (#3721)
viktorking7 Sep 29, 2025
26f406c
fix(solimpl): correct UpperChild zero-check to use UpperChildId (#3703)
MozirDmitriy Sep 29, 2025
8453672
use proper client
pmikolajczyk41 Sep 30, 2025
95aafbf
Add multi-dimensional gas metrics (#3726)
MishkaRogachev Sep 30, 2025
2becbf1
Merge pull request #3631 from OffchainLabs/pmikolajczyk/nit-3515
pmikolajczyk41 Sep 30, 2025
9d4ce59
Instrument multi-gas in precompiles (#3729)
gligneul Sep 30, 2025
70556de
Enable CodeCov analysis (#3714)
pmikolajczyk41 Sep 30, 2025
242220e
Refactor caller context creationi and remove redundant argument (#3733)
tsahee Sep 30, 2025
56547ac
Merge v1.16.4 (#3734)
amsanghi Oct 1, 2025
d5417e1
Update ticker.go (#3728)
viktorking7 Oct 1, 2025
c46e1e9
feat(nitro-val): implement ValidationNodeConfig.Validate with logging…
Forostovec Oct 1, 2025
16f5868
Use also head_ref for limiting CI concurrency (#3741)
pmikolajczyk41 Oct 1, 2025
25a3d92
remove: delete unused HashPlusInt function from arbos/util (#3730)
futreall Oct 1, 2025
6c74ee2
Add support for consensus-v50-rc.5 to Dockerfile (#3744)
eljobe Oct 1, 2025
d432fb0
remove account recreation (#3746)
rauljordan Oct 1, 2025
949806a
Add DA proof support to daprovider interface (#3600)
Tristan-Wilson Oct 2, 2025
84fc947
Merge remote-tracking branch 'origin/master' into custom-da-merge-cus…
Tristan-Wilson Oct 2, 2025
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
32 changes: 31 additions & 1 deletion .github/workflows/_arbitrator.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,14 +37,44 @@ jobs:
# so make sure it doesn't conflict with anything!
no-cache: true

- name: Install cargo-nextest
uses: taiki-e/install-action@v2
with:
tool: [email protected]

- name: Create minimal nextest.toml config file
run: |
cat << EOF > nextest.toml
[profile.ci.junit]
path = "junit.xml"
EOF

- name: Make arbitrator libraries
run: make -j wasm-ci-build

- name: Clippy check
run: cargo clippy --all --manifest-path arbitrator/Cargo.toml -- -D warnings

- name: Run rust tests
run: cargo test -p arbutil -p prover -p jit -p stylus --release --manifest-path arbitrator/prover/Cargo.toml
id: run-rust-tests
continue-on-error: true
run: >-
cargo nextest run -p arbutil -p prover -p jit -p stylus --release
--manifest-path arbitrator/prover/Cargo.toml
--profile ci --config-file nextest.toml

- name: Upload rust test results
if: always()
uses: actions/upload-artifact@v4
with:
name: rust-junit-reports
path: ./arbitrator/target/nextest/ci/junit.xml

- name: Fail if rust tests failed
if: steps.run-rust-tests.outcome == 'failure'
run: |
echo "Rust tests failed. Failing the workflow as required."
exit 1

- name: Check stylus_bechmark
run: cargo check --manifest-path arbitrator/tools/stylus_benchmark/Cargo.toml
Expand Down
34 changes: 34 additions & 0 deletions .github/workflows/_codecov.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
---
name: codecov
on:
workflow_call:

jobs:
report_summary:
name: Aggregate test results
runs-on: ubuntu-4
permissions:
pull-requests: write

steps:
- name: Checkout repository
uses: actions/checkout@v5

- name: Download Go JUnit reports
uses: actions/download-artifact@v4
with:
name: go-junit-reports
path: downloaded-reports/go

- name: Download Rust JUnit reports
uses: actions/download-artifact@v4
continue-on-error: true # Rust pipeline might have not been run
with:
name: rust-junit-reports
path: downloaded-reports/rust

- name: Run Basic Test Results Action (Unified Report)
uses: codecov/basic-test-results@v1
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
directory: 'downloaded-reports/'
2 changes: 1 addition & 1 deletion .github/workflows/_fast.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ jobs:
- name: GolangCI Lint
uses: golangci/golangci-lint-action@v8
with:
version: v2.1
version: v2.5

- name: Custom Lint
run: |
Expand Down
63 changes: 44 additions & 19 deletions .github/workflows/_go-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,17 +11,13 @@ jobs:
fail-fast: false
matrix:
test-mode: [defaults, pathdb, challenge, stylus, l3challenge]
services:
redis:
image: redis
ports:
- 6379:6379

steps:
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}

- name: Start redis
run: docker run -d -p 6379:6379 redis:latest

- name: Checkout
uses: actions/checkout@v5
with:
Expand All @@ -44,24 +40,56 @@ jobs:
- name: Build all lint dependencies
run: make -j8 build-node-deps

# --------------------- PATHDB MODE ---------------------

- name: run tests without race detection and path state scheme
if: matrix.test-mode == 'pathdb'
run: >-
${{ github.workspace }}/.github/workflows/gotestsum.sh
--tags cionly --timeout 90m --cover --test_state_scheme path

# --------------------- DEFAULTS MODE ---------------------

- name: run tests without race detection and hash state scheme
if: matrix.test-mode == 'defaults'
id: run-tests-defaults
continue-on-error: true
run: >-
${{ github.workspace }}/.github/workflows/gotestsum.sh
--tags cionly --timeout 60m --test_state_scheme hash
--tags cionly --timeout 60m --test_state_scheme hash --junitfile test-results/junit.xml

- name: Process JUnit XML logs
if: matrix.test-mode == 'defaults' && always()
run: python3 ${{ github.workspace }}/.github/workflows/process_junit.py test-results/

- name: Upload Go test Artifacts
if: matrix.test-mode == 'defaults' && always()
uses: actions/upload-artifact@v4
with:
name: go-junit-reports
path: test-results/junit_*.xml

- name: Fail if tests failed
if: matrix.test-mode == 'defaults' && steps.run-tests-defaults.outcome == 'failure'
run: |
echo "One or more tests failed."
exit 1

- name: run redis tests
if: matrix.test-mode == 'defaults'
run: >-
gotestsum --format short-verbose -- -p 1 -run TestRedis ./arbnode/... ./system_tests/...
-coverprofile=coverage-redis.txt -covermode=atomic -coverpkg=./... -- --test_redis=redis://localhost:6379/0

- name: Upload coverage to Codecov
if: matrix.test-mode == 'defaults'
uses: codecov/codecov-action@v5
with:
fail_ci_if_error: false
files: ./coverage.txt,./coverage-redis.txt
verbose: false
token: ${{ secrets.CODECOV_TOKEN }}

- name: create block input json file
if: matrix.test-mode == 'defaults'
run: >-
Expand All @@ -88,6 +116,8 @@ jobs:
exit 1
fi

# --------------------- CHALLENGE MODES ---------------------

- name: build challenge tests
if: matrix.test-mode == 'challenge'
run: go test -tags challengetest ./... -run=^$ -v
Expand All @@ -98,23 +128,18 @@ jobs:
${{ github.workspace }}/.github/workflows/gotestsum.sh
--tags challengetest --run TestL3Challenge --timeout 120m --cover

# --------------------- CHALLENGE MODES ---------------------

- name: run stylus tests
if: matrix.test-mode == 'stylus'
run: >-
${{ github.workspace }}/.github/workflows/gotestsum.sh
--tags stylustest --run TestProgramArbitrator --timeout 60m --cover

# --------------------- ARCHIVE LOGS FOR ALL MODES ---------------------

- name: Archive detailed run log
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.test-mode }}-full.log
path: full.log

- name: Upload coverage to Codecov
if: matrix.test-mode == 'defaults'
uses: codecov/codecov-action@v5
with:
fail_ci_if_error: false
files: ./coverage.txt,./coverage-redis.txt
verbose: false
token: ${{ secrets.CODECOV_TOKEN }}
13 changes: 12 additions & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name: CI
run-name: CI triggered from @${{ github.actor }} of ${{ github.head_ref }}

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}-${{ github.ref }}
cancel-in-progress: true

on:
Expand Down Expand Up @@ -36,8 +36,10 @@ jobs:
- 'arbitrator/**'
- 'contracts/**'
- 'Makefile'
- '.github/workflows/_arbitrator.yml'
bold_legacy:
- 'bold/legacy/**'
- '.github/workflows/_bold-legacy.yml'

# --- Fast: Build + Lint only (required by can_proceed) ---
fast:
Expand All @@ -63,6 +65,15 @@ jobs:
uses: ./.github/workflows/_go-tests.yml
secrets: inherit

# --- Summarize test results (not required by can_proceed) ---
codecov:
needs: [go-tests, arbitrator]
if: always()
uses: ./.github/workflows/_codecov.yml
secrets: inherit
permissions:
pull-requests: write

can_proceed:
name: can_proceed
runs-on: ubuntu-4
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/codeql-analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
name: CodeQL

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}-${{ github.ref }}
cancel-in-progress: true

on:
Expand Down
17 changes: 7 additions & 10 deletions .github/workflows/docker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name: Docker build CI
run-name: Docker build CI triggered from @${{ github.actor }} of ${{ github.head_ref }}

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}-${{ github.ref }}
cancel-in-progress: true

on:
Expand All @@ -16,17 +16,14 @@ jobs:
docker:
name: Docker build
runs-on: arbitrator-ci
services:
# local registry
registry:
image: registry:2
ports:
- 5000:5000

steps:
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}

- name: Start registry
run: docker run -d -p 5000:5000 registry:2.8

- name: Checkout
uses: actions/checkout@v5
with:
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/fuzz.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ jobs:

steps:
- uses: actions/checkout@v5
- uses: actions/setup-go@v5
- uses: actions/setup-go@v6
with:
go-version-file: "go.mod"
- id: list
Expand All @@ -36,7 +36,7 @@ jobs:

steps:
- uses: actions/checkout@v5
- uses: actions/setup-go@v5
- uses: actions/setup-go@v6
with:
go-version-file: "go.mod"
- uses: shogo82148/actions-go-fuzz/run@v1
Expand Down
40 changes: 30 additions & 10 deletions .github/workflows/gotestsum.sh
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ timeout=""
tags=""
run=""
test_state_scheme=""
junitfile=""
log=true
race=false
cover=false
Expand Down Expand Up @@ -48,10 +49,16 @@ while [[ $# -gt 0 ]]; do
cover=true
shift
;;
--nolog)
log=false
shift
;;
--nolog)
log=false
shift
;;
--junitfile)
shift
check_missing_value $# "$1" "--junitfile"
junitfile=$1
shift
;;
*)
echo "Invalid argument: $1"
exit 1
Expand All @@ -61,7 +68,20 @@ done

packages=$(go list ./...)
for package in $packages; do
cmd="stdbuf -oL gotestsum --format short-verbose --packages=\"$package\" --rerun-fails=3 --rerun-fails-max-failures=30 --no-color=false --"
# Add the gotestsum flags first
cmd="stdbuf -oL gotestsum --format short-verbose --packages=\"$package\" --rerun-fails=1 --rerun-fails-max-failures=30 --no-color=false"

if [ "$junitfile" != "" ]; then
# Since we run tests package-by-package, we must make the JUnit file name unique
# to avoid overwriting. We'll append the package name (slugified) to the base file.
sanitized_package_name=$(echo "$package" | tr -c '[:alnum:]' '_')
unique_junit_file="${junitfile%.*}_${sanitized_package_name}.xml"
cmd="$cmd --junitfile \"$unique_junit_file\""
fi

# Append the separator and go test arguments
cmd="$cmd --"

if [ "$timeout" != "" ]; then
cmd="$cmd -timeout $timeout"
fi
Expand All @@ -88,11 +108,11 @@ for package in $packages; do
cmd="$cmd -args -- --test_loglevel=8" # Use error log level, which is the value 8 in the slog level enum for tests.
fi

if [ "$log" == true ]; then
cmd="$cmd > >(stdbuf -oL tee -a full.log | grep -vE \"DEBUG|TRACE|INFO|seal\")"
else
cmd="$cmd | grep -vE \"DEBUG|TRACE|INFO|seal\""
fi
if [ "$log" == true ]; then
cmd="$cmd > >(stdbuf -oL tee -a full.log | grep -vE \"DEBUG|TRACE|INFO|seal\")"
else
cmd="$cmd | grep -vE \"DEBUG|TRACE|INFO|seal\""
fi

echo ""
echo running tests for "$package"
Expand Down
Loading
Loading