|
6 | 6 | workflow_dispatch: |
7 | 7 |
|
8 | 8 | jobs: |
9 | | - gradle: |
| 9 | + # In parallel, we run: |
| 10 | + # a) all the tests |
| 11 | + # b) the mixed-mode tests |
| 12 | + # c) the nightly tests |
| 13 | + # The nightly tests (currently) include all the regular tests, but we want to publish to teamscale the coverage |
| 14 | + # statistics we're getting from PRB separately. We want to be able to differentiate those two types of coverage |
| 15 | + # in teamscale for a better understanding of what might escape in PRB (or in our pre-release test run). |
| 16 | + # The mixed-mode coverage is a little different, we want to see explicitly what code is being covered in mixed-mode |
| 17 | + # so that we can find potential uncovered code that could expose bugs when multiple versions are running at the same |
| 18 | + # time. |
| 19 | + # It's possible that we could change the nightly tests to just be the new tests, and not the regular tests in the future. |
| 20 | + test: |
10 | 21 | if: github.repository == 'FoundationDB/fdb-record-layer' |
11 | 22 | runs-on: ubuntu-latest |
| 23 | + permissions: |
| 24 | + contents: read |
12 | 25 | steps: |
13 | | - - name: Checkout sources |
14 | | - uses: actions/checkout@v4.2.2 |
15 | | - - name: Setup Base Environment |
16 | | - uses: ./actions/setup-base-env |
17 | | - - name: Setup FDB |
18 | | - uses: ./actions/setup-fdb |
19 | | - - name: Run Gradle Test |
20 | | - uses: ./actions/gradle-test |
21 | | - with: |
22 | | - gradle_args: "-PreleaseBuild=false -PpublishBuild=false -PspotbugsEnableHtmlReport -Ptests.includeRandom -Ptests.iterations=2 -Ptests.nightly" |
23 | | - - name: Publish Test Reports |
24 | | - if: always() |
25 | | - uses: actions/upload-artifact@v4.6.0 |
26 | | - with: |
27 | | - name: test-reports |
28 | | - path: | |
29 | | - test-reports/fdb-java-annotations/ |
30 | | - test-reports/fdb-extensions/ |
31 | | - test-reports/fdb-record-layer-core/ |
32 | | - test-reports/fdb-record-layer-icu/ |
33 | | - test-reports/fdb-record-layer-spatial/ |
34 | | - test-reports/fdb-record-layer-lucene/ |
35 | | - test-reports/fdb-record-layer-jmh/ |
36 | | - test-reports/examples/ |
37 | | - test-reports/fdb-relational-api/ |
38 | | - test-reports/fdb-relational-core/ |
39 | | - test-reports/fdb-relational-cli/ |
40 | | - test-reports/fdb-relational-grpc/ |
41 | | - test-reports/fdb-relational-jdbc/ |
42 | | - test-reports/fdb-relational-server/ |
43 | | - test-reports/yaml-tests/ |
| 26 | + - name: Checkout sources |
| 27 | + uses: actions/checkout@v4.2.2 |
| 28 | + - name: Setup Base Environment |
| 29 | + id: setup-base |
| 30 | + uses: ./actions/setup-base-env |
| 31 | + - name: Setup FDB |
| 32 | + uses: ./actions/setup-fdb |
| 33 | + - name: Run Gradle Test |
| 34 | + uses: ./actions/gradle-test |
| 35 | + with: |
| 36 | + gradle_args: -PreleaseBuild=true -PpublishBuild=true |
| 37 | + - name: Upload coverage to teamscale |
| 38 | + # temporary until we validate that this is working correctly |
| 39 | + continue-on-error: true |
| 40 | + uses: ./actions/teamscale-upload |
| 41 | + with: |
| 42 | + partition: 'CI Tests' |
| 43 | + revision: ${{ github.sha }} |
| 44 | + files: "${{ github.workspace }}/.out/reports/jacoco/codeCoverageReport/codeCoverageReport.xml" |
| 45 | + teamscaleKey: ${{ secrets.TEAMSCALE_ACCESS_KEY }} |
| 46 | + |
| 47 | + mixed-mode-test: |
| 48 | + if: github.repository == 'FoundationDB/fdb-record-layer' |
| 49 | + runs-on: ubuntu-latest |
| 50 | + permissions: |
| 51 | + contents: read |
| 52 | + steps: |
| 53 | + - name: Checkout sources |
| 54 | + uses: actions/checkout@v4.2.2 |
| 55 | + - name: Setup Base Environment |
| 56 | + uses: ./actions/setup-base-env |
| 57 | + - name: Setup FDB |
| 58 | + uses: ./actions/setup-fdb |
| 59 | + - name: Run Gradle Test |
| 60 | + uses: ./actions/gradle-test |
| 61 | + with: |
| 62 | + gradle_command: mixedModeTest |
| 63 | + gradle_args: -PreleaseBuild=false -PpublishBuild=false |
| 64 | + # We don't commit the incremented version, but we use this to know the version when generating |
| 65 | + # the resulting markdown |
| 66 | + - name: Increment version |
| 67 | + shell: bash |
| 68 | + run: python build/versionutils.py gradle.properties --increment -u PATCH |
| 69 | + - name: Get new version |
| 70 | + id: get_new_version |
| 71 | + shell: bash |
| 72 | + run: | |
| 73 | + echo "version=$(python build/versionutils.py gradle.properties)" >> "$GITHUB_OUTPUT" |
| 74 | + - name: Create markdown |
| 75 | + shell: bash |
| 76 | + run: python build/publish-mixed-mode-results.py ${{ steps.get_new_version.outputs.version }} --run-link ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }} --output mixed-mode-results.md |
| 77 | + - name: Preview results |
| 78 | + shell: bash |
| 79 | + run: cat mixed-mode-results.md >> $GITHUB_STEP_SUMMARY |
| 80 | + - name: Upload coverage to teamscale |
| 81 | + # temporary until we validate that this is working correctly |
| 82 | + continue-on-error: true |
| 83 | + uses: ./actions/teamscale-upload |
| 84 | + with: |
| 85 | + partition: 'Mixed Mode Tests' |
| 86 | + revision: ${{ github.sha }} |
| 87 | + files: "${{ github.workspace }}/.out/reports/jacoco/codeCoverageReport/codeCoverageReport.xml" |
| 88 | + teamscaleKey: ${{ secrets.TEAMSCALE_ACCESS_KEY }} |
| 89 | + |
| 90 | + nightly_test: |
| 91 | + if: github.repository == 'FoundationDB/fdb-record-layer' |
| 92 | + runs-on: ubuntu-latest |
| 93 | + steps: |
| 94 | + - name: Checkout sources |
| 95 | + uses: actions/checkout@v4.2.2 |
| 96 | + - name: Setup Base Environment |
| 97 | + uses: ./actions/setup-base-env |
| 98 | + - name: Setup FDB |
| 99 | + uses: ./actions/setup-fdb |
| 100 | + - name: Run Gradle Test |
| 101 | + uses: ./actions/gradle-test |
| 102 | + with: |
| 103 | + gradle_args: "-PreleaseBuild=false -PpublishBuild=false -PspotbugsEnableHtmlReport -Ptests.includeRandom -Ptests.iterations=2 -Ptests.nightly" |
| 104 | + - name: Publish Test Reports |
| 105 | + if: always() |
| 106 | + uses: actions/upload-artifact@v4.6.0 |
| 107 | + with: |
| 108 | + name: test-reports |
| 109 | + path: | |
| 110 | + test-reports/fdb-java-annotations/ |
| 111 | + test-reports/fdb-extensions/ |
| 112 | + test-reports/fdb-record-layer-core/ |
| 113 | + test-reports/fdb-record-layer-icu/ |
| 114 | + test-reports/fdb-record-layer-spatial/ |
| 115 | + test-reports/fdb-record-layer-lucene/ |
| 116 | + test-reports/fdb-record-layer-jmh/ |
| 117 | + test-reports/examples/ |
| 118 | + test-reports/fdb-relational-api/ |
| 119 | + test-reports/fdb-relational-core/ |
| 120 | + test-reports/fdb-relational-cli/ |
| 121 | + test-reports/fdb-relational-grpc/ |
| 122 | + test-reports/fdb-relational-jdbc/ |
| 123 | + test-reports/fdb-relational-server/ |
| 124 | + test-reports/yaml-tests/ |
| 125 | + |
| 126 | + - name: Upload coverage to teamscale |
| 127 | + # temporary until we validate that this is working correctly |
| 128 | + continue-on-error: true |
| 129 | + uses: ./actions/teamscale-upload |
| 130 | + with: |
| 131 | + partition: 'Nightly Tests' |
| 132 | + revision: ${{ github.sha }} |
| 133 | + files: "${{ github.workspace }}/.out/reports/jacoco/codeCoverageReport/codeCoverageReport.xml" |
| 134 | + teamscaleKey: ${{ secrets.TEAMSCALE_ACCESS_KEY }} |
| 135 | + |
| 136 | + |
44 | 137 |
|
0 commit comments