fix(bundle_state): preserve confidential zero slots in to_plain_state #513
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: Seismic CI | |
| on: | |
| push: | |
| branches: | |
| - seismic | |
| - veridise-audit-feb-2026 | |
| pull_request: | |
| branches: | |
| - seismic | |
| - veridise-audit-feb-2026 | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | |
| cancel-in-progress: true | |
| env: | |
| CARGO_TERM_COLOR: always | |
| CARGO_NET_GIT_FETCH_WITH_CLI: true | |
| jobs: | |
| rustfmt: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 5 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@nightly | |
| with: | |
| components: rustfmt | |
| - run: cargo fmt --all --check | |
| build: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 30 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@stable | |
| - uses: Swatinem/rust-cache@v2 | |
| with: | |
| shared-key: "build-cache" | |
| - name: cargo build | |
| run: cargo build | |
| warnings: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 30 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@stable | |
| - uses: Swatinem/rust-cache@v2 | |
| with: | |
| shared-key: "warnings-cache" | |
| - name: cargo check warnings | |
| run: RUSTFLAGS="-A elided_named_lifetimes -D warnings" cargo check | |
| test: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 30 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@stable | |
| - uses: Swatinem/rust-cache@v2 | |
| with: | |
| shared-key: "test-cache" | |
| - name: cargo test | |
| run: cargo test --workspace | |
| clippy-strict: | |
| name: clippy-strict (seismic) | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 15 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@stable | |
| with: | |
| components: clippy | |
| - uses: Swatinem/rust-cache@v2 | |
| with: | |
| shared-key: "clippy-cache" | |
| - name: Clippy (strict - seismic crate) | |
| run: | | |
| cargo clippy \ | |
| -p seismic-revm \ | |
| --lib --tests --no-deps \ | |
| -- -D warnings \ | |
| -W clippy::unwrap_used \ | |
| -W clippy::expect_used \ | |
| -W clippy::indexing_slicing \ | |
| -W clippy::panic \ | |
| -W clippy::unreachable \ | |
| -W clippy::todo | |
| semantic-tests: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 30 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Clone seismic-solidity repo | |
| run: | | |
| TEMP_DIR=$(mktemp -d) | |
| git clone https://github.com/SeismicSystems/seismic-solidity.git "$TEMP_DIR/seismic-solidity" | |
| echo "SEISMIC_SOLIDITY_PATH=$TEMP_DIR/seismic-solidity" >> $GITHUB_ENV | |
| echo "seismic-solidity cloned to: $TEMP_DIR/seismic-solidity" | |
| - name: Install latest ssolc release | |
| run: | | |
| # Set variables for Linux x86_64 | |
| OS_TYPE="linux" | |
| ARCH_TYPE="x86_64" | |
| INSTALL_DIR="/usr/local/bin" | |
| TARGET_NAME="ssolc-${OS_TYPE}-${ARCH_TYPE}.tar.gz" | |
| SSOLC_BIN="${INSTALL_DIR}/ssolc" | |
| TEMP_DIR=$(mktemp -d) | |
| # Download the release | |
| echo "Fetching latest release information..." | |
| GITHUB_API_URL="https://api.github.com/repos/SeismicSystems/seismic-solidity/releases/latest" | |
| ASSET_ID=$(curl -s "$GITHUB_API_URL" | \ | |
| jq -r --arg name "$TARGET_NAME" '.assets[] | select(.name == $name) | .id') | |
| if [[ -z "$ASSET_ID" ]]; then | |
| echo "Error: Asset $TARGET_NAME not found in the latest release." | |
| exit 1 | |
| fi | |
| echo "Downloading $TARGET_NAME..." | |
| DOWNLOAD_PATH="$TEMP_DIR/$TARGET_NAME" | |
| curl -L -H "Accept: application/octet-stream" \ | |
| -o "$DOWNLOAD_PATH" \ | |
| "https://api.github.com/repos/SeismicSystems/seismic-solidity/releases/assets/$ASSET_ID" | |
| echo "Extracting archive..." | |
| mkdir -p "$TEMP_DIR/extract" | |
| if ! file "$DOWNLOAD_PATH" | grep -q 'gzip compressed data'; then | |
| echo "Error: Invalid gzip archive" | |
| exit 1 | |
| fi | |
| tar -xzf "$DOWNLOAD_PATH" -C "$TEMP_DIR/extract" | |
| BINARY_PATH="$TEMP_DIR/extract/solc/solc" | |
| if [[ ! -f "$BINARY_PATH" ]]; then | |
| echo "Error: Binary not found in extracted archive" | |
| exit 1 | |
| fi | |
| echo "Installing binary to $SSOLC_BIN..." | |
| sudo mv "$BINARY_PATH" "$SSOLC_BIN" | |
| sudo chmod +x "$SSOLC_BIN" | |
| # Cleanup | |
| rm -rf "$TEMP_DIR" | |
| - uses: dtolnay/rust-toolchain@stable | |
| - uses: Swatinem/rust-cache@v2 | |
| with: | |
| shared-key: "semantic-test-cache" | |
| - name: Run semantic tests (no optimizer) | |
| run: RUST_BACKTRACE=1 cargo run -p revme -- semantics --keep-going -s /usr/local/bin/ssolc -t "$SEISMIC_SOLIDITY_PATH/test/libsolidity/semanticTests" | |
| # TODO: enable this once we fix all the bugs on main branch | |
| # - name: Run semantic tests (with 200 optimizer runs) | |
| # run: RUST_BACKTRACE=1 cargo run -p revme -- semantics --keep-going -s /usr/local/bin/ssolc -t "$SEISMIC_SOLIDITY_PATH/test/libsolidity/semanticTests" --optimize --optimizer-runs 200 |