versioning #3915
Workflow file for this run
This file contains 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: Contracts | |
on: | |
push: | |
branches: | |
- main | |
- release-* | |
tags: | |
# YYYYMMDD | |
- "20[0-9][0-9][0-1][0-9][0-3][0-9]*" | |
pull_request: | |
branches: | |
workflow_dispatch: | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
env: | |
RUST_LOG: info,libp2p=off | |
jobs: | |
contracts: | |
timeout-minutes: 30 | |
runs-on: ubuntu-latest | |
steps: | |
- name: Install Nix | |
uses: cachix/install-nix-action@V27 | |
- name: Enable Cachix | |
uses: cachix/cachix-action@v15 | |
# If PR is from a non-collaborator (e. g. dependabot) the secrets are missing and the login to cachix fails. | |
continue-on-error: true | |
with: | |
name: espresso-systems-private | |
authToken: "${{ secrets.CACHIX_AUTH_TOKEN }}" | |
extraPullNames: nix-community | |
skipPush: ${{ github.actor == 'dependabot[bot]' }} | |
- name: Checkout Repository | |
uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- uses: Swatinem/rust-cache@v2 | |
name: Enable Rust Caching | |
with: | |
prefix-key: v2-rust | |
- name: Check toolchain versions | |
run: nix develop --accept-flake-config -c ./scripts/show-toolchain-versions | |
- name: Format check | |
run: nix develop --accept-flake-config -c pre-commit run forge-fmt --all-files --show-diff-on-failure | |
- name: Solhint solidity linter | |
run: nix develop --accept-flake-config -c pre-commit run solhint --all-files --show-diff-on-failure | |
- name: Build non-test contracts without warnings | |
run: nix develop --accept-flake-config -c forge build --skip test --deny-warnings | |
- name: Build all contracts | |
run: nix develop --accept-flake-config -c forge build | |
- name: Check if bindings up to date | |
run: nix develop --accept-flake-config -c pre-commit run contract-bindings --all-files --show-diff-on-failure | |
- name: Print changes to bindings | |
if: ${{ failure() }} | |
run: | | |
git status | |
git diff | |
- name: Build diff-test | |
run: | | |
nix develop --accept-flake-config -c cargo build --locked --bin diff-test --release | |
- name: Run tests (quick version for PR) | |
if: ${{ github.event_name == 'pull_request' }} | |
run: | | |
export FOUNDRY_PROFILE=quick | |
nix develop --accept-flake-config -c forge test -vvv | |
- name: Run tests (full version for main) | |
if: ${{ github.event_name != 'pull_request' }} | |
run: | | |
nix develop --accept-flake-config -c forge test -vvv | |
- name: Print light contract gas benchmark | |
run: | | |
nix develop --accept-flake-config -c forge test --mt testCorrectUpdateBench |