Skip to content

Improve L2StateProvider Interface #2014

Improve L2StateProvider Interface

Improve L2StateProvider Interface #2014

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
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 tests
run: forge test