feat!: implement burn-mint equilibrium #4037
This file contains hidden or 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 | |
| sudo chsh -s "$(brew --prefix)/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: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Free Disk Space (Ubuntu) | |
| uses: jlumbroso/[email protected] | |
| with: # bool variable is used to determine if the package should be removed or not | |
| tool-cache: false # pre-cached tools (Node, Go, Python, Ruby). Saves ~6GB. Total CI impact: +90s (30s cleanup + 60s re-download) | |
| docker-images: false # cached Docker images. Saves ~5-10GB. Total CI impact: +110s (20s cleanup + 90s re-pull goreleaser-cross) | |
| swap-storage: false # swap storage. Saves ~4GB disk but risks OOM during parallel goreleaser builds. Keep swap for safety. | |
| android: true # Android SDK. Saves ~14GB. Total CI impact: +30s (not used in build) | |
| dotnet: true # .NET runtime. Saves ~2.7GB. Total CI impact: +10s (not used in build) | |
| haskell: true # Haskell (GHC). Saves ~5GB. Total CI impact: +10s (not used in build) | |
| large-packages: true # large packages (llvm, php, mysql, etc). Saves ~5.3GB. Total CI impact: +60s (not used in build) | |
| - name: Setup environment | |
| uses: ./.github/actions/setup-ubuntu | |
| - run: BUILD_OPTIONS=static-link make bins | |
| - run: make docker-image | |
| tests: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Setup environment | |
| uses: ./.github/actions/setup-ubuntu | |
| - run: make test-full | |
| coverage: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: ./.github/actions/setup-ubuntu | |
| - run: make test-coverage | |
| - uses: codecov/codecov-action@v4 | |
| lint-go: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Setup environment | |
| uses: ./.github/actions/setup-ubuntu | |
| - run: make deps-tidy | |
| - run: make lint-go | |
| lint-shell: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Setup environment | |
| uses: ./.github/actions/setup-ubuntu | |
| - run: make lint-shell | |
| sims: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: rokroskar/workflow-run-cleanup-action@master | |
| env: | |
| GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Setup environment | |
| uses: ./.github/actions/setup-ubuntu | |
| - 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: core-e2e | |
| steps: | |
| - name: Cleanup build folder | |
| run: | | |
| sudo rm -rf ./* || true | |
| sudo rm -rf ./.??* || true | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Setup environment | |
| uses: ./.github/actions/setup-ubuntu | |
| - 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: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Setup environment | |
| uses: ./.github/actions/setup-ubuntu | |
| - name: Setup docker user | |
| run: | | |
| DOCKER_USER=$(id -u) | |
| DOCKER_GROUP=$(id -g) | |
| echo "DOCKER_USER=$DOCKER_USER" >> $GITHUB_ENV | |
| echo "DOCKER_GROUP=$DOCKER_GROUP" >> $GITHUB_ENV | |
| - 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 | |
| needs: | |
| network-upgrade-names | |
| steps: | |
| - name: Cleanup build folder | |
| run: | | |
| sudo rm -rf ./* || true | |
| sudo rm -rf ./.??* || true | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Setup environment | |
| uses: ./.github/actions/setup-ubuntu | |
| - name: Setup docker user | |
| run: | | |
| DOCKER_IDU=$(id -u) | |
| DOCKER_IDG=$(id -g) | |
| echo "DOCKER_IDU=$DOCKER_IDU" >> $GITHUB_ENV | |
| echo "DOCKER_IDG=$DOCKER_IDG" >> $GITHUB_ENV | |
| - name: configure variables | |
| run: | | |
| test_required=$(./script/upgrades.sh test-required ${{ github.ref }}) | |
| #snapshot_source=$(./script/upgrades.sh snapshot-source ${{ github.ref }}) | |
| echo "TEST_REQUIRED=$test_required" >> $GITHUB_ENV | |
| #echo "SNAPSHOT_SOURCE=$snapshot_source" >> $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 | |
| include-hidden-files: true | |
| path: | | |
| .cache/run/upgrade/validators/logs/.akash*.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 |