diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 0a484b1c1..fde11fbe7 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -20,6 +20,10 @@ jobs: cargo-lint: runs-on: ubuntu-latest timeout-minutes: 20 + strategy: + matrix: + target: ["native", "cannon", "asterisc"] + name: lint-${{ matrix.target }} steps: - name: Checkout sources uses: actions/checkout@v4 @@ -30,13 +34,15 @@ jobs: - uses: Swatinem/rust-cache@v2 with: cache-on-failure: true - - name: cargo fmt - run: cargo fmt --all -- --check - - name: cargo clippy - run: cargo clippy --workspace --all --locked -- -D warnings + - name: fmt + lint + run: just lint-${{ matrix.target }} cargo-build: runs-on: ubuntu-latest timeout-minutes: 20 + strategy: + matrix: + target: ["native", "cannon", "asterisc"] + name: build-${{ matrix.target }} continue-on-error: true steps: - name: Checkout sources @@ -47,8 +53,7 @@ jobs: with: cache-on-failure: true - name: build - id: build - run: cargo build --workspace --all --locked + run: just build-${{ matrix.target }} cargo-doc: runs-on: ubuntu-latest timeout-minutes: 20 diff --git a/.github/workflows/fpvm-tests.yaml b/.github/workflows/fpvm-tests.yaml new file mode 100644 index 000000000..2201f80b0 --- /dev/null +++ b/.github/workflows/fpvm-tests.yaml @@ -0,0 +1,33 @@ +name: FPVM +on: [push] +env: + CARGO_TERM_COLOR: always +jobs: + fpvm-example-tests: + runs-on: ubuntu-latest + timeout-minutes: 20 + strategy: + matrix: + fpvm: ["cannon", "asterisc"] + name: ${{ matrix.fpvm }}-tests + steps: + - name: Checkout sources + uses: actions/checkout@v4 + - name: Install Rust stable toolchain + uses: dtolnay/rust-toolchain@stable + - name: Install Rust nightly toolchain + uses: dtolnay/rust-toolchain@nightly + - name: Setup Go toolchain + uses: actions/setup-go@v4 + with: + go-version: "1.21.6" + - uses: Swatinem/rust-cache@v2 + with: + cache-on-failure: true + - uses: taiki-e/install-action@just + - name: Pull ${{ matrix.fpvm }} Build Image + run: | + docker pull ghcr.io/ethereum-optimism/kona/${{ matrix.fpvm }}-builder:main + - name: Run FPVM tests + working-directory: ./fpvm-tests + run: just test-${{ matrix.fpvm }} diff --git a/build/README.md b/build/README.md index 8c87bfa93..ea20e2521 100644 --- a/build/README.md +++ b/build/README.md @@ -18,15 +18,16 @@ docker run \ --platform linux/amd64 \ -v `pwd`/:/workdir \ -w="/workdir" \ - cannon-pipeline:latest cargo build --release -Zbuild-std + ghcr.io/ethereum-optimism/kona/cannon-builder:main cargo build --release -Zbuild-std ``` **asterisc** + ``` docker run \ --rm \ --platform linux/amd64 \ -v `pwd`/:/workdir \ -w="/workdir" \ - asterisc-pipeline:latest cargo build --release -Zbuild-std + ghcr.io/ethereum-optimism/kona/asterisc-builder:main cargo build --release -Zbuild-std ``` diff --git a/examples/minimal/justfile b/examples/minimal/justfile index a2f532a43..f4c4121cc 100644 --- a/examples/minimal/justfile +++ b/examples/minimal/justfile @@ -7,7 +7,7 @@ build-cannon *args='': --platform linux/amd64 \ -v `pwd`/../../:/workdir \ -w="/workdir/examples/minimal" \ - cannon-pipeline:latest cargo build -Zbuild-std $@ + ghcr.io/ethereum-optimism/kona/cannon-builder:main cargo build -Zbuild-std $@ # Build for the `asterisc` target build-asterisc *args='': @@ -16,4 +16,4 @@ build-asterisc *args='': --platform linux/amd64 \ -v `pwd`/../../:/workdir \ -w="/workdir/examples/minimal" \ - asterisc-pipeline:latest cargo build -Zbuild-std $@ + ghcr.io/ethereum-optimism/kona/asterisc-builder:main cargo build -Zbuild-std $@ diff --git a/examples/simple-revm/justfile b/examples/simple-revm/justfile index 9ecd226dd..7a9f290f3 100644 --- a/examples/simple-revm/justfile +++ b/examples/simple-revm/justfile @@ -7,7 +7,7 @@ build-cannon *args='': --platform linux/amd64 \ -v `pwd`/../../:/workdir \ -w="/workdir/examples/simple-revm" \ - cannon-pipeline:latest cargo build -Zbuild-std $@ + ghcr.io/ethereum-optimism/kona/cannon-builder:main cargo build -Zbuild-std $@ # Build for the `asterisc` target build-asterisc *args='': @@ -16,4 +16,4 @@ build-asterisc *args='': --platform linux/amd64 \ -v `pwd`/../../:/workdir \ -w="/workdir/examples/simple-revm" \ - asterisc-pipeline:latest cargo build -Zbuild-std $@ + ghcr.io/ethereum-optimism/kona/asterisc-builder:main cargo build -Zbuild-std $@ diff --git a/justfile b/justfile index 149546174..1dba9043e 100644 --- a/justfile +++ b/justfile @@ -23,7 +23,7 @@ lint-cannon: --platform linux/amd64 \ -v `pwd`/:/workdir \ -w="/workdir" \ - cannon-pipeline:latest cargo +nightly clippy --workspace --all --all-features --target /mips-unknown-none.json -Zbuild-std -- -D warnings + ghcr.io/ethereum-optimism/kona/cannon-builder:main cargo +nightly clippy --workspace --all --all-features --target /mips-unknown-none.json -Zbuild-std -- -D warnings # Lint the workspace (risc-v arch) lint-asterisc: @@ -32,7 +32,7 @@ lint-asterisc: --platform linux/amd64 \ -v `pwd`/:/workdir \ -w="/workdir" \ - asterisc-pipeline:latest cargo +nightly clippy --workspace --all --all-features --target riscv64gc-unknown-linux-gnu -Zbuild-std -- -D warnings + ghcr.io/ethereum-optimism/kona/asterisc-builder:main cargo +nightly clippy --workspace --all --all-features --target riscv64gc-unknown-linux-gnu -Zbuild-std -- -D warnings # Build the workspace for all available targets build: build-native build-cannon build-asterisc @@ -48,7 +48,7 @@ build-cannon *args='': --platform linux/amd64 \ -v `pwd`/:/workdir \ -w="/workdir" \ - cannon-pipeline:latest cargo build --workspace --all -Zbuild-std $@ + ghcr.io/ethereum-optimism/kona/cannon-builder:main cargo build --workspace --all -Zbuild-std $@ # Build for the `asterisc` target build-asterisc *args='': @@ -57,4 +57,4 @@ build-asterisc *args='': --platform linux/amd64 \ -v `pwd`/:/workdir \ -w="/workdir" \ - asterisc-pipeline:latest cargo build --workspace --all -Zbuild-std $@ + ghcr.io/ethereum-optimism/kona/asterisc-builder:main cargo build --workspace --all -Zbuild-std $@