Skip to content

chore: pin OpenZeppelin contracts to exact version and enforce lockfile #655

chore: pin OpenZeppelin contracts to exact version and enforce lockfile

chore: pin OpenZeppelin contracts to exact version and enforce lockfile #655

Workflow file for this run

name: CI
on:
push:
branches: [master]
pull_request:
branches: [master]
jobs:
lint:
name: Lint & Format
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install uv
uses: astral-sh/setup-uv@v5
with:
enable-cache: true
- name: Set up Python
run: uv python install 3.11
- name: Install dependencies
run: make dev
- name: Format check
run: make format-check
if: always()
- name: Lint
run: make lint
if: always()
- name: Typecheck
run: make typecheck
if: always()
test:
name: Test
runs-on: ubuntu-latest
services:
sapphire-localnet-ci:
image: ghcr.io/oasisprotocol/sapphire-localnet
ports:
- 8545:8545
env:
OASIS_DOCKER_START_EXPLORER: no
TO: "chimney theory present latin find behave ankle clock shadow earn suit reflect"
options: >-
--rm
--health-cmd="test -f /CONTAINER_READY"
--health-start-period=90s
steps:
- uses: actions/checkout@v4
- name: Install uv
uses: astral-sh/setup-uv@v5
with:
enable-cache: true
- name: Set up Python
run: uv python install 3.11
- name: Setup Bun
uses: oven-sh/setup-bun@v2
- name: Install Solidity dependencies
run: cd solidity && bun install --frozen-lockfile
- name: Cache Hardhat compiler
uses: actions/cache@v4
with:
path: ~/.cache/hardhat-nodejs
key: hardhat-${{ hashFiles('solidity/hardhat.config.ts') }}
- name: Compile Solidity contracts
run: make solidity-build
- name: Enforce bytecode size budget
run: cd solidity && bun run check:size
- name: Validate upgrade safety
run: cd solidity && npx hardhat run scripts/validate-upgrade.ts
- name: Verify ABI artifacts exist
run: |
test -f solidity/artifacts/contracts/Accounting.sol/Accounting.json || (echo "Solidity artifacts not found!" && exit 1)
- name: Run Solidity tests
run: make solidity-test
- name: Install dependencies
run: make dev
- name: OpenAPI spec drift check
run: make openapi-check
- name: Test
run: make test