CI: build image which supports arm64 platform #3160
Workflow file for this run
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
on: | |
push: | |
branches: # we keep this to avoid triggering `push` & `pull_request` every time we update a PR | |
- main | |
- staging | |
- develop | |
- alpha | |
pull_request: | |
types: | |
- opened | |
- reopened | |
- synchronize | |
- ready_for_review | |
name: CI | |
jobs: | |
build-mock-ccc-geth: # build geth with mock circuit capacity checker | |
if: github.event.pull_request.draft == false | |
runs-on: ubuntu-latest | |
steps: | |
- name: Install Go | |
uses: actions/setup-go@v2 | |
with: | |
go-version: 1.20.x | |
- name: Checkout code | |
uses: actions/checkout@v2 | |
- name: Build | |
run: | | |
make nccc_geth | |
build-geth: # build geth with circuit capacity checker | |
if: github.event_name == 'push' # will only be triggered when pushing to main & staging & develop & alpha | |
runs-on: ubuntu-latest | |
steps: | |
- name: Install Go | |
uses: actions/setup-go@v2 | |
with: | |
go-version: 1.20.x | |
- name: Install rust | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: nightly-2022-12-10 | |
override: true | |
components: rustfmt, clippy | |
- name: Checkout code | |
uses: actions/checkout@v2 | |
- name: Build | |
run: | | |
make libzkp | |
sudo cp ./rollup/circuitcapacitychecker/libzkp/libzkp.so /usr/local/lib/ | |
sudo cp ./rollup/circuitcapacitychecker/libzkp/libzktrie.so /usr/local/lib/ | |
make geth | |
check: | |
if: github.event.pull_request.draft == false | |
runs-on: ubuntu-latest | |
steps: | |
- name: Install Go | |
uses: actions/setup-go@v2 | |
with: | |
go-version: 1.20.x | |
- name: Checkout code | |
uses: actions/checkout@v2 | |
- name: Lint | |
run: | | |
rm -rf $HOME/.cache/golangci-lint | |
make lint | |
goimports-lint: | |
if: github.event.pull_request.draft == false | |
runs-on: ubuntu-latest | |
steps: | |
- name: Install Go | |
uses: actions/setup-go@v2 | |
with: | |
go-version: 1.18.x | |
- name: Install goimports | |
run: go install golang.org/x/tools/cmd/goimports@latest | |
- name: Checkout code | |
uses: actions/checkout@v2 | |
- run: goimports -local github.com/scroll-tech/go-ethereum/ -w . | |
# If there are any diffs from goimports, fail. | |
- name: Verify no changes from goimports | |
run: | | |
if [ -n "$(git status --porcelain)" ]; then | |
exit 1 | |
fi | |
go-mod-tidy-lint: | |
if: github.event.pull_request.draft == false | |
runs-on: ubuntu-latest | |
steps: | |
- name: Install Go | |
uses: actions/setup-go@v2 | |
with: | |
go-version: 1.20.x | |
- name: Checkout code | |
uses: actions/checkout@v2 | |
- run: go mod tidy | |
# If there are any diffs from go mod tidy, fail. | |
- name: Verify no changes from go mod tidy | |
run: | | |
if [ -n "$(git status --porcelain)" ]; then | |
exit 1 | |
fi | |
test: | |
if: github.event.pull_request.draft == false | |
runs-on: ubuntu-latest | |
steps: | |
- name: Install Go | |
uses: actions/setup-go@v2 | |
with: | |
go-version: 1.20.x | |
- name: Checkout code | |
uses: actions/checkout@v2 | |
- name: Test | |
run: | | |
go get ./... | |
make test | |
- name: Upload coverage report | |
run: bash <(curl -s https://codecov.io/bash) |