From 6a50d429610f22e7bff4039b5f35dc9e9a09addb Mon Sep 17 00:00:00 2001 From: Tomasz Janiszewski Date: Thu, 21 Mar 2024 17:13:54 +0100 Subject: [PATCH 1/9] fix(test): load unit test metrics into bq Signed-off-by: Tomasz Janiszewski --- .github/actions/junit2jira/action.yaml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/actions/junit2jira/action.yaml b/.github/actions/junit2jira/action.yaml index 42fc6f8bdccd6..f34c561fcca39 100644 --- a/.github/actions/junit2jira/action.yaml +++ b/.github/actions/junit2jira/action.yaml @@ -32,14 +32,21 @@ runs: - name: Check files shell: bash env: + GCP_SERVICE_ACCOUNT_STACKROX_CI: ${{ secrets.GCP_SERVICE_ACCOUNT_STACKROX_CI }} JIRA_TOKEN: ${{ inputs.jira-token }} run: | + csv_output="$(mktemp --suffix=.csv)" ./junit2jira \ -base-link "${{ github.server_url }}/${{ github.repository }}/commit/${{ github.sha }}" \ -build-id "${{ github.run_id }}" \ -build-link "${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}" \ -build-tag "${{ github.ref_name }}@${{ github.sha }}" \ + -csv-output "${csv_output}" \ -job-name "${{ github.job }}" \ -junit-reports-dir "${{ inputs.directory }}" \ -orchestrator "${{ runner.name }} ${{ runner.os }}-${{ runner.arch }}" \ -threshold "${{ inputs.threshold }}" + + source scripts/ci/lib.sh + setup_gcp + save_test_metrics "${csv_output}" From 6e2b89eedaab645f11786ea75df8a6080b211d2a Mon Sep 17 00:00:00 2001 From: Tomasz Janiszewski Date: Fri, 22 Mar 2024 11:56:01 +0100 Subject: [PATCH 2/9] allow dry-run Signed-off-by: Tomasz Janiszewski --- .github/actions/junit2jira/action.yaml | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/.github/actions/junit2jira/action.yaml b/.github/actions/junit2jira/action.yaml index f34c561fcca39..4174d737c5fb2 100644 --- a/.github/actions/junit2jira/action.yaml +++ b/.github/actions/junit2jira/action.yaml @@ -4,6 +4,10 @@ branding: icon: 'archive' color: 'blue' inputs: + create-jiras: + description: 'Weather to report failures to jira' + required: false + default: 'true' jira-token: description: 'Token used to authenticate with Jira.' required: true @@ -35,6 +39,14 @@ runs: GCP_SERVICE_ACCOUNT_STACKROX_CI: ${{ secrets.GCP_SERVICE_ACCOUNT_STACKROX_CI }} JIRA_TOKEN: ${{ inputs.jira-token }} run: | + local extra_args=() + if [[ "${{ inputs.create-jiras }}" == "false" ]]; then + extra_args=(--dry-run) + info "Will use junit2jira to create CSV for BigQuery input" + else + info "Will create JIRA issues for junit failures found in ${{ inputs.directory }}" + fi + ${{ inputs.debug_mode == true }} csv_output="$(mktemp --suffix=.csv)" ./junit2jira \ -base-link "${{ github.server_url }}/${{ github.repository }}/commit/${{ github.sha }}" \ @@ -45,7 +57,8 @@ runs: -job-name "${{ github.job }}" \ -junit-reports-dir "${{ inputs.directory }}" \ -orchestrator "${{ runner.name }} ${{ runner.os }}-${{ runner.arch }}" \ - -threshold "${{ inputs.threshold }}" + -threshold "${{ inputs.threshold }}" \ + "${extra_args[@]}" source scripts/ci/lib.sh setup_gcp From 6c333582da9827c2cb8ee52c7816b13014d52287 Mon Sep 17 00:00:00 2001 From: Tomasz Janiszewski Date: Fri, 22 Mar 2024 11:59:24 +0100 Subject: [PATCH 3/9] run dry on PR Signed-off-by: Tomasz Janiszewski --- .github/workflows/unit-tests.yaml | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/.github/workflows/unit-tests.yaml b/.github/workflows/unit-tests.yaml index 93ca8eba9a7bd..a44f47577d59f 100644 --- a/.github/workflows/unit-tests.yaml +++ b/.github/workflows/unit-tests.yaml @@ -65,9 +65,10 @@ jobs: paths: 'junit-reports/report.xml' - name: Report test failures to Jira - if: (!cancelled()) && github.event_name == 'push' + if: (!cancelled()) uses: ./.github/actions/junit2jira with: + create-jiras: ${{ github.event_name == 'push' }} jira-token: ${{ secrets.JIRA_TOKEN }} directory: 'junit-reports' @@ -116,9 +117,10 @@ jobs: paths: 'junit-reports/report.xml' - name: Report junit failures in jira - if: (!cancelled()) && github.event_name == 'push' + if: (!cancelled()) uses: ./.github/actions/junit2jira with: + create-jiras: ${{ github.event_name == 'push' }} jira-token: ${{ secrets.JIRA_TOKEN }} directory: 'junit-reports' @@ -192,9 +194,10 @@ jobs: paths: 'ui/apps/platform/test-results/reports/*.xml' - name: Report junit failures in jira - if: (!cancelled()) && github.event_name == 'push' + if: (!cancelled()) uses: ./.github/actions/junit2jira with: + create-jiras: ${{ github.event_name == 'push' }} jira-token: ${{ secrets.JIRA_TOKEN }} directory: 'ui/apps/platform/test-results/reports' @@ -226,9 +229,10 @@ jobs: paths: 'roxctl-test-output/*.xml' - name: Report junit failures in jira - if: (!cancelled()) && github.event_name == 'push' + if: (!cancelled()) uses: ./.github/actions/junit2jira with: + create-jiras: ${{ github.event_name == 'push' }} jira-token: ${{ secrets.JIRA_TOKEN }} directory: 'roxctl-test-output' @@ -255,9 +259,10 @@ jobs: paths: 'shell-test-output/*.xml' - name: Report junit failures in jira - if: (!cancelled()) && github.event_name == 'push' + if: (!cancelled()) uses: ./.github/actions/junit2jira with: + create-jiras: ${{ github.event_name == 'push' }} jira-token: ${{ secrets.JIRA_TOKEN }} directory: 'shell-test-output' From 2647695f4f6a7f953917a833543b44a7e1f0ab84 Mon Sep 17 00:00:00 2001 From: Tomasz Janiszewski Date: Fri, 22 Mar 2024 13:00:23 +0100 Subject: [PATCH 4/9] provide a secret Signed-off-by: Tomasz Janiszewski --- .github/actions/junit2jira/action.yaml | 5 ++++- .github/workflows/build.yaml | 1 + .github/workflows/unit-tests.yaml | 5 +++++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/.github/actions/junit2jira/action.yaml b/.github/actions/junit2jira/action.yaml index 4174d737c5fb2..41d161762fac5 100644 --- a/.github/actions/junit2jira/action.yaml +++ b/.github/actions/junit2jira/action.yaml @@ -8,6 +8,9 @@ inputs: description: 'Weather to report failures to jira' required: false default: 'true' + gcp-account: + description: 'Account to be used to upload tests data' + required: true jira-token: description: 'Token used to authenticate with Jira.' required: true @@ -36,7 +39,7 @@ runs: - name: Check files shell: bash env: - GCP_SERVICE_ACCOUNT_STACKROX_CI: ${{ secrets.GCP_SERVICE_ACCOUNT_STACKROX_CI }} + GCP_SERVICE_ACCOUNT_STACKROX_CI: ${{ inputs.gcp-account }} JIRA_TOKEN: ${{ inputs.jira-token }} run: | local extra_args=() diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 7dde9d4cb4c8e..4c84753dd33f6 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -623,6 +623,7 @@ jobs: if: always() with: jira-token: ${{ secrets.JIRA_TOKEN }} + gcp-account: ${{ secrets.GCP_SERVICE_ACCOUNT_STACKROX_CI }} directory: 'junit-reports' scan-images-with-roxctl: diff --git a/.github/workflows/unit-tests.yaml b/.github/workflows/unit-tests.yaml index a44f47577d59f..06bb87c3a837c 100644 --- a/.github/workflows/unit-tests.yaml +++ b/.github/workflows/unit-tests.yaml @@ -70,6 +70,7 @@ jobs: with: create-jiras: ${{ github.event_name == 'push' }} jira-token: ${{ secrets.JIRA_TOKEN }} + gcp-account: ${{ secrets.GCP_SERVICE_ACCOUNT_STACKROX_CI }} directory: 'junit-reports' go-postgres: @@ -122,6 +123,7 @@ jobs: with: create-jiras: ${{ github.event_name == 'push' }} jira-token: ${{ secrets.JIRA_TOKEN }} + gcp-account: ${{ secrets.GCP_SERVICE_ACCOUNT_STACKROX_CI }} directory: 'junit-reports' go-bench: @@ -199,6 +201,7 @@ jobs: with: create-jiras: ${{ github.event_name == 'push' }} jira-token: ${{ secrets.JIRA_TOKEN }} + gcp-account: ${{ secrets.GCP_SERVICE_ACCOUNT_STACKROX_CI }} directory: 'ui/apps/platform/test-results/reports' local-roxctl-tests: @@ -234,6 +237,7 @@ jobs: with: create-jiras: ${{ github.event_name == 'push' }} jira-token: ${{ secrets.JIRA_TOKEN }} + gcp-account: ${{ secrets.GCP_SERVICE_ACCOUNT_STACKROX_CI }} directory: 'roxctl-test-output' shell-unit-tests: @@ -264,6 +268,7 @@ jobs: with: create-jiras: ${{ github.event_name == 'push' }} jira-token: ${{ secrets.JIRA_TOKEN }} + gcp-account: ${{ secrets.GCP_SERVICE_ACCOUNT_STACKROX_CI }} directory: 'shell-test-output' openshift-ci-unit-tests: From 26d76434d77e0d0a7b82958edeb30a2c872dece4 Mon Sep 17 00:00:00 2001 From: Tomasz Janiszewski Date: Fri, 22 Mar 2024 13:18:50 +0100 Subject: [PATCH 5/9] fix Signed-off-by: Tomasz Janiszewski --- .github/actions/junit2jira/action.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/actions/junit2jira/action.yaml b/.github/actions/junit2jira/action.yaml index 41d161762fac5..9bb0bf86a4ca8 100644 --- a/.github/actions/junit2jira/action.yaml +++ b/.github/actions/junit2jira/action.yaml @@ -42,7 +42,7 @@ runs: GCP_SERVICE_ACCOUNT_STACKROX_CI: ${{ inputs.gcp-account }} JIRA_TOKEN: ${{ inputs.jira-token }} run: | - local extra_args=() + extra_args=() if [[ "${{ inputs.create-jiras }}" == "false" ]]; then extra_args=(--dry-run) info "Will use junit2jira to create CSV for BigQuery input" From 7811edb39e9798f7310e99b15b5b473f92dc28fa Mon Sep 17 00:00:00 2001 From: Tomasz Janiszewski Date: Fri, 22 Mar 2024 13:28:40 +0100 Subject: [PATCH 6/9] echo Signed-off-by: Tomasz Janiszewski --- .github/actions/junit2jira/action.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/actions/junit2jira/action.yaml b/.github/actions/junit2jira/action.yaml index 9bb0bf86a4ca8..f50d602d33517 100644 --- a/.github/actions/junit2jira/action.yaml +++ b/.github/actions/junit2jira/action.yaml @@ -45,9 +45,9 @@ runs: extra_args=() if [[ "${{ inputs.create-jiras }}" == "false" ]]; then extra_args=(--dry-run) - info "Will use junit2jira to create CSV for BigQuery input" + echo "Will use junit2jira to create CSV for BigQuery input" else - info "Will create JIRA issues for junit failures found in ${{ inputs.directory }}" + echo "Will create JIRA issues for junit failures found in ${{ inputs.directory }}" fi ${{ inputs.debug_mode == true }} csv_output="$(mktemp --suffix=.csv)" From cf3191ce7563d12e01a6bcc871ad1848dee4b7d7 Mon Sep 17 00:00:00 2001 From: Tomasz Janiszewski Date: Fri, 22 Mar 2024 15:06:37 +0100 Subject: [PATCH 7/9] remove line Signed-off-by: Tomasz Janiszewski --- .github/actions/junit2jira/action.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/actions/junit2jira/action.yaml b/.github/actions/junit2jira/action.yaml index f50d602d33517..77e112a30352c 100644 --- a/.github/actions/junit2jira/action.yaml +++ b/.github/actions/junit2jira/action.yaml @@ -49,7 +49,6 @@ runs: else echo "Will create JIRA issues for junit failures found in ${{ inputs.directory }}" fi - ${{ inputs.debug_mode == true }} csv_output="$(mktemp --suffix=.csv)" ./junit2jira \ -base-link "${{ github.server_url }}/${{ github.repository }}/commit/${{ github.sha }}" \ From 82cd91ca9f0cb7d4420aa36afeefdd8e78095559 Mon Sep 17 00:00:00 2001 From: Tomasz Janiszewski Date: Wed, 27 Mar 2024 12:43:17 +0100 Subject: [PATCH 8/9] Apply suggestions from code review Co-authored-by: Marcin Owsiany --- .github/actions/junit2jira/action.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/actions/junit2jira/action.yaml b/.github/actions/junit2jira/action.yaml index 77e112a30352c..bf0c4acaa6570 100644 --- a/.github/actions/junit2jira/action.yaml +++ b/.github/actions/junit2jira/action.yaml @@ -5,7 +5,7 @@ branding: color: 'blue' inputs: create-jiras: - description: 'Weather to report failures to jira' + description: 'Whether to report failures to Jira' required: false default: 'true' gcp-account: @@ -47,7 +47,7 @@ runs: extra_args=(--dry-run) echo "Will use junit2jira to create CSV for BigQuery input" else - echo "Will create JIRA issues for junit failures found in ${{ inputs.directory }}" + echo "Will create JIRA issues for JUnit failures found in ${{ inputs.directory }}" fi csv_output="$(mktemp --suffix=.csv)" ./junit2jira \ From 47fe6d1d45e89163df5ed64980770eec9d924f83 Mon Sep 17 00:00:00 2001 From: Tomasz Janiszewski Date: Wed, 27 Mar 2024 12:45:38 +0100 Subject: [PATCH 9/9] remove line Signed-off-by: Tomasz Janiszewski --- .github/actions/junit2jira/action.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/actions/junit2jira/action.yaml b/.github/actions/junit2jira/action.yaml index bf0c4acaa6570..7c2aa413d54d7 100644 --- a/.github/actions/junit2jira/action.yaml +++ b/.github/actions/junit2jira/action.yaml @@ -45,7 +45,6 @@ runs: extra_args=() if [[ "${{ inputs.create-jiras }}" == "false" ]]; then extra_args=(--dry-run) - echo "Will use junit2jira to create CSV for BigQuery input" else echo "Will create JIRA issues for JUnit failures found in ${{ inputs.directory }}" fi