From 59b6f78146194b3339b1ed85f39717f5d4973be8 Mon Sep 17 00:00:00 2001 From: Julien Robert Date: Sun, 15 Sep 2024 18:06:58 +0200 Subject: [PATCH] test: fix sims (#21735) (cherry picked from commit 01473479c7e5737d37f4ed1caeb6f3dcdb99ae64) # Conflicts: # .github/workflows/sims-052.yml --- .github/workflows/sims-052.yml | 146 +++++++++++++++++++++++++++++++++ .github/workflows/sims.yml | 14 +++- server/util_test.go | 7 +- testutils/sims/runner.go | 7 +- 4 files changed, 170 insertions(+), 4 deletions(-) create mode 100644 .github/workflows/sims-052.yml diff --git a/.github/workflows/sims-052.yml b/.github/workflows/sims-052.yml new file mode 100644 index 000000000000..2b3955d809d7 --- /dev/null +++ b/.github/workflows/sims-052.yml @@ -0,0 +1,146 @@ +name: Sims release/0.52.x +# Sims workflow runs multiple types of simulations (nondeterminism, import-export, after-import, multi-seed-short) +# This workflow will run on all Pull Requests, if a .go, .mod or .sum file have been changed +on: + schedule: + - cron: "0 0,12 * * *" + release: + types: [published] + +concurrency: + group: ci-${{ github.ref }}-sims-052 + cancel-in-progress: true + +jobs: + build: + permissions: + contents: read # for actions/checkout to fetch code + runs-on: large-sdk-runner + if: "!contains(github.event.head_commit.message, 'skip-sims')" + steps: + - uses: actions/checkout@v4 + with: + ref: "release/v0.52.x" + - uses: actions/setup-go@v5 + with: + go-version: "1.23" + check-latest: true + - run: make build + + test-sim-import-export: + runs-on: large-sdk-runner + needs: [build] + timeout-minutes: 60 + steps: + - uses: actions/checkout@v4 + with: + ref: "release/v0.52.x" + - uses: actions/setup-go@v5 + with: + go-version: "1.23" + check-latest: true + - name: test-sim-import-export + run: | + make test-sim-import-export + + test-sim-after-import: + runs-on: large-sdk-runner + needs: [build] + timeout-minutes: 60 + steps: + - uses: actions/checkout@v4 + with: + ref: "release/v0.52.x" + - uses: actions/setup-go@v5 + with: + go-version: "1.23" + check-latest: true + - name: test-sim-after-import + run: | + make test-sim-after-import + + test-sim-deterministic: + runs-on: large-sdk-runner + needs: [build] + timeout-minutes: 60 + steps: + - uses: actions/checkout@v4 + with: + ref: "release/v0.52.x" + - uses: actions/setup-go@v5 + with: + go-version: "1.23" + check-latest: true + - name: test-sim-nondeterminism-streaming + run: | + make test-sim-nondeterminism-streaming + + test-sim-multi-seed-short: + runs-on: large-sdk-runner + needs: [build] + timeout-minutes: 60 + steps: + - uses: actions/checkout@v4 + with: + ref: "release/v0.52.x" + - uses: actions/setup-go@v5 + with: + go-version: "1.23" + check-latest: true + - name: test-sim-multi-seed-short + run: | + make test-sim-multi-seed-short + + sims-notify-success: + needs: + [ + test-sim-multi-seed-short, + test-sim-after-import, + test-sim-import-export, + test-sim-deterministic, + ] + runs-on: large-sdk-runner + if: ${{ success() }} + steps: + - uses: actions/checkout@v4 + - name: Get previous workflow status + uses: ./.github/actions/last-workflow-status + id: last_status + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + + - name: Notify Slack on success + if: ${{ steps.last_status.outputs.last_status == 'failure' }} + uses: rtCamp/action-slack-notify@v2.3.0 + env: + SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }} + SLACK_CHANNEL: sdk-sims + SLACK_USERNAME: Sim Tests release/0.52.x + SLACK_ICON_EMOJI: ":white_check_mark:" + SLACK_COLOR: good + SLACK_MESSAGE: 0.52.x Sims are passing + SLACK_FOOTER: "" + + sims-notify-failure: + permissions: + contents: none + needs: + [ + test-sim-multi-seed-short, + test-sim-after-import, + test-sim-import-export, + test-sim-deterministic, + ] + runs-on: large-sdk-runner + if: ${{ failure() }} + steps: + - name: Notify Slack on failure + uses: rtCamp/action-slack-notify@v2.3.0 + env: + SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }} + SLACK_CHANNEL: sdk-sims + SLACK_USERNAME: Sim Tests release/0.52.x + SLACK_ICON_EMOJI: ":skull:" + SLACK_COLOR: danger + SLACK_MESSAGE: 0.52.x Sims are failing + SLACK_FOOTER: "" diff --git a/.github/workflows/sims.yml b/.github/workflows/sims.yml index bb7cf1faf417..1b9a7fe54d48 100644 --- a/.github/workflows/sims.yml +++ b/.github/workflows/sims.yml @@ -83,7 +83,12 @@ jobs: sims-notify-success: needs: - [test-sim-multi-seed-short, test-sim-after-import, test-sim-import-export] + [ + test-sim-multi-seed-short, + test-sim-after-import, + test-sim-import-export, + test-sim-deterministic, + ] runs-on: large-sdk-runner if: ${{ success() }} steps: @@ -111,7 +116,12 @@ jobs: permissions: contents: none needs: - [test-sim-multi-seed-short, test-sim-after-import, test-sim-import-export] + [ + test-sim-multi-seed-short, + test-sim-after-import, + test-sim-import-export, + test-sim-deterministic, + ] runs-on: large-sdk-runner if: ${{ failure() }} steps: diff --git a/server/util_test.go b/server/util_test.go index 39a9e6c35528..ea9489a03685 100644 --- a/server/util_test.go +++ b/server/util_test.go @@ -493,7 +493,12 @@ func (m mapGetter) Get(key string) interface{} { } func (m mapGetter) GetString(key string) string { - return m[key].(string) + str, ok := m[key] + if !ok { + return "" + } + + return str.(string) } var _ servertypes.AppOptions = mapGetter{} diff --git a/testutils/sims/runner.go b/testutils/sims/runner.go index 8ee4c7465b36..e30a252c0d29 100644 --- a/testutils/sims/runner.go +++ b/testutils/sims/runner.go @@ -236,7 +236,12 @@ func (f AppOptionsFn) Get(k string) any { } func (f AppOptionsFn) GetString(k string) string { - return f(k).(string) + str, ok := f(k).(string) + if !ok { + return "" + } + + return str } // FauxMerkleModeOpt returns a BaseApp option to use a dbStoreAdapter instead of