Skip to content

Merge pull request #72 from refcell/brock/dyn_alloc #185

Merge pull request #72 from refcell/brock/dyn_alloc

Merge pull request #72 from refcell/brock/dyn_alloc #185

Workflow file for this run

name: CI
on:
push:
branches: [main]
pull_request:
merge_group:
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
env:
CARGO_TERM_COLOR: always
permissions:
contents: read
pull-requests: write
jobs:
build:
name: Build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/setup
with:
rust-cache-shared-key: "stable"
rust-cache-save: ${{ github.ref == 'refs/heads/main' }}
- run: just build-ci
test:
name: Test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/setup
with:
tools: cargo-nextest
rust-cache-shared-key: "stable"
- run: just test-ci
fmt:
name: Format
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/setup
with:
toolchain: nightly
components: rustfmt
rust-cache-shared-key: "nightly"
rust-cache-save: ${{ github.ref == 'refs/heads/main' }}
- run: just check-format
clippy:
name: Clippy
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/setup
with:
components: clippy
rust-cache-shared-key: "stable"
- run: just check-clippy-ci
deny:
name: Cargo Deny
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/setup
with:
tools: cargo-deny
rust-cache-shared-key: "stable"
- run: just check-deny
docs:
name: Docs
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/setup
with:
rust-cache-shared-key: "stable"
- run: just check-docs
examples:
name: Example Contracts
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/setup
with:
rust-cache-shared-key: "stable"
- run: just check-examples
stdlib:
name: Standard Library
needs: [build]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/setup
with:
rust-cache-shared-key: "stable"
- run: just check-stdlib
acceptance:
name: Acceptance Tests
needs: [build]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: ./.github/actions/setup
with:
tools: cargo-nextest
rust-cache-shared-key: "stable"
- name: Gas snapshot diff
if: github.event_name == 'pull_request'
run: |
git show origin/${{ github.base_ref }}:crates/e2e/.gas-snapshot > /tmp/base-gas-snapshot 2>/dev/null || true
git show HEAD:crates/e2e/.gas-snapshot > /tmp/head-gas-snapshot 2>/dev/null || true
if [ -s /tmp/base-gas-snapshot ] && [ -s /tmp/head-gas-snapshot ]; then
python3 scripts/gas-diff.py /tmp/base-gas-snapshot /tmp/head-gas-snapshot > /tmp/gas-diff.md
else
echo "No gas snapshots to compare." > /tmp/gas-diff.md
fi
- run: just e2e-ci
- name: Post gas diff comment
if: github.event_name == 'pull_request'
uses: actions/github-script@v7
with:
script: |
const fs = require('fs');
const body = fs.readFileSync('/tmp/gas-diff.md', 'utf8');
const { data: comments } = await github.rest.issues.listComments({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.issue.number,
});
const marker = '## Gas Snapshot Diff';
const existing = comments.find(c => c.body.includes(marker));
if (existing) {
await github.rest.issues.updateComment({
owner: context.repo.owner,
repo: context.repo.repo,
comment_id: existing.id,
body: body,
});
} else {
await github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.issue.number,
body: body,
});
}