Skip to content

compare: vs nitro-contracts develop #2354

compare: vs nitro-contracts develop

compare: vs nitro-contracts develop #2354

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/[email protected]
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@v3
with:
go-version: 1.19
id: go
- name: Golangci-lint
uses: golangci/golangci-lint-action@v3
with:
version: latest
args: --timeout=10m
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 contracts
run: yarn --cwd contracts build
- name: Set up Go 1.x
uses: actions/setup-go@v3
with:
go-version: 1.19
id: go
# Foundry is required for end to end tests
- name: Install Foundry
uses: foundry-rs/foundry-toolchain@v1
with:
version: nightly
- 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 ./...
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: e2e test
run: bazel test //testing/endtoend:endtoend_suite --test_env=ANVIL=$(which anvil) --test_output=all
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: Run foundry tests
run: forge test
- name: Run hardhat tests
run: yarn hardhat compile && yarn hardhat --network hardhat test test/contract/*.spec.ts
bold-upgrade:
name: BOLD upgrade test
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./contracts
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
- uses: OffchainLabs/actions/run-nitro-test-node@main
- 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
- name: Copy .env
run: |
cp ./.env-sample ./.env
- name: Prepare local node
run: yarn script:bold-local-prepare
- name: Deploy bold dependencies
run: yarn script:bold-prepare
- name: Populate state hash lookup
run: yarn script:bold-populate-lookup
- name: Execute bold upgrade
run: yarn script:bold-local-execute
- name: Execute bold upgrade
run: yarn script:bold-verify