Skip to content

Commit

Permalink
Merge branch 'develop' into DEV-4479
Browse files Browse the repository at this point in the history
  • Loading branch information
Eengineer1 authored Oct 17, 2024
2 parents 34bffc9 + db3c40e commit 0fadb88
Show file tree
Hide file tree
Showing 45 changed files with 1,508 additions and 369 deletions.
313 changes: 153 additions & 160 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ permissions:
checks: write

jobs:

installer-cosmovisor:
name: "Installer - Cosmovisor mode"
runs-on: ubuntu-20.04
Expand Down Expand Up @@ -165,145 +164,141 @@ jobs:
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-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.5

# - 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@v5
# 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@v4
# 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@v4
# 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@v4
# with:
# name: report-post-upgrade.xml
# path: report-post-upgrade.xml

# - name: Download binary artifact (build-latest)
# uses: actions/download-artifact@v4
# 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@v4
# 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@v4
# 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@v4
# 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

- 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: 2.0.1

- 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@v5
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@v4
with:
name: cheqd-node-build.tar

- name: Load node Docker image
run: docker load -i cheqd-node-build.tar

- 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/v3
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@v4
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/v3
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@v4
with:
name: report-post-upgrade.xml
path: report-post-upgrade.xml

- name: Download binary artifact (build-latest)
uses: actions/download-artifact@v4
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@v4
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@v4
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@v4
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]
# needs: [unit-tests, integration-tests]
needs: [unit-tests, integration-tests, upgrade-tests]
if: always()

steps:
Expand All @@ -319,41 +314,39 @@ jobs:
with:
name: report-integration.xml

# - name: Download pre-upgrade test Report
# uses: actions/download-artifact@v4
# with:
# name: report-pre-upgrade.xml

# - name: Download post-upgrade test Report
# uses: actions/download-artifact@v4
# with:
# name: report-post-upgrade.xml

# - name: Download upgraded integration test Report
# uses: actions/download-artifact@v4
# with:
# name: report-upgraded-integration.xml
- name: Download pre-upgrade test Report
uses: actions/download-artifact@v4
with:
name: report-pre-upgrade.xml

# - name: Download pricing proposal test Report
# uses: actions/download-artifact@v4
# with:
# name: report-pricing-proposal.xml
- name: Download post-upgrade test Report
uses: actions/download-artifact@v4
with:
name: report-post-upgrade.xml

# - name: Download pricing change test Report
# uses: actions/download-artifact@v4
# with:
# name: report-pricing-change.xml
- name: Download upgraded integration test Report
uses: actions/download-artifact@v4
with:
name: report-upgraded-integration.xml

- name: Download pricing proposal test Report
uses: actions/download-artifact@v4
with:
name: report-pricing-proposal.xml
- name: Download pricing change test Report
uses: actions/download-artifact@v4
with:
name: report-pricing-change.xml
- name: Combine test results
run: |
# python ./.github/scripts/xml_combine.py report-unit.xml report-integration.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:
report_paths: 'report.xml'
report_paths: "report.xml"
check_name: ""
suite_regex: '*'
suite_regex: "*"
include_passed: true
detailed_summary: true
20 changes: 20 additions & 0 deletions app/app.go
Original file line number Diff line number Diff line change
Expand Up @@ -1131,6 +1131,7 @@ func (app *App) RegisterUpgradeHandlers() {
if err != nil {
return migrations, err
}
SetExplicitModuleAccountPermissions(ctx, app.AccountKeeper)
err = ConfigureFeeMarketModule(ctx, app.FeeMarketKeeper)
if err != nil {
return migrations, err
Expand All @@ -1151,6 +1152,7 @@ func (app *App) setupUpgradeStoreLoaders() {
storeUpgrades := storetypes.StoreUpgrades{
Added: []string{
feemarkettypes.StoreKey,
feeabstypes.StoreKey,
},
}
// configure store loader that checks if version == upgradeHeight and applies store upgrades
Expand Down Expand Up @@ -1186,3 +1188,21 @@ func ConfigureFeeMarketModule(ctx sdk.Context, keeper *feemarketkeeper.Keeper) e
func (app *App) Configurator() module.Configurator {
return app.configurator
}

func SetExplicitModuleAccountPermissions(ctx sdk.Context, accountKeeper authkeeper.AccountKeeper) {
// Get the module account using the account name
moduleAcc := accountKeeper.GetModuleAccount(ctx, didtypes.ModuleName)
// Ensure the account exists
if moduleAcc == nil {
panic("module account not found")
}
// Update the permissions (replace with the actual permissions)
newPermissions := []string{authtypes.Minter, authtypes.Burner} // Example permissions
// Cast the account to the concrete type that has permissions
if macc, ok := moduleAcc.(*authtypes.ModuleAccount); ok {
macc.Permissions = newPermissions
accountKeeper.SetModuleAccount(ctx, macc) // Update the account in the keeper
} else {
panic("failed to cast module account to *ModuleAccount")
}
}
2 changes: 1 addition & 1 deletion docker/localnet/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -276,4 +276,4 @@ volumes:
validator-2-data:
validator-3-data:
seed-0-data:
observer-0-data:
observer-0-data:
Loading

0 comments on commit 0fadb88

Please sign in to comment.