feat: enable smart contracts on akash #4003
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: 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 |