From 4d83999159bbff57fe2126c950d5e06ad46fde91 Mon Sep 17 00:00:00 2001 From: Pavel Vetokhin Date: Mon, 11 Dec 2023 20:38:14 +0300 Subject: [PATCH 1/4] Random failing test --- .../bezmen/construction/StorageConfigBeansTest.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/libs/storage/src/test/java/smecalculus/bezmen/construction/StorageConfigBeansTest.java b/libs/storage/src/test/java/smecalculus/bezmen/construction/StorageConfigBeansTest.java index ccf14264..962f5e61 100644 --- a/libs/storage/src/test/java/smecalculus/bezmen/construction/StorageConfigBeansTest.java +++ b/libs/storage/src/test/java/smecalculus/bezmen/construction/StorageConfigBeansTest.java @@ -1,10 +1,12 @@ package smecalculus.bezmen.construction; +import static org.junit.jupiter.api.Assertions.fail; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import static smecalculus.bezmen.configuration.StorageEmEg.storageProps; +import java.util.Random; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import smecalculus.bezmen.configuration.PropsKeeper; @@ -37,4 +39,11 @@ void shouldValidateConf() { // then verify(validatorMock).validate(expectedProps); } + + @Test + void randomFailingTest() { + if (new Random().nextInt(10) > 4) { + fail("random"); + } + } } From 1a0c2601ffba71cc5bef6d397ecc58d98d548a88 Mon Sep 17 00:00:00 2001 From: Pavel Vetokhin Date: Mon, 11 Dec 2023 20:58:50 +0300 Subject: [PATCH 2/4] Increase probability --- .../smecalculus/bezmen/construction/StorageConfigBeansTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libs/storage/src/test/java/smecalculus/bezmen/construction/StorageConfigBeansTest.java b/libs/storage/src/test/java/smecalculus/bezmen/construction/StorageConfigBeansTest.java index 962f5e61..9a42f51e 100644 --- a/libs/storage/src/test/java/smecalculus/bezmen/construction/StorageConfigBeansTest.java +++ b/libs/storage/src/test/java/smecalculus/bezmen/construction/StorageConfigBeansTest.java @@ -42,7 +42,7 @@ void shouldValidateConf() { @Test void randomFailingTest() { - if (new Random().nextInt(10) > 4) { + if (new Random().nextInt(10) > 3) { fail("random"); } } From ded4c1f1963efdf96af33ec006256a17149f7e50 Mon Sep 17 00:00:00 2001 From: Pavel Vetokhin Date: Mon, 11 Dec 2023 21:00:47 +0300 Subject: [PATCH 3/4] Decrease probability --- .../smecalculus/bezmen/construction/StorageConfigBeansTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libs/storage/src/test/java/smecalculus/bezmen/construction/StorageConfigBeansTest.java b/libs/storage/src/test/java/smecalculus/bezmen/construction/StorageConfigBeansTest.java index 9a42f51e..962f5e61 100644 --- a/libs/storage/src/test/java/smecalculus/bezmen/construction/StorageConfigBeansTest.java +++ b/libs/storage/src/test/java/smecalculus/bezmen/construction/StorageConfigBeansTest.java @@ -42,7 +42,7 @@ void shouldValidateConf() { @Test void randomFailingTest() { - if (new Random().nextInt(10) > 3) { + if (new Random().nextInt(10) > 4) { fail("random"); } } From 0f0c6fedc4802973ca2bf18eeef1760d7494d571 Mon Sep 17 00:00:00 2001 From: Pavel Vetokhin Date: Mon, 11 Dec 2023 21:06:18 +0300 Subject: [PATCH 4/4] Decrease probability --- .github/workflows/beyond-doubt.yaml | 160 +----------------- .../construction/StorageConfigBeansTest.java | 2 +- 2 files changed, 5 insertions(+), 157 deletions(-) diff --git a/.github/workflows/beyond-doubt.yaml b/.github/workflows/beyond-doubt.yaml index 7b50fd51..5c73c48e 100644 --- a/.github/workflows/beyond-doubt.yaml +++ b/.github/workflows/beyond-doubt.yaml @@ -47,7 +47,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - id: images run: >- - ansible-playbook images.yaml + ansible-playbook binaries.yaml -e binary_storage=${{ env.BINARY_STORAGE }} -e image_storage=${{ env.IMAGE_STORAGE }} -e devenv=${{ matrix.env.dev }} @@ -71,163 +71,11 @@ jobs: require_tests: "${{ steps.images.outcome == 'failure' }}" fail_on_failure: false job_summary: false - - stack-building: - name: Stack building (${{ matrix.env.dev }}, ${{ matrix.env.ops }}) - timeout-minutes: 5 - needs: [up-to-images] - strategy: - fail-fast: false - matrix: - purpose: [func] - env: - - dev: godel - os: ubuntu-20.04 - ops: marx - - dev: turing - os: ubuntu-22.04 - ops: durkheim - - dev: turing - os: ubuntu-22.04 - ops: veblen - - dev: church - os: ubuntu-22.04 - ops: commons - - runs-on: ${{ matrix.env.os }} - steps: - - uses: actions/checkout@v4.1.1 - - uses: ./.github/actions/prepare - with: - devenv: ${{ matrix.env.dev }} - tools: python docker - token: ${{ secrets.GITHUB_TOKEN }} - - run: >- - ansible-playbook stacks.yaml -t build - -e image_storage=${{ env.IMAGE_STORAGE }} - -e purpose=${{ matrix.purpose }} - -e devenv=${{ matrix.env.dev }} - -e opsenv=${{ matrix.env.ops }} - working-directory: bakers/ansible - - uses: actions/upload-artifact@v3.1.3 - with: - name: solution-${{ matrix.purpose }}-${{ matrix.env.ops }} - path: stacks/solution/target/image-context - if-no-files-found: ignore - - stack-testing: - name: Stack testing (${{ matrix.shard }}, ${{ matrix.purpose }}, ${{ matrix.env.ops }}) - timeout-minutes: 15 - needs: [stack-building] - strategy: - fail-fast: false - matrix: - purpose: [func] - shard: [0, 1] - env: - - dev: godel - os: ubuntu-20.04 - ops: marx - - dev: turing - os: ubuntu-22.04 - ops: durkheim - - dev: turing - os: ubuntu-22.04 - ops: veblen - - dev: church - os: ubuntu-22.04 - ops: commons - runs-on: ${{ matrix.env.os }} - steps: - - uses: actions/checkout@v4.1.1 - - uses: ./.github/actions/prepare - with: - devenv: ${{ matrix.env.dev }} - tools: python java docker - token: ${{ secrets.GITHUB_TOKEN }} - - uses: actions/download-artifact@v3.0.2 - continue-on-error: true # it's ok because stack building can be skipped - with: - name: solution-${{ matrix.purpose }}-${{ matrix.env.ops }} - path: stacks/solution/target/image-context - - run: >- - ansible-playbook stacks.yaml -t test - -e image_storage=${{ env.IMAGE_STORAGE }} - -e purpose=${{ matrix.purpose }} - -e reminder=${{ matrix.shard }} - -e modulus=2 - -e devenv=${{ matrix.env.dev }} - -e opsenv=${{ matrix.env.ops }} - working-directory: bakers/ansible - env: - GITHUB_ACTOR: ${{ github.actor }} - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - uses: actions/upload-artifact@v3.1.3 + - name: Always empty E2E test report. See https://github.com/orgs/community/discussions/13690 + uses: mikepenz/action-junit-report@v4.0.3 if: ${{ !cancelled() }} - with: - name: e2e-test-report-${{ matrix.shard }}-${{ matrix.purpose }}-${{ matrix.env.ops }} - path: tests/e2e/target/surefire-reports/*.xml - if-no-files-found: ignore - - stack-publishing: - name: Stack publishing (${{ matrix.purpose }}, ${{ matrix.env.ops }}) - timeout-minutes: 5 - needs: [stack-testing] - strategy: - fail-fast: false - matrix: - purpose: [func] - env: - - dev: godel - os: ubuntu-20.04 - ops: marx - - dev: turing - os: ubuntu-22.04 - ops: durkheim - - dev: turing - os: ubuntu-22.04 - ops: veblen - - dev: church - os: ubuntu-22.04 - ops: commons - runs-on: ${{ matrix.env.os }} - permissions: - packages: write - steps: - - uses: actions/checkout@v4.1.1 - - uses: ./.github/actions/prepare - with: - devenv: ${{ matrix.env.dev }} - tools: python docker - token: ${{ secrets.GITHUB_TOKEN }} - - uses: actions/download-artifact@v3.0.2 - continue-on-error: true # it's ok because stack building can be skipped - with: - name: solution-${{ matrix.purpose }}-${{ matrix.env.ops }} - path: stacks/solution/target/image-context - - run: >- - ansible-playbook stacks.yaml -t package - -e image_storage=${{ env.IMAGE_STORAGE }} - -e purpose=${{ matrix.purpose }} - -e opsenv=${{ matrix.env.ops }} - working-directory: bakers/ansible - - stack-reporting: - name: Stack reporting - timeout-minutes: 5 - needs: [stack-testing] - if: ${{ !cancelled() && (needs.stack-testing.result == 'success' || needs.stack-testing.result == 'failure') }} - runs-on: ubuntu-22.04 - permissions: - checks: write - steps: - - uses: actions/download-artifact@v3.0.2 - with: - path: artifacts - - uses: mikepenz/action-junit-report@v4.0.3 with: check_name: E2E test report - report_paths: "artifacts/e2e-test-report-*/**/TEST-*.xml" - require_tests: "${{ needs.stack-testing.result == 'failure' }}" + require_tests: false fail_on_failure: false job_summary: false diff --git a/libs/storage/src/test/java/smecalculus/bezmen/construction/StorageConfigBeansTest.java b/libs/storage/src/test/java/smecalculus/bezmen/construction/StorageConfigBeansTest.java index 962f5e61..207c11cb 100644 --- a/libs/storage/src/test/java/smecalculus/bezmen/construction/StorageConfigBeansTest.java +++ b/libs/storage/src/test/java/smecalculus/bezmen/construction/StorageConfigBeansTest.java @@ -42,7 +42,7 @@ void shouldValidateConf() { @Test void randomFailingTest() { - if (new Random().nextInt(10) > 4) { + if (new Random().nextInt(10) > 5) { fail("random"); } }