feat: cosmo-sdk 47 #3520
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 pv lz4 git-cliff | |
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: Install dependencies | |
run: sudo apt install -y make direnv unzip lz4 wget curl npm jq pv coreutils | |
- name: Install git-cliff | |
uses: baptiste0928/cargo-install@v3 | |
with: | |
crate: git-cliff | |
- 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: Install dependencies | |
run: sudo apt install -y make direnv unzip lz4 wget curl npm jq pv coreutils | |
- name: Install git-cliff | |
uses: baptiste0928/cargo-install@v3 | |
with: | |
crate: git-cliff | |
- 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 | |
with: | |
masks: '' | |
- run: make test-full | |
coverage: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- run: git fetch --prune --unshallow | |
- name: Install dependencies | |
run: sudo apt install -y make direnv unzip lz4 wget curl npm jq pv coreutils | |
- name: Install git-cliff | |
uses: baptiste0928/cargo-install@v3 | |
with: | |
crate: git-cliff | |
- 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 | |
with: | |
masks: '' | |
- run: make test-coverage | |
- uses: codecov/codecov-action@v4 | |
lint-go: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- run: git fetch --prune --unshallow | |
- name: Install dependencies | |
run: sudo apt install -y make direnv unzip lz4 wget curl npm jq pv coreutils | |
- name: Install git-cliff | |
uses: baptiste0928/cargo-install@v3 | |
with: | |
crate: git-cliff | |
- 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 | |
with: | |
masks: '' | |
- run: make deps-tidy | |
- run: make lint-go | |
lint-shell: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install dependencies | |
run: sudo apt install -y make direnv unzip lz4 wget curl npm jq pv coreutils | |
- name: Install git-cliff | |
uses: baptiste0928/cargo-install@v3 | |
with: | |
crate: git-cliff | |
- 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 | |
with: | |
masks: '' | |
- run: make lint-shell | |
sims: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: rokroskar/workflow-run-cleanup-action@master | |
env: | |
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" | |
- uses: actions/checkout@v4 | |
- name: Install dependencies | |
run: sudo apt install -y make direnv unzip lz4 wget curl npm jq pv coreutils | |
- name: Install git-cliff | |
uses: baptiste0928/cargo-install@v3 | |
with: | |
crate: git-cliff | |
- 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 | |
with: | |
masks: '' | |
- 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: Install dependencies | |
run: sudo apt install -y make direnv unzip lz4 wget curl npm jq pv coreutils | |
- name: Install git-cliff | |
uses: baptiste0928/cargo-install@v3 | |
with: | |
crate: git-cliff | |
- 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 | |
with: | |
masks: '' | |
- 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@v2 | |
- 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: ubuntu-latest | |
steps: | |
- name: Cleanup build folder | |
run: | | |
sudo rm -rf ./* || true | |
sudo rm -rf ./.??* || true | |
- uses: actions/checkout@v4 | |
- run: git fetch --prune --unshallow | |
- name: Install dependencies | |
run: sudo apt install -y make direnv unzip lz4 wget curl npm jq pv coreutils | |
- name: Install git-cliff | |
uses: baptiste0928/cargo-install@v3 | |
with: | |
crate: git-cliff | |
- 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 | |
with: | |
masks: '' | |
- 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: gh-runner-test | |
steps: | |
- name: Cleanup build folder | |
run: | | |
sudo rm -rf ./* || true | |
sudo rm -rf ./.??* || true | |
- 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 | |
- name: Install dependencies | |
run: sudo apt install -y make direnv unzip lz4 wget curl npm jq pv coreutils | |
- name: Install git-cliff | |
uses: baptiste0928/cargo-install@v3 | |
with: | |
crate: git-cliff | |
- uses: actions/setup-go@v5 | |
with: | |
go-version: "${{ env.GOVERSION }}" | |
- name: set environment | |
uses: HatsuneMiku3939/direnv-action@v1 | |
with: | |
masks: '' | |
- 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 != '' | |
env: | |
TEST_CONFIG: test-config-gha.json | |
run: | | |
cd tests/upgrade | |
make test | |
- name: upload validator(s) stdout/stderr | |
if: always() && steps.test.outcome != 'skipped' | |
uses: actions/upload-artifact@v4 | |
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-go | |
- lint-shell | |
- sims | |
- release-dry-run | |
- network-upgrade | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: trigger release process | |
uses: benc-uk/workflow-dispatch@v1 | |
with: | |
workflow: release.yaml |