diff --git a/.github/workflows/nightly.yaml b/.github/workflows/nightly.yaml index ecaa419f1..4759d1933 100644 --- a/.github/workflows/nightly.yaml +++ b/.github/workflows/nightly.yaml @@ -15,7 +15,11 @@ jobs: uses: ./.github/workflows/regression_reusable.yaml with: env-path: runner/env_nightly + testrun_name: nightly + report-history: true secrets: + TCACHE_BASIC_AUTH: ${{ secrets.TCACHE_BASIC_AUTH }} + TCACHE_URL: ${{ secrets.TCACHE_URL }} CI_FAIL_MAILS: ${{ secrets.NIGHTLY_FAIL_MAILS }} GMAIL_USERNAME: ${{ secrets.GMAIL_USERNAME }} GMAIL_PASSWORD: ${{ secrets.GMAIL_PASSWORD }} diff --git a/.github/workflows/nightly_cli.yaml b/.github/workflows/nightly_cli.yaml index 6cd42e75c..ed89afeca 100644 --- a/.github/workflows/nightly_cli.yaml +++ b/.github/workflows/nightly_cli.yaml @@ -15,7 +15,11 @@ jobs: uses: ./.github/workflows/regression_reusable.yaml with: env-path: runner/env_nightly_cli + testrun_name: nightly-cli + report-history: true secrets: + TCACHE_BASIC_AUTH: ${{ secrets.TCACHE_BASIC_AUTH }} + TCACHE_URL: ${{ secrets.TCACHE_URL }} CI_FAIL_MAILS: ${{ secrets.NIGHTLY_FAIL_MAILS }} GMAIL_USERNAME: ${{ secrets.GMAIL_USERNAME }} GMAIL_PASSWORD: ${{ secrets.GMAIL_PASSWORD }} diff --git a/.github/workflows/nightly_dbsync.yaml b/.github/workflows/nightly_dbsync.yaml index c3ceb0484..2e2f59da1 100644 --- a/.github/workflows/nightly_dbsync.yaml +++ b/.github/workflows/nightly_dbsync.yaml @@ -15,7 +15,11 @@ jobs: uses: ./.github/workflows/regression_reusable.yaml with: env-path: runner/env_nightly_dbsync + testrun_name: nightly-dbsync + report-history: true secrets: + TCACHE_BASIC_AUTH: ${{ secrets.TCACHE_BASIC_AUTH }} + TCACHE_URL: ${{ secrets.TCACHE_URL }} CI_FAIL_MAILS: ${{ secrets.NIGHTLY_FAIL_MAILS }} GMAIL_USERNAME: ${{ secrets.GMAIL_USERNAME }} GMAIL_PASSWORD: ${{ secrets.GMAIL_PASSWORD }} diff --git a/.github/workflows/regression.yaml b/.github/workflows/regression.yaml index dc8ee3a54..c00b8d349 100644 --- a/.github/workflows/regression.yaml +++ b/.github/workflows/regression.yaml @@ -60,6 +60,10 @@ on: type: boolean default: false description: "Skip tests that already passed (internal)" + report-history: + type: boolean + default: false + description: "TEMP-SMOKE-TEST: revert before merge" run-name: ${{ inputs.testrun_name && 'Run:' || ''}} ${{ inputs.testrun_name }} ${{ (inputs.testrun_name && inputs.skip_passed) && ':repeat:' || '' }} @@ -81,6 +85,7 @@ jobs: byron_cluster: ${{ inputs.byron_cluster }} testrun_name: ${{ inputs.testrun_name }} skip_passed: ${{ inputs.skip_passed }} + report-history: ${{ inputs.report-history }} env-path: runner/env_regression secrets: TCACHE_BASIC_AUTH: ${{ secrets.TCACHE_BASIC_AUTH }} diff --git a/.github/workflows/regression_reusable.yaml b/.github/workflows/regression_reusable.yaml index 2f8e39c99..89c75ba28 100644 --- a/.github/workflows/regression_reusable.yaml +++ b/.github/workflows/regression_reusable.yaml @@ -51,6 +51,10 @@ on: required: false type: boolean default: false + report-history: + required: false + type: boolean + default: false secrets: TCACHE_BASIC_AUTH: required: false @@ -231,6 +235,28 @@ jobs: testrun_name_strip="${CI_TESTRUN_NAME//[!a-zA-Z0-9_-]/}" curl -s -X PUT --fail-with-body -u "$TCACHE_BASIC_AUTH" "$TCACHE_URL/${testrun_name_strip}/${{ github.run_number }}/import" -F "junitxml=@run_workdir/testrun-report.xml" fi + - name: Report nightly history + # PUTs to /history, separate from /import above. Gated on + # report-history so only nightly runs persist JUnit XML. + if: (success() || failure()) && inputs.testrun_name && inputs.report-history # TEMP-SMOKE-TEST: revert to failure() before merge + env: + TCACHE_BASIC_AUTH: ${{ secrets.TCACHE_BASIC_AUTH }} + TCACHE_URL: ${{ secrets.TCACHE_URL }} + run: | + if [ -n "$TCACHE_BASIC_AUTH" ] && [ -n "$TCACHE_URL" ] && [ -e run_workdir/testrun-report.xml ]; then + testrun_name_strip="${CI_TESTRUN_NAME//[!a-zA-Z0-9_-]/}" + curl -s -X PUT --fail-with-body -u "$TCACHE_BASIC_AUTH" "$TCACHE_URL/history/${testrun_name_strip}/${{ github.run_number }}" -F "junitxml=@run_workdir/testrun-report.xml" + fi + - name: TEMP-SMOKE-TEST verify tcache history + # Remove before merge. Prints the /history listing so we can confirm + # the PUT above actually landed, from the job log alone. + if: (success() || failure()) && inputs.testrun_name && inputs.report-history + env: + TCACHE_BASIC_AUTH: ${{ secrets.TCACHE_BASIC_AUTH }} + TCACHE_URL: ${{ secrets.TCACHE_URL }} + run: | + testrun_name_strip="${CI_TESTRUN_NAME//[!a-zA-Z0-9_-]/}" + curl -s -u "$TCACHE_BASIC_AUTH" "$TCACHE_URL/history/${testrun_name_strip}?days=1" - name: ↟ Upload testing artifacts on failure uses: actions/upload-artifact@v7 if: failure()