Skip to content

Use Latest Call Opts for Assertion Status #3820

Use Latest Call Opts for Assertion Status

Use Latest Call Opts for Assertion Status #3820

Workflow file for this run

name: Go
on:
push:
branches: [main]
pull_request:
branches: ["*"]
jobs:
formatting:
name: Formatting
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Go mod tidy checker
id: gomodtidy
uses: ./.github/actions/gomodtidy
gosec:
name: Gosec scan
runs-on: ubuntu-latest
env:
GO111MODULE: on
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Set up Go 1.x
uses: actions/setup-go@v3
with:
go-version: 1.19
- name: Run Gosec Security Scanner
run: | # https://github.com/securego/gosec/issues/469
export PATH=$PATH:$(go env GOPATH)/bin
go install github.com/securego/gosec/v2/cmd/gosec@v2.12.0
gosec -exclude=G307 ./...
lint:
name: Lint
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Set up Go 1.x
uses: actions/setup-go@v4
with:
go-version: 1.20.x
id: go
- name: Golangci-lint
uses: golangci/golangci-lint-action@v3
with:
version: latest
args: --timeout=10m
skip-pkg-cache: true
build:
name: Build and Test
runs-on: ubuntu-latest
steps:
- name: Check out code into the Go module directory
uses: actions/checkout@v2
- name: Setup node/yarn
uses: actions/setup-node@v3
with:
node-version: 16
cache: "yarn"
cache-dependency-path: "**/contracts/yarn.lock"
- name: Install
run: cd contracts && yarn install
- name: Build solidity contracts
run: yarn --cwd contracts build
- name: Set up Go 1.x
uses: actions/setup-go@v4
with:
go-version: 1.20.x
id: go
- name: Install Foundry
uses: foundry-rs/foundry-toolchain@v1
with:
version: nightly
- name: Build yul contracts
run: yarn --cwd contracts build:forge:yul
- name: Get dependencies
run: |
go get -v -t -d ./...
- name: AbiGen
run: go run ./solgen/main.go
- name: Build
run: go build -v ./...
- name: Test
run: ANVIL=$(which anvil) go test -v -covermode=atomic -coverprofile=coverage.out -timeout=20m ./...
- name: Upload coverage reports to Codecov
uses: codecov/codecov-action@v3
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
bazel:
name: Bazel
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: bazelbuild/setup-bazelisk@v2
- name: Mount bazel cache
uses: actions/cache@v3
with:
path: "~/.cache/bazel"
key: bazel
- name: build
run: bazel build //...
- name: test
run: bazel test //... --build_manual_tests --test_output=all
# Foundry is required for end to end tests
- name: Install Foundry
uses: foundry-rs/foundry-toolchain@v1
with:
version: nightly
- name: coverage
run: bazel coverage --combined_report=lcov //...
- name: Upload coverage reports to Codecov
uses: codecov/codecov-action@v3
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
sol-test:
name: Solidity tests
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./contracts
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
- name: Install Foundry
uses: foundry-rs/foundry-toolchain@v1
with:
version: nightly
- name: Setup node/yarn
uses: actions/setup-node@v3
with:
node-version: 16
cache: "yarn"
cache-dependency-path: "**/yarn.lock"
- name: Install packages
run: yarn
- name: Build
run: yarn build:all
- name: Run foundry tests
run: forge test
- name: Run hardhat tests
run: yarn hardhat compile && yarn hardhat --network hardhat test test/contract/*.spec.ts
sol-test-size:
name: Solidity contract size, storage, 4bytes
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./contracts
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
- name: Install Foundry
uses: foundry-rs/foundry-toolchain@v1
with:
version: nightly
- name: Setup node/yarn
uses: actions/setup-node@v3
with:
node-version: 16
cache: "yarn"
cache-dependency-path: "**/yarn.lock"
- name: Install packages
run: yarn
- name: Build contracts
run: yarn build
- name: Test size
run: yarn contract:size
- name: Test storage
run: yarn test:storage
- name: Test 4bytes
run: yarn test:signatures
bold-upgrade:
name: BOLD upgrade test
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./contracts
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
- name: Install Foundry
uses: foundry-rs/foundry-toolchain@v1
with:
version: nightly
- name: Setup node/yarn
uses: actions/setup-node@v3
with:
node-version: 16
cache: "yarn"
cache-dependency-path: "**/yarn.lock"
- name: Install packages
run: yarn
- name: Compile contracts
run: yarn build:all
- name: Copy .env
run: |
cp ./.env-sample ./.env
- name: Test upgrade
run: L1_RPC=${{ secrets.L1_RPC }} yarn test:upgrade