[Feat] Automate smart contract docgen and PR branch creation into Linea docs repo #1159
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: Smart contracts test | |
on: | |
pull_request: | |
paths: | |
- 'contracts/**' | |
- 'testdata/**' | |
- 'prover/**' | |
- '!contracts/**/*.md' | |
- '!contracts/**/*.mdx' | |
- '!testdata/**/*.md' | |
- '!prover/**/*.md' | |
- '!**/docs/**' | |
push: | |
branches: | |
- main | |
paths: | |
- 'contracts/**' | |
- 'testdata/**' | |
- 'prover/**' | |
- '!contracts/**/*.md' | |
- '!contracts/**/*.mdx' | |
- '!testdata/**/*.md' | |
- '!prover/**/*.md' | |
- '!**/docs/**' | |
env: | |
GOPROXY: "https://proxy.golang.org" | |
jobs: | |
run-contract-tests: | |
runs-on: [self-hosted, ubuntu-20.04, X64, small] | |
name: Run smart contracts tests | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Install Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version: 1.23.x | |
cache: false | |
- uses: actions/cache@v4 | |
with: | |
path: | | |
~/go/pkg/mod | |
~/.cache/go-build | |
~/Library/Caches/go-build | |
%LocalAppData%\go-build | |
key: ${{ runner.os }}-go-${{ hashFiles('prover/go.sum') }} | |
restore-keys: | | |
${{ runner.os }}-go- | |
- name: Setup nodejs environment | |
uses: ./.github/actions/setup-nodejs | |
- name: Check JS formatting | |
run: pnpm -F contracts run lint:ts | |
# Required for hardhat commands due to @nomicfoundation/hardhat-foundry package | |
- name: Install Foundry | |
uses: foundry-rs/foundry-toolchain@v1 | |
- name: Compile kzg.node | |
run: npx node-gyp --directory=contracts/node_modules/c-kzg rebuild # explicitly running rebuild to get the .node file | |
- name: Run smart contracts tests and generate coverage report | |
run: pnpm -F contracts run coverage | |
- name: Upload coverage to Codecov | |
uses: codecov/codecov-action@v5 | |
with: | |
fail_ci_if_error: true | |
files: ./contracts/coverage/coverage-final.json | |
flags: hardhat | |
os: linux | |
name: codecov-contracts | |
verbose: true | |
token: ${{ secrets.CODECOV_TOKEN }} | |
solidity-format-check: | |
runs-on: [self-hosted, ubuntu-20.04, X64, small] | |
name: Solidity format check | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Setup nodejs environment | |
uses: ./.github/actions/setup-nodejs | |
- name: Check Solidity formatting | |
run: pnpm -F contracts run lint:sol |