. #12
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 | |
on: | |
pull_request: | |
branches: | |
- "**" | |
push: | |
branches: | |
- "main" | |
- "concentrated-liquidity-main" | |
- "v[0-9]**" | |
workflow_dispatch: | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | |
cancel-in-progress: true | |
jobs: | |
get_diff: | |
runs-on: ubuntu-latest | |
steps: | |
- | |
name: Check out repository code | |
uses: actions/checkout@v4 | |
- | |
name: Get git diff | |
uses: technote-space/[email protected] | |
with: | |
PATTERNS: | | |
**/**.wasm | |
**/**.go | |
**/**.mod | |
**/**.sum | |
Makefile | |
Dockerfile | |
.github/workflows/test.yml | |
- | |
name: Set output | |
id: vars | |
run: echo "::set-output name=git_diff::$GIT_DIFF" | |
outputs: | |
git_diff: ${{ steps.vars.outputs.git_diff }} | |
go-split-test-files: | |
needs: get_diff | |
if: needs.get_diff.outputs.git_diff | |
runs-on: ubuntu-latest | |
steps: | |
- | |
name: Check out repository | |
uses: actions/checkout@v4 | |
- | |
name: 🐿 Setup Golang | |
uses: actions/setup-go@v5 | |
with: | |
go-version-file: go.mod | |
- | |
name: Create a file with all core Cosmos SDK pkgs | |
run: | | |
go list \ | |
./... \ | |
./osmomath/... \ | |
./osmoutils/... \ | |
./x/ibc-hooks/...\ | |
./x/epochs \ | |
| grep -E -v 'tests/simulator|e2e' \ | |
> pkgs.txt | |
- | |
name: Split pkgs into 4 files | |
run: | | |
split -d -n l/4 pkgs.txt pkgs.txt.part. | |
- | |
uses: actions/upload-artifact@v4 | |
with: | |
name: "${{ github.sha }}-00" | |
path: ./pkgs.txt.part.00 | |
- | |
uses: actions/upload-artifact@v4 | |
with: | |
name: "${{ github.sha }}-01" | |
path: ./pkgs.txt.part.01 | |
- | |
uses: actions/upload-artifact@v4 | |
with: | |
name: "${{ github.sha }}-02" | |
path: ./pkgs.txt.part.02 | |
- | |
uses: actions/upload-artifact@v4 | |
with: | |
name: "${{ github.sha }}-03" | |
path: ./pkgs.txt.part.03 | |
go: | |
needs: [go-split-test-files, get_diff] | |
if: needs.get_diff.outputs.git_diff | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
part: ["00", "01", "02", "03"] | |
steps: | |
- | |
name: Check out repository | |
uses: actions/checkout@v4 | |
- | |
name: 🐿 Setup Golang | |
uses: actions/setup-go@v5 | |
with: | |
go-version-file: go.mod | |
- | |
name: Display go version | |
run: go version | |
- | |
uses: actions/download-artifact@v4 | |
with: | |
name: "${{ github.sha }}-${{ matrix.part }}" | |
- | |
name: Test & coverage report creation | |
run: | | |
VERSION=$(echo $(git describe --tags) | sed 's/^v//') || VERSION=${GITHUB_SHA} | |
TESTS=$(cat pkgs.txt.part.${{ matrix.part }}) | |
VERSION=$VERSION SKIP_WASM_WSL_TESTS="false" go test -race -mod=readonly -tags='ledger test_ledger_mock norace' $TESTS | |
e2e: | |
needs: get_diff | |
if: needs.get_diff.outputs.git_diff | |
runs-on: buildjet-4vcpu-ubuntu-2204 | |
timeout-minutes: 20 | |
steps: | |
- | |
name: Check out repository | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- | |
name: Set up QEMU | |
uses: docker/setup-qemu-action@v3 | |
- | |
name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v3 | |
- | |
name: Login to DockerHub | |
uses: docker/login-action@v3 | |
with: | |
username: ${{ secrets.DOCKERHUB_USERNAME }} | |
password: ${{ secrets.DOCKERHUB_TOKEN }} | |
- | |
name: Build e2e image | |
uses: docker/build-push-action@v5 | |
with: | |
load: true | |
context: . | |
tags: osmosis:debug | |
build-args: | | |
BASE_IMG_TAG=debug | |
BUILD_TAGS="netgo,muslc,excludeIncrement" | |
- | |
name: Test e2e and Upgrade | |
run: make test-e2e-ci | |
- | |
name: Dump docker logs on failure | |
if: failure() | |
uses: jwalton/gh-docker-logs@v2 | |
with: | |
dest: "./logs" | |
- | |
name: Tar logs | |
if: failure() | |
run: | | |
tar cvzf ./logs.tgz ./logs | |
- | |
name: Upload logs to GitHub | |
if: failure() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: logs.tgz | |
path: ./logs.tgz |