Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

test: Bump upgrade test suite in prep for v2 major #683

Merged
merged 18 commits into from
Jan 3, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
320 changes: 160 additions & 160 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ jobs:
go install github.com/onsi/ginkgo/v2/ginkgo@latest

- name: Run Ginkgo unit tests
run: ginkgo -r --tags upgrade_unit --race --randomize-all --randomize-suites --keep-going --trace --junit-report report-unit.xml
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
Expand Down Expand Up @@ -163,146 +163,146 @@ jobs:
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:
# - 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-x86_64.tar.gz
# tar -xvf cheqd-noded-"${LEGACY_VERSION}"-Linux-x86_64.tar.gz -C ${{ env.RUNNER_BIN_DIR }}
# sudo chmod +x ${{ env.RUNNER_BIN_DIR }}/cheqd-noded
# env:
# LEGACY_VERSION: 0.6.10

# - 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/setup.sh

# - name: Run pre-upgrade tests
# working-directory: ./tests/upgrade/integration
# 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: Run post-upgrade tests
# working-directory: ./tests/upgrade/integration
# 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
# 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
upgrade-tests:
name: "Upgrade Tests"
runs-on: ubuntu-20.04
steps:
- 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/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: 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: Until next major release, only unit and integration tests are necessary
needs: [unit-tests, integration-tests]
# needs: [unit-tests, integration-tests, upgrade-tests]
# 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:
Expand All @@ -312,37 +312,37 @@ jobs:
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: 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
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:
Expand Down
2 changes: 1 addition & 1 deletion docker/localnet/mainnet-latest.env
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,6 @@
### REQUIRED: Node/network selection ###
###############################################################
# Define cheqd-noded image source. Change if using your own build.
BUILD_IMAGE_VERSION="1.3.0"
BUILD_IMAGE_VERSION="1.4.4"

BUILD_IMAGE="ghcr.io/cheqd/cheqd-node:$BUILD_IMAGE_VERSION"
2 changes: 0 additions & 2 deletions tests/upgrade/integration/scripts/all.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,6 @@ DIR_="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"

bash "$DIR_/cleanup.sh"



bash "$DIR_/setup.sh"

ginkgo -r --race --tags upgrade_integration --focus-file pre_test.go
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import (
)

const (
DockerLocalnetPath = "../../../docker/localnet"
DockerLocalnetPath = "../../../../docker/localnet"
DockerComposeFile = "docker-compose.yml"
DockerComposeEnvML = "mainnet-latest.env"
DockerComposeEnvBL = "build-latest.env"
Expand Down
File renamed without changes.