Update test.yml github action update #40
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 | |
on: | |
pull_request: | |
branches: | |
- "**" | |
push: | |
branches: | |
- "main" | |
- "concentrated-liquidity-main" | |
- "v[0-9]**" | |
workflow_dispatch: | |
env: | |
GO_VERSION: "1.20.5" | |
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 code | |
uses: actions/checkout@v4 | |
- name: 🐿 Setup Golang | |
uses: actions/setup-go@v5 | |
with: | |
go-version: ${{env.GO_VERSION}} | |
- 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 code | |
uses: actions/checkout@v4 | |
- name: 🐿 Setup Golang | |
uses: actions/setup-go@v5 | |
with: | |
go-version: ${{env.GO_VERSION}} | |
- 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: self-hosted | |
timeout-minutes: 20 | |
steps: | |
- name: Clean up Pre-Existing E2E Docker containers | |
run: | | |
# Remove containers with names starting with "osmo-test-" | |
docker ps -aqf "name=osmo-test-*" | xargs -r docker rm -f | |
# Remove containers with names starting with "hermes-relayer" | |
docker ps -aqf "name=hermes-relayer*" | xargs -r docker rm -f | |
# Get a list of all networks | |
NETWORKS=$(docker network ls --filter "name=osmosis-testnet" --format "{{.ID}}") | |
# Remove all the disconnected networks | |
for NETWORK in $NETWORKS; do | |
echo "Pruning $NETWORK..." | |
docker network rm $NETWORK | |
done | |
echo "Done pruning osmosis-testnet networks." | |
- name: Check out repository code | |
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: 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 | |
uses: actions/upload-artifact@v3 | |
with: | |
name: logs.tgz | |
path: ./logs.tgz | |
if: failure() | |
- name: 🧹 Clean up Osmosis Home | |
if: always() | |
run: rm -rf $HOME/.osmosisd/ || true | |
- name: Clean up E2E Docker containers | |
run: | | |
# Remove containers with names starting with "osmo-test-" | |
docker ps -aqf "name=osmo-test-*" | xargs -r docker rm -f | |
# Remove containers with names starting with "hermes-relayer" | |
docker ps -aqf "name=hermes-relayer*" | xargs -r docker rm -f | |
# Get a list of all networks | |
NETWORKS=$(docker network ls --filter "name=osmosis-testnet" --format "{{.ID}}") | |
# Remove all the disconnected networks | |
for NETWORK in $NETWORKS; do | |
echo "Pruning $NETWORK..." | |
docker network rm $NETWORK | |
done | |
echo "Done pruning osmosis-testnet networks." |