| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133 |
- 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
- 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
- - 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 }}
|