forked from osmosis-labs/osmosis
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: self hosted e2e tests (osmosis-labs#5951)
* attempt self hosted e2e tests * prune docker containers * filter E2E docker container pruning * fix syntax * syntax * syntax * syntax * use mutex to prevent concurrent map writes * stream logs * use wg for run validators * various perf changes * make a standard timeout for all tests
- Loading branch information
1 parent
322adb0
commit 74d8aa8
Showing
12 changed files
with
102 additions
and
77 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -12,7 +12,7 @@ on: | |
workflow_dispatch: | ||
|
||
env: | ||
GO_VERSION: '1.20.5' | ||
GO_VERSION: "1.20.5" | ||
|
||
concurrency: | ||
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | ||
|
@@ -22,11 +22,9 @@ jobs: | |
get_diff: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- | ||
name: Check out repository code | ||
- name: Check out repository code | ||
uses: actions/checkout@v3 | ||
- | ||
name: Get git diff | ||
- name: Get git diff | ||
uses: technote-space/[email protected] | ||
with: | ||
PATTERNS: | | ||
|
@@ -45,37 +43,29 @@ jobs: | |
if: needs.get_diff.outputs.git_diff | ||
runs-on: ubuntu-latest | ||
steps: | ||
- | ||
name: Check out repository code | ||
- name: Check out repository code | ||
uses: actions/checkout@v3 | ||
- | ||
name: 🐿 Setup Golang | ||
- name: 🐿 Setup Golang | ||
uses: actions/setup-go@v4 | ||
with: | ||
go-version: ${{env.GO_VERSION}} | ||
- | ||
name: Create a file with all core Cosmos SDK pkgs | ||
- 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 | ||
- name: Split pkgs into 4 files | ||
run: split -d -n l/4 pkgs.txt pkgs.txt.part. | ||
- | ||
uses: actions/upload-artifact@v3 | ||
- uses: actions/upload-artifact@v3 | ||
with: | ||
name: "${{ github.sha }}-00" | ||
path: ./pkgs.txt.part.00 | ||
- | ||
uses: actions/upload-artifact@v3 | ||
- uses: actions/upload-artifact@v3 | ||
with: | ||
name: "${{ github.sha }}-01" | ||
path: ./pkgs.txt.part.01 | ||
- | ||
uses: actions/upload-artifact@v3 | ||
- uses: actions/upload-artifact@v3 | ||
with: | ||
name: "${{ github.sha }}-02" | ||
path: ./pkgs.txt.part.02 | ||
- | ||
uses: actions/upload-artifact@v3 | ||
- uses: actions/upload-artifact@v3 | ||
with: | ||
name: "${{ github.sha }}-03" | ||
path: ./pkgs.txt.part.03 | ||
|
@@ -89,23 +79,18 @@ jobs: | |
matrix: | ||
part: ["00", "01", "02", "03"] | ||
steps: | ||
- | ||
name: Check out repository code | ||
- name: Check out repository code | ||
uses: actions/checkout@v3 | ||
- | ||
name: 🐿 Setup Golang | ||
- name: 🐿 Setup Golang | ||
uses: actions/setup-go@v4 | ||
with: | ||
go-version: ${{env.GO_VERSION}} | ||
- | ||
name: Display go version | ||
- name: Display go version | ||
run: go version | ||
- | ||
uses: actions/download-artifact@v3 | ||
- uses: actions/download-artifact@v3 | ||
with: | ||
name: "${{ github.sha }}-${{ matrix.part }}" | ||
- | ||
name: Test & coverage report creation | ||
- name: Test & coverage report creation | ||
run: | | ||
VERSION=$(echo $(git describe --tags) | sed 's/^v//') || VERSION=${GITHUB_SHA} | ||
TESTS=$(cat pkgs.txt.part.${{ matrix.part }}) | ||
|
@@ -115,59 +100,63 @@ jobs: | |
e2e: | ||
needs: get_diff | ||
if: needs.get_diff.outputs.git_diff | ||
runs-on: ubuntu-latest | ||
runs-on: self-hosted | ||
timeout-minutes: 25 | ||
steps: | ||
- | ||
name: Check out repository code | ||
- 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 | ||
- name: Check out repository code | ||
uses: actions/checkout@v3 | ||
with: | ||
fetch-depth: 0 | ||
- | ||
name: 🐿 Setup Golang | ||
- name: 🐿 Setup Golang | ||
uses: actions/setup-go@v4 | ||
with: | ||
go-version: ${{env.GO_VERSION}} | ||
- | ||
name: Set up QEMU | ||
- name: Set up QEMU | ||
uses: docker/setup-qemu-action@v2 | ||
- | ||
name: Set up Docker Buildx | ||
- name: Set up Docker Buildx | ||
uses: docker/setup-buildx-action@v2 | ||
- | ||
name: Build e2e image | ||
- name: Build e2e image | ||
uses: docker/build-push-action@v4 | ||
with: | ||
load: true | ||
context: . | ||
tags: osmosis:debug | ||
# Use experimental Cache backend API: | ||
# Use experimental Cache backend API: | ||
# https://github.com/docker/build-push-action/blob/master/docs/advanced/cache.md#cache-backend-api | ||
cache-from: type=gha | ||
cache-to: type=gha,mode=max | ||
build-args: | | ||
BASE_IMG_TAG=debug | ||
- | ||
name: Test e2e and Upgrade | ||
- name: Test e2e and Upgrade | ||
run: make test-e2e-ci | ||
- | ||
name: Dump docker logs on failure | ||
- name: Dump docker logs on failure | ||
if: failure() | ||
uses: jwalton/gh-docker-logs@v2 | ||
with: | ||
dest: "./logs" | ||
- | ||
name: Tar logs | ||
- name: Tar logs | ||
if: failure() | ||
run: tar cvzf ./logs.tgz ./logs | ||
- | ||
name: Upload logs to GitHub | ||
- name: Upload logs to GitHub | ||
uses: actions/upload-artifact@v3 | ||
with: | ||
name: logs.tgz | ||
path: ./logs.tgz | ||
if: failure() | ||
- | ||
name: 🧹 Clean up Osmosis Home | ||
- 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 |
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
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
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
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
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
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
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
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
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
Oops, something went wrong.