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");
}
}