From 8b2448333441f7e5344cad2ea3c834d3863d26be Mon Sep 17 00:00:00 2001 From: Conor Schaefer Date: Mon, 4 Dec 2023 17:05:02 -0800 Subject: [PATCH] ci: check against testnet and preview We've seen substantial drift in compatibilility, now that we're running testnests for longer than two weeks (currently at 5 weeks on 63 Rhea). As we did with Galileo [0], let's update CI to run checks against both targets. [0] https://github.com/penumbra-zone/galileo/pull/85 --- .github/workflows/rust.yml | 55 +++++++++++++++++++++++++++++----- .github/workflows/schedule.yml | 38 ----------------------- 2 files changed, 47 insertions(+), 46 deletions(-) delete mode 100644 .github/workflows/schedule.yml diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index 19f91a1..8a26c94 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -2,9 +2,6 @@ name: Rust CI on: workflow_call: workflow_dispatch: - push: - branches: - - main # Run periodically to check for breakage, since we seldom update the osiris repo. # This allows us to determine approximately when a breaking change was merged into # the penumbra repo, so we can fix it ahead of a testnet release. @@ -14,20 +11,62 @@ on: concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true + jobs: - build: - name: Build + lookup-testnet: + name: Look up testnet + runs-on: ubuntu-latest + outputs: + testnet_tag: ${{ steps.testnet_tag.outputs.testnet_tag }} + steps: + - id: testnet_tag + run: >- + printf "testnet_tag=%s" "$(curl -sSfL https://api.github.com/repos/penumbra-zone/penumbra/releases/latest | jq -r .tag_name)" + >> "$GITHUB_OUTPUT" + + # Let's make sure we can still build against the currently active stable testnet. + check-testnet: + name: Check Testnet + runs-on: buildjet-8vcpu-ubuntu-2004 + needs: lookup-testnet + steps: + - name: Checkout osiris + uses: actions/checkout@v4 + + - name: Check out penumbra repo + uses: actions/checkout@v4 + with: + repository: penumbra-zone/penumbra + path: penumbra-repo + lfs: true + ref: ${{needs.lookup-testnet.outputs.testnet_tag}} + + - name: Move penumbra repo to relative path + run: mv penumbra-repo ../penumbra + + - name: Install rust toolchain + uses: dtolnay/rust-toolchain@stable + + - name: Configure rust cache + uses: Swatinem/rust-cache@v2 + + - name: Run cargo check + run: cargo check --release + + build-preview: + name: Build Preview runs-on: buildjet-16vcpu-ubuntu-2004 steps: - name: Checkout osiris - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Check out penumbra repo - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: repository: penumbra-zone/penumbra path: penumbra-repo lfs: true + ref: main - name: Move penumbra repo to relative path run: mv penumbra-repo ../penumbra @@ -50,7 +89,7 @@ jobs: runs-on: buildjet-8vcpu-ubuntu-2004 steps: - name: Checkout osiris - uses: actions/checkout@v3 + uses: actions/checkout@v4 # N.B. `cargo fmt` does not require relpath dependencies to be present, # so we don't need to clone the penumbra repo here. diff --git a/.github/workflows/schedule.yml b/.github/workflows/schedule.yml deleted file mode 100644 index 2ce9ae5..0000000 --- a/.github/workflows/schedule.yml +++ /dev/null @@ -1,38 +0,0 @@ -name: Check Osiris versus latest penumbra -on: - schedule: - - cron: "15 18 * * *" - -jobs: - check: - name: Check - runs-on: ubuntu-latest - steps: - - name: Checkout osiris - uses: actions/checkout@v2 - with: - path: osiris - - - name: Check out penumbra repo - uses: actions/checkout@v2 - with: - repository: penumbra-zone/penumbra - path: penumbra - lfs: true - - - uses: actions-rs/toolchain@v1 - with: - profile: minimal - toolchain: stable - override: true - - - uses: Swatinem/rust-cache@v2 - with: - workspaces: | - osiris - penumbra - - - name: cargo fmt - run: - cargo fmt --all -- --check - working-directory: osiris