Skip to content

fix: checking docker before post test #588

fix: checking docker before post test

fix: checking docker before post test #588

Workflow file for this run

name: "Tests"
on:
workflow_call:
defaults:
run:
shell: bash
env:
RUNNER_BIN_DIR: /home/runner/.local/bin
permissions:
contents: write
packages: read
checks: write
jobs:
installer-cosmovisor:
name: "Installer - Cosmovisor mode"
runs-on: ubuntu-20.04
env:
PYTHONDEVMODE: 1
DEFAULT_DEBUG_BRANCH: ${{ github.ref_name }}
steps:
- uses: actions/checkout@v4
- name: "Fresh install with Cosmovisor"
working-directory: ./installer
run: |
sudo -E bash -c "python3 installer.py < tests/install-from-scratch-cosmovisor.txt"
- name: "Upgrade - Keep existing"
working-directory: ./installer
run: |
sudo -E bash -c "python3 installer.py < tests/upgrade-existing-cosmovisor.txt"
- name: "Upgrade - Fresh install"
working-directory: ./installer
run: |
sudo -E bash -c "python3 installer.py < tests/upgrade-fresh-install.txt"
- name: Debugging with tmate
if: ${{ failure() }}
uses: mxschmitt/action-tmate@v3
timeout-minutes: 10
installer-standalone:
name: "Installer - Standalone mode"
runs-on: ubuntu-20.04
env:
PYTHONDEVMODE: 1
DEFAULT_DEBUG_BRANCH: ${{ github.ref_name }}
steps:
- uses: actions/checkout@v4
- name: "Fresh install"
working-directory: ./installer
run: |
sudo -E bash -c "python3 installer.py < tests/install-from-scratch-standalone.txt"
- name: "Upgrade existing installation"
working-directory: ./installer
run: |
sudo -E bash -c "python3 installer.py < tests/upgrade-existing-standalone.txt"
- name: "Upgrade with moving to cosmovisor"
working-directory: ./installer
run: |
sudo -E bash -c "python3 installer.py < tests/upgrade-to-cosmovisor.txt"
- name: Debugging with tmate
if: ${{ failure() }}
uses: mxschmitt/action-tmate@v3
timeout-minutes: 10
unit-tests:
name: "Unit Tests"
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v4
with:
go-version-file: ./go.mod
cache: true
- name: Install ginkgo
working-directory: ./..
run: |
go install github.com/onsi/ginkgo/v2/ginkgo@latest
- name: Run Ginkgo unit tests
run: ginkgo -r --race --randomize-all --randomize-suites --keep-going --trace --junit-report report-unit.xml
- name: Upload unit tests result
uses: actions/upload-artifact@v3
with:
name: report-unit.xml
path: report-unit.xml
integration-tests:
name: "Integration Tests"
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v4
- name: Download binary artifact
uses: actions/download-artifact@v3
id: download
with:
name: cheqd-noded
path: ${{ env.RUNNER_BIN_DIR }}
- name: Restore binary permissions
run: sudo chmod +x ${{ env.RUNNER_BIN_DIR }}/cheqd-noded
- name: Download node Docker image
uses: actions/download-artifact@v3
with:
name: cheqd-node-build.tar
- name: Load node Docker image
run: docker load -i cheqd-node-build.tar
- name: Generate localnet configs
working-directory: ./docker/localnet
run: |
bash gen-network-config.sh
sudo chown -R 1000:1000 network-config
- name: Set up Docker localnet
working-directory: ./docker/localnet
run: |
docker compose --env-file build-latest.env up --detach --no-build
- name: Import keys
working-directory: ./docker/localnet
run: |
bash import-keys.sh
- uses: actions/setup-go@v4
with:
go-version-file: ./go.mod
cache: true
- name: Install ginkgo
working-directory: ./..
run: go install github.com/onsi/ginkgo/v2/ginkgo@latest
- name: Run Ginkgo integration tests
working-directory: ./tests/integration
run: |
ginkgo -r --tags integration --race --randomize-suites --keep-going --trace --junit-report ../../report-integration.xml
- name: Show logs
if: failure()
working-directory: ./docker/localnet
run: docker compose --env-file build-latest.env logs --tail --follow
- name: Upload integration tests result
uses: actions/upload-artifact@v3
with:
name: report-integration.xml
path: report-integration.xml
# NOTE: This job is disabled since upgrade tests from v0.6.x to v1.x.x are not needed until next major release.
upgrade-tests:
name: "Upgrade Tests"
runs-on: ubuntu-20.04
steps:

Check failure on line 171 in .github/workflows/test.yml

View workflow run for this annotation

GitHub Actions / .github/workflows/test.yml

Invalid workflow file

