fix(testutil): allocate all ports for testnet validator at once #3413
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
name: tests | |
defaults: | |
run: | |
shell: bash | |
on: | |
pull_request: | |
push: | |
branches: | |
- main | |
- mainnet/main | |
tags: | |
- v* | |
jobs: | |
build-macos: | |
runs-on: macos-latest | |
steps: | |
- name: Install dependencies | |
run: | | |
brew install bash direnv | |
sudo chsh -s /usr/local/bin/bash | |
- name: Hook direnv to bash | |
run: echo 'eval "$(direnv hook bash)"' >> $HOME/.bashrc | |
- uses: actions/checkout@v4 | |
- run: git fetch --prune --unshallow | |
- name: Detect required Go version | |
run: | | |
toolchain=$(./script/tools.sh gotoolchain | sed 's/go*//') | |
echo "GOVERSION=${toolchain}" >> $GITHUB_ENV | |
- uses: actions/setup-go@v5 | |
with: | |
go-version: "${{ env.GOVERSION }}" | |
check-latest: true | |
- name: Setup direnv | |
run: | | |
direnv allow | |
direnv export gha >> "$GITHUB_ENV" | |
- run: make bins | |
build-bins: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- run: git fetch --prune --unshallow | |
- name: Detect required Go version | |
run: | | |
toolchain=$(./script/tools.sh gotoolchain | sed 's/go*//') | |
echo "GOVERSION=${toolchain}" >> $GITHUB_ENV | |
- uses: actions/setup-go@v5 | |
with: | |
go-version: "${{ env.GOVERSION }}" | |
check-latest: true | |
- name: set environment | |
uses: HatsuneMiku3939/direnv-action@v1 | |
- run: make bins | |
- run: make docker-image | |
tests: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- run: git fetch --prune --unshallow | |
- name: Detect required Go version | |
run: | | |
toolchain=$(./script/tools.sh gotoolchain | sed 's/go*//') | |
echo "GOVERSION=${toolchain}" >> $GITHUB_ENV | |
- uses: actions/setup-go@v5 | |
with: | |
go-version: "${{ env.GOVERSION }}" | |
- name: set environment | |
uses: HatsuneMiku3939/direnv-action@v1 | |
- run: make test-full | |
coverage: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- run: git fetch --prune --unshallow | |
- name: Detect required Go version | |
run: | | |
toolchain=$(./script/tools.sh gotoolchain | sed 's/go*//') | |
echo "GOVERSION=${toolchain}" >> $GITHUB_ENV | |
- uses: actions/setup-go@v5 | |
with: | |
go-version: "${{ env.GOVERSION }}" | |
- name: set environment | |
uses: HatsuneMiku3939/direnv-action@v1 | |
- run: make test-coverage | |
- uses: codecov/codecov-action@v3 | |
lint: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- run: git fetch --prune --unshallow | |
- name: Detect required Go version | |
run: | | |
toolchain=$(./script/tools.sh gotoolchain | sed 's/go*//') | |
echo "GOVERSION=${toolchain}" >> $GITHUB_ENV | |
- uses: actions/setup-go@v5 | |
with: | |
go-version: "${{ env.GOVERSION }}" | |
- name: set environment | |
uses: HatsuneMiku3939/direnv-action@v1 | |
- run: make deps-tidy | |
- run: make build | |
- run: make test-vet | |
- name: lint all | |
run: make test-lint-all | |
- name: lint make-sublinters | |
run: make test-sublinters | |
shellcheck: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- run: git fetch --prune --unshallow | |
- name: Detect required Go version | |
run: | | |
toolchain=$(./script/tools.sh gotoolchain | sed 's/go*//') | |
echo "GOVERSION=${toolchain}" >> $GITHUB_ENV | |
- uses: actions/setup-go@v5 | |
with: | |
go-version: "${{ env.GOVERSION }}" | |
- name: set environment | |
uses: HatsuneMiku3939/direnv-action@v1 | |
- run: make shellcheck | |
sims: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: rokroskar/workflow-run-cleanup-action@master | |
env: | |
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" | |
- uses: actions/checkout@v4 | |
- name: Detect required Go version | |
run: | | |
toolchain=$(./script/tools.sh gotoolchain | sed 's/go*//') | |
echo "GOVERSION=${toolchain}" >> $GITHUB_ENV | |
- uses: actions/setup-go@v5 | |
with: | |
go-version: "${{ env.GOVERSION }}" | |
- name: set environment | |
uses: HatsuneMiku3939/direnv-action@v1 | |
- name: test-sim-nondeterminism | |
run: make test-sim-nondeterminism | |
- name: test-sim-import-export | |
run: make test-sim-import-export | |
- name: test-sim-after-import | |
run: make test-sim-after-import | |
- name: test-sim-fullapp | |
run: make test-sim-fullapp | |
release-dry-run: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- run: git fetch --prune --unshallow | |
- name: Detect required Go version | |
run: | | |
toolchain=$(./script/tools.sh gotoolchain | sed 's/go*//') | |
echo "GOVERSION=${toolchain}" >> $GITHUB_ENV | |
- uses: actions/setup-go@v5 | |
with: | |
go-version: "${{ env.GOVERSION }}" | |
- name: set environment | |
uses: HatsuneMiku3939/direnv-action@v1 | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v3 | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v3 | |
- uses: fregante/setup-git-user@v1 | |
- name: configure git tag | |
run: echo "RELEASE_TAG=v$(./script/semver.sh bump patch $(git describe --tags $(git rev-list --tags --max-count=1)))" >> $GITHUB_ENV | |
- name: git tag | |
run: git tag -a ${{ env.RELEASE_TAG }} -m ${{ env.RELEASE_TAG }} | |
- name: release dry-run | |
run: make release | |
network-upgrade-names: | |
runs-on: upgrade-tester | |
steps: | |
- uses: actions/checkout@v4 | |
- run: git fetch --prune --unshallow | |
- name: Detect required Go version | |
run: | | |
toolchain=$(./script/tools.sh gotoolchain | sed 's/go*//') | |
echo "GOVERSION=${toolchain}" >> $GITHUB_ENV | |
- uses: actions/setup-go@v5 | |
with: | |
go-version: "${{ env.GOVERSION }}" | |
- name: set environment | |
uses: HatsuneMiku3939/direnv-action@v1 | |
- name: Ensure only directories exists in upgrades dir | |
run: | | |
dir=./upgrades/software | |
if [[ $(find "$dir" ! -path "$dir" -maxdepth 1 -type f | wc -c) -ne 0 ]]; then | |
echo "$dir must contain only directories" | |
exit 1 | |
fi | |
- name: Ensure names of upgrade dirs are semver compliant | |
run: | | |
dir=./upgrades/software | |
while read upgrade; do | |
./script/semver.sh validate "$upgrade" | |
done <<< $(find "$dir" ! -path "$dir" -maxdepth 1 -type d -exec basename {} \;) | |
network-upgrade: | |
runs-on: upgrade-tester | |
steps: | |
- uses: actions/checkout@v4 | |
- run: git fetch --prune --unshallow | |
- name: Detect required Go version | |
run: | | |
toolchain=$(./script/tools.sh gotoolchain | sed 's/go*//') | |
echo "GOVERSION=${toolchain}" >> $GITHUB_ENV | |
- uses: actions/setup-go@v5 | |
with: | |
go-version: "${{ env.GOVERSION }}" | |
- name: set environment | |
uses: HatsuneMiku3939/direnv-action@v1 | |
- name: configure variables | |
run: | | |
test_required=$(./script/upgrades.sh test-required ${{ github.ref }}) | |
echo "TEST_REQUIRED=$test_required" >> $GITHUB_ENV | |
- name: run test | |
id: test | |
if: env.TEST_REQUIRED != '' | |
run: | | |
cd tests/upgrade | |
make test | |
- name: upload validator(s) stdout/stderr | |
if: always() && steps.test.outcome != 'skipped' | |
uses: actions/upload-artifact@v3 | |
with: | |
name: validators-logs | |
path: | | |
.cache/run/upgrade/validators/logs/*.log | |
dispatch-release: | |
runs-on: ubuntu-latest | |
if: startsWith(github.event.ref, 'refs/tags/v') | |
needs: | |
- build-macos | |
- build-bins | |
- tests | |
- coverage | |
- lint | |
- sims | |
- release-dry-run | |
- network-upgrade | |
- shellcheck | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: trigger release process | |
uses: benc-uk/workflow-dispatch@v1 | |
with: | |
workflow: release.yaml |