wormhole/.github/workflows/build.yml

134 lines
4.0 KiB
YAML
Raw Normal View History

name: Build
on:
workflow_dispatch:
pull_request:
push:
branches:
- dev.v2
jobs:
# Run the full Tilt build and wait for it to converge
tilt:
runs-on: tilt-kube-public
# Cancel previous builds on the same branch/ref. Full runs are expensive
# and capacity is limited, so we want to avoid running multiple builds
# in parallel even if it means skipping CI runs on permanent branches
# (unfortunately, we can't differentiate between temporary and permanent
# refs without duplicating the entire logic).
concurrency:
group: ${{ github.workflow }}-tilt-${{ github.ref }}
cancel-in-progress: true
steps:
- uses: actions/checkout@v2
- name: Expand for link to Tilt dashboard (only available during build)
run: >
echo "Tilt progress dashboard: https://$DASHBOARD_URL"
- run: |
kubectl config set-context ci --namespace=$DEPLOY_NS
kubectl config use-context ci
- run: tilt ci -- --ci --namespace=$DEPLOY_NS --num=2
timeout-minutes: 60
# Clean up k8s resources
- run: kubectl delete --namespace=$DEPLOY_NS service,statefulset,configmap,pod,job --all
if: always()
# Verify whether the Makefile builds the node (no dependencies other than Go)
node:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2
- uses: actions/setup-go@v2
with:
go-version: "1.17.5"
- run: make node
algorand:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v3
with:
python-version: "3.10"
- run: pip install -r algorand/requirements.txt
- run: cd algorand && make test
ethereum:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: "16"
- run: cd ethereum && make test
terra:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: "16"
- run: cd terra && make test
2022-06-16 09:48:01 -07:00
terra-2:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: "16"
- run: cd cosmwasm && make test
# Run linters, Go tests and other outside-of-Tilt things.
lint-and-tests:
# The linter is slow enough that we want to run it on the self-hosted runner
runs-on: tilt-kube-public
concurrency:
group: ${{ github.workflow }}-lint-${{ github.ref }}
cancel-in-progress: true
steps:
- uses: actions/checkout@v2
- uses: actions/setup-go@v2
with:
go-version: "1.17.5"
# ensure that code is formatted
2022-06-01 09:32:37 -07:00
- run: GOFMT_OUTPUT="$(gofmt -l `find ./node ./event_database -name '*.go' | grep -v vendor` 2>&1)"; if [ -n "$GOFMT_OUTPUT" ]; then printf "All the following files are not correctly formatted\n${GOFMT_OUTPUT}\n"; exit 1; fi
# run linters
- run: make generate && ./lint.sh
# The go-ethereum and celo-blockchain packages both implement secp256k1 using the exact same header, but that causes duplicate symbols.
- run: cd node && go test -v -ldflags '-extldflags "-Wl,--allow-multiple-definition" ' ./...
# Run rust lints and tests
rust-lint-and-tests:
runs-on: ubuntu-20.04
strategy:
matrix:
manifest:
- terra/Cargo.toml
- sdk/rust/Cargo.toml
steps:
- name: Check out source
uses: actions/checkout@v2
- name: Install stable rust toolchain
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
default: true
- name: Run `cargo check`
uses: actions-rs/cargo@v1
with:
command: check
args: --workspace --manifest-path ${{ matrix.manifest }}
- name: Run `cargo test`
uses: actions-rs/cargo@v1
with:
command: test
args: --workspace --manifest-path ${{ matrix.manifest }}