You have an error in your yaml syntax on line 171
- uses: actions/checkout@v4
# Preparations
- name: Download old node binary (mainnet-latest)
run: |
mkdir -p ${{ env.RUNNER_BIN_DIR }}
wget -c https://github.com/cheqd/cheqd-node/releases/download/v"${LEGACY_VERSION}"/cheqd-noded-"${LEGACY_VERSION}"-linux-amd64.tar.gz
tar -xvf cheqd-noded-"${LEGACY_VERSION}"-linux-amd64.tar.gz -C ${{ env.RUNNER_BIN_DIR }}
sudo chmod +x ${{ env.RUNNER_BIN_DIR }}/cheqd-noded
env:
LEGACY_VERSION: 1.4.4
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- uses: actions/setup-go@v3
with:
go-version-file: ./go.mod
cache: true
- name: Install ginkgo
working-directory: ./..
run: go install github.com/onsi/ginkgo/v2/ginkgo@latest
- name: Download new version of the Docker image (build-latest)
uses: actions/download-artifact@v3
with:
name: cheqd-node-build.tar
- name: Load node Docker image
run: docker load -i cheqd-node-build.tar
# Run tests
- name: Setting up network with old binary inside (mainnet version)
working-directory: ./tests/upgrade/integration
run: |
bash scripts/old_binary_setup.sh
- name: Run pre-upgrade tests
working-directory: ./tests/upgrade/integration/v2
run: |
ginkgo -r --race --tags upgrade_integration --focus-file pre_test.go --keep-going --trace --junit-report ../../../../report-pre-upgrade.xml
- name: Upload pre-upgrade tests result
uses: actions/upload-artifact@v3
with:
name: report-pre-upgrade.xml
path: report-pre-upgrade.xml
- name: Restart network using new node version (build-latest)
working-directory: ./tests/upgrade/integration
run: |
bash scripts/upgrade.sh
- name: Verifying docker processes
working-directory: ./tests/upgrade/integration
run: |
docker ps -a
- name: Run post-upgrade tests
working-directory: ./tests/upgrade/integration/v2
run: |
ginkgo -r --race --tags upgrade_integration --focus-file post_test.go --keep-going --trace --junit-report ../../../../report-post-upgrade.xml
- name: Upload post-upgrade tests result
uses: actions/upload-artifact@v3
with:
name: report-post-upgrade.xml
path: report-post-upgrade.xml
- name: Download binary artifact (build-latest)
uses: actions/download-artifact@v3
id: download
with:
name: cheqd-noded
path: ${{ env.RUNNER_BIN_DIR }}
- name: Restore binary permissions
run: sudo chmod +x ${{ env.RUNNER_BIN_DIR }}/cheqd-noded
- name: Run integration tests on upgraded network
working-directory: ./tests/integration
run: |
ginkgo -r --tags integration --race --randomize-suites --keep-going --trace --junit-report ../../report-upgraded-integration.xml
- name: Upload post-upgrade integration tests result
uses: actions/upload-artifact@v3
with:
name: report-upgraded-integration.xml
path: report-upgraded-integration.xml
- name: Show logs on failure
if: failure()
working-directory: ./docker/localnet
run: docker compose --env-file build-latest.env logs --tail --follow
- name: Submit governance fee parameter change proposals
working-directory: ./tests/upgrade/integration/v2
run: |
ginkgo -r --race --tags upgrade_integration --focus-file param_change_proposal_test.go --keep-going --trace --junit-report ../../../../report-pricing-proposal.xml
- name: Upload pricing proposal tests result
uses: actions/upload-artifact@v3
with:
name: report-pricing-proposal.xml
path: report-pricing-proposal.xml
- name: Run pricing integration tests after successful param change proposal
working-directory: ./tests/integration
run: |
ginkgo -r --tags integration --race --randomize-suites --keep-going --trace --skip-file cli_diddoc_test.go --skip-file cli_diddoc_negative_test.go --skip-file cli_resource_test.go --skip-file cli_resource_negative_test.go --junit-report ../../report-pricing-change.xml
- name: Upload pricing change tests result
uses: actions/upload-artifact@v3
with:
name: report-pricing-change.xml
path: report-pricing-change.xml
- name: Cleanup after tests
working-directory: ./tests/upgrade/integration
run: |
bash scripts/cleanup.sh
report-results:
name: "Report"
runs-on: ubuntu-20.04
# NOTE: If not next major release, only unit and integration tests are necessary, otherwise all tests are needed.
# needs: [unit-tests, integration-tests]
needs: [unit-tests, integration-tests, upgrade-tests]
if: always()
steps:
- uses: actions/checkout@v4
- name: Download unit test
uses: actions/download-artifact@v3
with:
name: report-unit.xml
- name: Download integration test report
uses: actions/download-artifact@v3
with:
name: report-integration.xml
- name: Download pre-upgrade test Report
uses: actions/download-artifact@v3
with:
name: report-pre-upgrade.xml
- name: Download post-upgrade test Report
uses: actions/download-artifact@v3
with:
name: report-post-upgrade.xml
- name: Download upgraded integration test Report
uses: actions/download-artifact@v3
with:
name: report-upgraded-integration.xml
- name: Download pricing proposal test Report
uses: actions/download-artifact@v3
with:
name: report-pricing-proposal.xml
- name: Download pricing change test Report
uses: actions/download-artifact@v3
with:
name: report-pricing-change.xml
- name: Combine test results
run: |
python ./.github/scripts/xml_combine.py report-unit.xml report-integration.xml report-pre-upgrade.xml report-post-upgrade.xml report-upgraded-integration.xml report-pricing-proposal.xml report-pricing-change.xml > report.xml
# run: |
# python ./.github/scripts/xml_combine.py report-unit.xml report-integration.xml > report.xml
- uses: mikepenz/action-junit-report@v4
with:
report_paths: 'report.xml'
check_name: ""
suite_regex: '*'
include_passed: true
detailed_summary: true