diff --git a/.github/e2e-tests.yml b/.github/e2e-tests.yml index 6aef81ec12f..0d92d1900dc 100644 --- a/.github/e2e-tests.yml +++ b/.github/e2e-tests.yml @@ -46,7 +46,7 @@ runner-test-matrix: path: integration-tests/soak/ocr_test.go test_env_type: k8s-remote-runner runs_on: ubuntu-latest - test_cmd: cd integration-tests/ && go test soak/ocr_test.go -v -test.run ^TestOCRv1Soak$ -test.parallel=1 -timeout 30m -count=1 + test_cmd: cd integration-tests/ && go test soak/ocr_test.go -v -test.run ^TestOCRv1Soak$ -test.parallel=1 -timeout 30m -count=1 -json test_inputs: test_suite: soak @@ -54,7 +54,7 @@ runner-test-matrix: path: integration-tests/soak/ocr_test.go test_env_type: k8s-remote-runner runs_on: ubuntu-latest - test_cmd: cd integration-tests/ && go test soak/ocr_test.go -v -test.run ^TestOCRv2Soak$ -test.parallel=1 -timeout 30m -count=1 + test_cmd: cd integration-tests/ && go test soak/ocr_test.go -v -test.run ^TestOCRv2Soak$ -test.parallel=1 -timeout 30m -count=1 -json test_config_override_required: true test_secrets_required: true test_inputs: @@ -64,7 +64,7 @@ runner-test-matrix: path: integration-tests/soak/ocr_test.go test_env_type: k8s-remote-runner runs_on: ubuntu-latest - test_cmd: cd integration-tests/ && go test soak/ocr_test.go -v -test.run ^TestForwarderOCRv1Soak$ -test.parallel=1 -timeout 30m -count=1 + test_cmd: cd integration-tests/ && go test soak/ocr_test.go -v -test.run ^TestForwarderOCRv1Soak$ -test.parallel=1 -timeout 30m -count=1 -json test_config_override_required: true test_secrets_required: true test_inputs: @@ -74,7 +74,7 @@ runner-test-matrix: path: integration-tests/soak/ocr_test.go test_env_type: k8s-remote-runner runs_on: ubuntu-latest - test_cmd: cd integration-tests/ && go test soak/ocr_test.go -v -test.run ^TestForwarderOCRv2Soak$ -test.parallel=1 -timeout 30m -count=1 + test_cmd: cd integration-tests/ && go test soak/ocr_test.go -v -test.run ^TestForwarderOCRv2Soak$ -test.parallel=1 -timeout 30m -count=1 -json test_config_override_required: true test_secrets_required: true test_inputs: @@ -84,7 +84,7 @@ runner-test-matrix: path: integration-tests/soak/ocr_test.go test_env_type: k8s-remote-runner runs_on: ubuntu-latest - test_cmd: cd integration-tests/ && go test soak/ocr_test.go -v -test.run ^TestOCRSoak_GethReorgBelowFinality_FinalityTagDisabled$ -test.parallel=1 -timeout 30m -count=1 + test_cmd: cd integration-tests/ && go test soak/ocr_test.go -v -test.run ^TestOCRSoak_GethReorgBelowFinality_FinalityTagDisabled$ -test.parallel=1 -timeout 30m -count=1 -json test_config_override_required: true test_secrets_required: true test_inputs: @@ -94,7 +94,7 @@ runner-test-matrix: path: integration-tests/soak/ocr_test.go test_env_type: k8s-remote-runner runs_on: ubuntu-latest - test_cmd: cd integration-tests/ && go test soak/ocr_test.go -v -test.run ^TestOCRSoak_GethReorgBelowFinality_FinalityTagEnabled$ -test.parallel=1 -timeout 30m -count=1 + test_cmd: cd integration-tests/ && go test soak/ocr_test.go -v -test.run ^TestOCRSoak_GethReorgBelowFinality_FinalityTagEnabled$ -test.parallel=1 -timeout 30m -count=1 -json test_config_override_required: true test_secrets_required: true test_inputs: @@ -104,7 +104,7 @@ runner-test-matrix: path: integration-tests/soak/ocr_test.go test_env_type: k8s-remote-runner runs_on: ubuntu-latest - test_cmd: cd integration-tests/ && go test soak/ocr_test.go -v -test.run ^TestOCRSoak_GasSpike$ -test.parallel=1 -timeout 30m -count=1 + test_cmd: cd integration-tests/ && go test soak/ocr_test.go -v -test.run ^TestOCRSoak_GasSpike$ -test.parallel=1 -timeout 30m -count=1 -json test_config_override_required: true test_secrets_required: true test_inputs: @@ -114,7 +114,7 @@ runner-test-matrix: path: integration-tests/soak/ocr_test.go test_env_type: k8s-remote-runner runs_on: ubuntu-latest - test_cmd: cd integration-tests/ && go test soak/ocr_test.go -v -test.run ^TestOCRSoak_ChangeBlockGasLimit$ -test.parallel=1 -timeout 30m -count=1 + test_cmd: cd integration-tests/ && go test soak/ocr_test.go -v -test.run ^TestOCRSoak_ChangeBlockGasLimit$ -test.parallel=1 -timeout 30m -count=1 -json test_config_override_required: true test_secrets_required: true test_inputs: @@ -124,7 +124,7 @@ runner-test-matrix: path: integration-tests/soak/ocr_test.go test_env_type: k8s-remote-runner runs_on: ubuntu-latest - test_cmd: cd integration-tests/ && go test soak/ocr_test.go -v -test.run ^TestOCRSoak_RPCDownForAllCLNodes$ -test.parallel=1 -timeout 30m -count=1 + test_cmd: cd integration-tests/ && go test soak/ocr_test.go -v -test.run ^TestOCRSoak_RPCDownForAllCLNodes$ -test.parallel=1 -timeout 30m -count=1 -json test_config_override_required: true test_secrets_required: true test_inputs: @@ -134,7 +134,7 @@ runner-test-matrix: path: integration-tests/soak/ocr_test.go test_env_type: k8s-remote-runner runs_on: ubuntu-latest - test_cmd: cd integration-tests/ && go test soak/ocr_test.go -v -test.run ^TestOCRSoak_RPCDownForHalfCLNodes$ -test.parallel=1 -timeout 30m -count=1 + test_cmd: cd integration-tests/ && go test soak/ocr_test.go -v -test.run ^TestOCRSoak_RPCDownForHalfCLNodes$ -test.parallel=1 -timeout 30m -count=1 -json test_config_override_required: true test_secrets_required: true test_inputs: @@ -550,8 +550,8 @@ runner-test-matrix: test_inputs: test_suite: reorg workflows: - # - Run Automation Product Nightly E2E Tests - test_cmd: cd integration-tests/reorg && go test -v -test.run ^TestAutomationReorg$ -test.parallel=5 -timeout 60m -count=1 + - Run Automation On Demand Tests (TEST WORKFLOW) + test_cmd: cd integration-tests/reorg && DETACH_RUNNER=false go test -v -test.run ^TestAutomationReorg$ -test.parallel=7 -timeout 60m -count=1 -json pyroscope_env: ci-automation-on-demand-reorg - id: integration-tests/chaos/automation_chaos_test.go @@ -559,8 +559,8 @@ runner-test-matrix: test_env_type: k8s-remote-runner runs_on: ubuntu-latest workflows: - # - Run Automation Product Nightly E2E Tests - test_cmd: cd integration-tests/chaos && go test -v -test.run ^TestAutomationChaos$ -test.parallel=15 -timeout 60m -count=1 + - Run Automation On Demand Tests (TEST WORKFLOW) + test_cmd: cd integration-tests/chaos && DETACH_RUNNER=false go test -v -test.run ^TestAutomationChaos$ -test.parallel=15 -timeout 60m -count=1 -json pyroscope_env: ci-automation-on-demand-chaos test_inputs: test_suite: chaos @@ -572,7 +572,7 @@ runner-test-matrix: runs_on: ubuntu-latest # workflows: # - Run Nightly E2E Tests - test_cmd: cd integration-tests/benchmark && go test -v -test.run ^TestAutomationBenchmark$ -test.parallel=1 -timeout 30m -count=1 + test_cmd: cd integration-tests/benchmark && go test -v -test.run ^TestAutomationBenchmark$ -test.parallel=1 -timeout 30m -count=1 -json pyroscope_env: ci-benchmark-automation-nightly test_inputs: test_suite: benchmark @@ -585,7 +585,7 @@ runner-test-matrix: path: integration-tests/smoke/vrfv2_test.go runs_on: ubuntu22.04-8cores-32GB test_env_type: docker - test_cmd: cd integration-tests/smoke && go test -v -test.run TestVRFv2Basic -test.parallel=1 -timeout 30m -count=1 + test_cmd: cd integration-tests/smoke && go test -v -test.run TestVRFv2Basic -test.parallel=1 -timeout 30m -count=1 -json test_config_override_required: true test_secrets_required: true workflows: @@ -595,7 +595,7 @@ runner-test-matrix: path: integration-tests/load/vrfv2plus/vrfv2plus_test.go runs_on: ubuntu22.04-8cores-32GB test_env_type: docker - test_cmd: cd integration-tests/load/vrfv2plus && go test -v -test.run ^TestVRFV2PlusPerformance$ -test.parallel=1 -timeout 24h -count=1 + test_cmd: cd integration-tests/load/vrfv2plus && go test -v -test.run ^TestVRFV2PlusPerformance$ -test.parallel=1 -timeout 24h -count=1 -json test_config_override_required: true test_secrets_required: true test_inputs: @@ -607,7 +607,7 @@ runner-test-matrix: path: integration-tests/load/vrfv2plus/vrfv2plus_test.go runs_on: ubuntu22.04-8cores-32GB test_env_type: docker - test_cmd: cd integration-tests/load/vrfv2plus && go test -v -test.run ^TestVRFV2PlusBHSPerformance$ -test.parallel=1 -timeout 24h -count=1 + test_cmd: cd integration-tests/load/vrfv2plus && go test -v -test.run ^TestVRFV2PlusBHSPerformance$ -test.parallel=1 -timeout 24h -count=1 -json test_config_override_required: true test_secrets_required: true test_inputs: @@ -619,7 +619,7 @@ runner-test-matrix: path: integration-tests/load/vrfv2/vrfv2_test.go runs_on: ubuntu22.04-8cores-32GB test_env_type: docker - test_cmd: cd integration-tests/load/vrfv2 && go test -v -test.run ^TestVRFV2Performance$ -test.parallel=1 -timeout 24h -count=1 + test_cmd: cd integration-tests/load/vrfv2 && go test -v -test.run ^TestVRFV2Performance$ -test.parallel=1 -timeout 24h -count=1 -json test_config_override_required: true test_secrets_required: true test_inputs: @@ -631,7 +631,7 @@ runner-test-matrix: path: integration-tests/load/vrfv2/vrfv2_test.go runs_on: ubuntu22.04-8cores-32GB test_env_type: docker - test_cmd: cd integration-tests/load/vrfv2 && go test -v -test.run ^TestVRFV2PlusBHSPerformance$ -test.parallel=1 -timeout 24h -count=1 + test_cmd: cd integration-tests/load/vrfv2 && go test -v -test.run ^TestVRFV2PlusBHSPerformance$ -test.parallel=1 -timeout 24h -count=1 -json test_config_override_required: true test_secrets_required: true test_inputs: @@ -643,7 +643,7 @@ runner-test-matrix: path: integration-tests/smoke/vrfv2plus_test.go runs_on: ubuntu22.04-8cores-32GB test_env_type: docker - test_cmd: cd integration-tests && go test -v -test.run ^TestVRFv2Plus$/^Link_Billing$ smoke/vrfv2plus_test.go -test.parallel=1 -timeout 30m -count=1 + test_cmd: cd integration-tests && go test -v -test.run ^TestVRFv2Plus$/^Link_Billing$ smoke/vrfv2plus_test.go -test.parallel=1 -timeout 30m -count=1 -json test_config_override_required: true test_secrets_required: true workflows: diff --git a/.github/workflows/integration-tests.yml b/.github/workflows/integration-tests.yml index a54db66ba06..ec9168133da 100644 --- a/.github/workflows/integration-tests.yml +++ b/.github/workflows/integration-tests.yml @@ -978,10 +978,6 @@ jobs: DEFAULT_GRAFANA_BASE_URL: "http://localhost:8080/primary" DEFAULT_GRAFANA_DASHBOARD_URL: "/d/ddf75041-1e39-42af-aa46-361fe4c36e9e/ci-e2e-tests-logs" DEFAULT_GRAFANA_BEARER_TOKEN: ${{ secrets.GRAFANA_INTERNAL_URL_SHORTENER_TOKEN }} - DEFAULT_PYROSCOPE_SERVER_URL: ${{ matrix.product.pyroscope_env == '' && '' || !startsWith(github.ref, 'refs/tags/') && '' || secrets.QA_PYROSCOPE_INSTANCE }} # Avoid sending blank envs https://github.com/orgs/community/discussions/25725 - DEFAULT_PYROSCOPE_KEY: ${{ secrets.QA_PYROSCOPE_KEY }} - DEFAULT_PYROSCOPE_ENVIRONMENT: ${{ matrix.product.pyroscope_env }} - DEFAULT_PYROSCOPE_ENABLED: ${{ matrix.product.pyroscope_env == '' || !startsWith(github.ref, 'refs/tags/') && 'false' || 'true' }} - name: Upload Coverage Data uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3 diff --git a/.github/workflows/run-automation-ondemand-e2e-tests.yml b/.github/workflows/run-automation-ondemand-e2e-tests.yml index 10a09df130e..7bf4691ecc5 100644 --- a/.github/workflows/run-automation-ondemand-e2e-tests.yml +++ b/.github/workflows/run-automation-ondemand-e2e-tests.yml @@ -3,31 +3,28 @@ name: Run Automation On Demand Tests (TEST WORKFLOW) on: workflow_dispatch: inputs: - chainlinkImage: - description: Chainlink image repo to use to upgrade Chainlink Nodes from + chainlinkVersionUpdate: + description: Chainlink image version to upgrade to (Leave empty to build from head/ref) + required: false + type: string + chainlinkImageUpdate: + description: Chainlink image repo to upgrade to options: - QA_ECR - public.ecr.aws/chainlink/chainlink - default: QA_ECR type: choice chainlinkVersion: - description: Chainlink image version to use to upgrade Chainlink Nodes from - required: false - default: develop - type: string - chainlinkImageUpdate: - description: Chainlink image repo to use to upgrade Chainlink Nodes to + description: Chainlink image version to use initially for upgrade test + default: latest + required: true + type: string + chainlinkImage: + description: Chainlink image repo to use initially for upgrade test required: true options: - - QA_ECR - public.ecr.aws/chainlink/chainlink - default: QA_ECR + - QA_ECR type: choice - chainlinkVersionUpdate: - description: Chainlink image version to use to upgrade Chainlink Nodes to - default: develop - required: true - type: string enableChaos: description: Check to enable chaos tests type: boolean @@ -39,14 +36,10 @@ on: default: false required: true with_existing_remote_runner_version: - description: 'Use the existing remote runner version for k8s tests. Example: "d3bf5044af33e08be788a2df31c4a745cf69d787"' + description: 'Tag of the existing remote runner version to use (Leave empty to build from head/ref)' required: false type: string -env: - CHAINLINK_VERSION: ${{ inputs.chainlinkVersion || github.sha }} - CHAINLINK_UPGRADE_VERSION: ${{ inputs.chainlinkVersionUpdate }} - jobs: # Set tests to run based on the workflow inputs set-tests-to-run: @@ -54,56 +47,70 @@ jobs: runs-on: ubuntu-latest outputs: test_list: ${{ steps.set-tests.outputs.test_list }} - require_chainlink_image_versions_in_qa_ecr: ${{ steps.set-tests.outputs.require_chainlink_image_versions_in_qa_ecr }} - require_chainlink_plugin_versions_in_qa_ecr: ${{ steps.set-tests.outputs.require_chainlink_plugin_versions_in_qa_ecr }} + require_chainlink_image_versions_in_qa_ecr: ${{ steps.determine-chainlink-image-check.outputs.require_chainlink_image_versions_in_qa_ecr }} steps: - - name: Set tests to run - id: set-tests + - name: Determine build to use + id: determine-build + shell: bash run: | - if [[ "${{ github.event.inputs.chainlinkImage }}" == 'QA_ECR' ]]; then - # Instead of passing chainlink image as plain text input, {{ env.QA_CHAINLINK_IMAGE }} will be securely resolved in the E2E tests reusable workflow - CHAINLINK_IMAGE="'{{ env.QA_CHAINLINK_IMAGE }}'" - elif [[ "${{ github.event.inputs.chainlinkImage }}" == 'public.ecr.aws/chainlink/chainlink' ]]; then - CHAINLINK_IMAGE=public.ecr.aws/chainlink/chainlink + if [[ "${{ inputs.chainlinkImage }}" == "QA_ECR" ]]; then + echo "image='{{ env.QA_CHAINLINK_IMAGE }}'" >>$GITHUB_OUTPUT + else + echo "image=${{ inputs.chainlinkImage }}" >>$GITHUB_OUTPUT + fi + if [[ "${{ inputs.chainlinkImageUpdate }}" == "QA_ECR" ]]; then + echo "upgrade_image='{{ env.QA_CHAINLINK_IMAGE }}'" >>$GITHUB_OUTPUT else - echo "Error: Not supported image source '${{ github.event.inputs.chainlinkImage }}'" - exit 1 - fi - - if [[ "${{ github.event.inputs.chainlinkImageUpdate }}" == 'QA_ECR' ]]; then - CHAINLINK_UPGRADE_IMAGE="'{{ env.QA_CHAINLINK_IMAGE }}'" - elif [[ "${{ github.event.inputs.chainlinkImageUpdate }}" == 'public.ecr.aws/chainlink/chainlink' ]]; then - CHAINLINK_UPGRADE_IMAGE=public.ecr.aws/chainlink/chainlink + echo "upgrade_image=${{ inputs.chainlinkImageUpdate }}" >>$GITHUB_OUTPUT + fi + if [[ -z "${{ inputs.chainlinkVersion }}" ]] && [[ "${{ inputs.chainlinkImage }}" == "QA_ECR" ]]; then + echo "version=${{ github.sha }}" >>$GITHUB_OUTPUT + else + echo "version=${{ inputs.chainlinkVersion }}" >>$GITHUB_OUTPUT + fi + if [[ -z "${{ inputs.chainlinkVersionUpdate }}" ]] && [[ "${{ inputs.chainlinkImageUpdate }}" == "QA_ECR" ]]; then + echo "upgrade_version=${{ github.sha }}" >>$GITHUB_OUTPUT else - echo "Error: Not supported image source '${{ github.event.inputs.chainlinkImageUpdate }}'" - exit 1 - fi - - CHAINLINK_VERSION="${{ env.CHAINLINK_VERSION }}" - CHAINLINK_UPGRADE_VERSION="${{ env.CHAINLINK_UPGRADE_VERSION }}" + echo "upgrade_version=${{ inputs.chainlinkVersionUpdate }}" >>$GITHUB_OUTPUT + fi + - name: Check if chainlink image check required + id: determine-chainlink-image-check + shell: bash + run: | + chainlink_image_versions="" + if [ "${{ github.event.inputs.chainlinkImage }}" = "QA_ECR" ]; then + chainlink_image_versions+="${{ steps.determine-build.outputs.version }}," + fi + if [ "${{ github.event.inputs.chainlinkImageUpdate }}" = "QA_ECR" ]; then + chainlink_image_versions+="${{ steps.determine-build.outputs.upgrade_version }}" + fi + echo "require_chainlink_image_versions_in_qa_ecr=$chainlink_image_versions" >> $GITHUB_OUTPUT + - name: Set tests to run + id: set-tests + run: | # Always run upgrade tests cat > test_list.yaml <> test_list.yaml <> test_list.yaml <> $GITHUB_OUTPUT - chainlink_image_versions="" - if [ "${{ github.event.inputs.chainlinkImage }}" = "QA_ECR" ]; then - chainlink_image_versions+="${{ env.CHAINLINK_VERSION }}," - fi - if [ "${{ github.event.inputs.chainlinkImageUpdate }}" = "QA_ECR" ]; then - chainlink_image_versions+="${{ env.CHAINLINK_UPGRADE_VERSION }}" - fi - echo "require_chainlink_image_versions_in_qa_ecr=$chainlink_image_versions" >> $GITHUB_OUTPUT - call-run-e2e-tests-workflow: name: Run E2E Tests needs: set-tests-to-run @@ -144,8 +142,9 @@ jobs: with: test_list: ${{ needs.set-tests-to-run.outputs.test_list }} require_chainlink_image_versions_in_qa_ecr: ${{ needs.set-tests-to-run.outputs.require_chainlink_image_versions_in_qa_ecr }} - require_chainlink_plugin_versions_in_qa_ecr: ${{ needs.set-tests-to-run.outputs.require_chainlink_image_versions_in_qa_ecr }} with_existing_remote_runner_version: ${{ github.event.inputs.with_existing_remote_runner_version }} + test_log_upload_on_failure: true + test_log_upload_retention_days: 7 secrets: QA_AWS_REGION: ${{ secrets.QA_AWS_REGION }} QA_AWS_ROLE_TO_ASSUME: ${{ secrets.QA_AWS_ROLE_TO_ASSUME }} diff --git a/.github/workflows/run-e2e-tests-reusable-workflow.yml b/.github/workflows/run-e2e-tests-reusable-workflow.yml index 43896262f3f..2d3f31aa3b3 100644 --- a/.github/workflows/run-e2e-tests-reusable-workflow.yml +++ b/.github/workflows/run-e2e-tests-reusable-workflow.yml @@ -55,6 +55,16 @@ on: description: 'Name of the slack notification' required: false type: string + test_log_upload_on_failure: + description: 'Set to "true" to upload the test log on failure as Github artifact' + required: false + type: boolean + default: false + test_log_upload_retention_days: + description: 'Number of days to retain the test log. Default is 3 days' + required: false + type: number + default: 3 secrets: TEST_SECRETS_OVERRIDE_BASE64: required: false @@ -351,7 +361,7 @@ jobs: # Run Docker tests run-docker-tests: - name: Run docker tests (${{ matrix.tests.id }}) + name: Run ${{ matrix.tests.id }} needs: [load-test-configurations, require-chainlink-image-versions-in-qa-ecr, require-chainlink-plugin-versions-in-qa-ecr, get_latest_chainlink_release_version] # Run when none of the needed jobs fail or are cancelled (skipped or successful jobs are ok) if: ${{ needs.load-test-configurations.outputs.run-docker-tests == 'true' && always() && !failure() && !cancelled() }} @@ -378,7 +388,7 @@ jobs: org-id: ${{ secrets.GRAFANA_INTERNAL_TENANT_ID }} basic-auth: ${{ secrets.GRAFANA_INTERNAL_BASIC_AUTH }} hostname: ${{ secrets.GRAFANA_INTERNAL_HOST }} - this-job-name: Run E2E Tests / Run docker tests (${{ matrix.tests.id }}) + this-job-name: Run E2E Tests / Run ${{ matrix.tests.id }} test-results-file: '{"testType":"go","filePath":"/tmp/gotest.log"}' continue-on-error: true @@ -445,6 +455,15 @@ jobs: DEFAULT_PYROSCOPE_KEY: ${{ matrix.tests.pyroscope_env != '' && secrets.QA_PYROSCOPE_KEY || '' }} DEFAULT_PYROSCOPE_ENABLED: ${{ matrix.tests.pyroscope_env != '' && 'true' || '' }} + - name: Upload test log as Github artifact + uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1 + if: inputs.test_log_upload_on_failure && failure() + with: + name: test_log_${{ matrix.tests.id_sanitized }} + path: /tmp/gotest.log + retention-days: ${{ inputs.test_log_upload_retention_days }} + continue-on-error: true + # Run K8s tests using old remote runner prepare-remote-runner-test-image: @@ -485,7 +504,7 @@ jobs: run-k8s-runner-tests: needs: [load-test-configurations, prepare-remote-runner-test-image, require-chainlink-image-versions-in-qa-ecr, require-chainlink-plugin-versions-in-qa-ecr, get_latest_chainlink_release_version] if: ${{ needs.load-test-configurations.outputs.run-k8s-tests == 'true' && always() && !failure() && !cancelled() }} - name: Run k8s tests (${{ matrix.tests.id }}) + name: Run ${{ matrix.tests.id }} runs-on: ${{ matrix.tests.runs_on }} strategy: fail-fast: false @@ -509,7 +528,7 @@ jobs: org-id: ${{ secrets.GRAFANA_INTERNAL_TENANT_ID }} basic-auth: ${{ secrets.GRAFANA_INTERNAL_BASIC_AUTH }} hostname: ${{ secrets.GRAFANA_INTERNAL_HOST }} - this-job-name: Run E2E Tests / Run k8s tests (${{ matrix.tests.id }}) + this-job-name: Run E2E Tests / Run ${{ matrix.tests.id }} continue-on-error: true - name: Checkout repository @@ -536,7 +555,7 @@ jobs: TEST_LOG_LEVEL: debug REF_NAME: ${{ github.head_ref || github.ref_name }} with: - test_command_to_run: ${{ matrix.tests.test_cmd }} + test_command_to_run: ${{ matrix.tests.test_cmd }} 2>&1 | tee /tmp/gotest.log | gotestloghelper -ci -singlepackage -hidepassingtests=false -hidepassinglogs test_download_vendor_packages_command: make gomod test_secrets_override_base64: ${{ secrets.TEST_SECRETS_OVERRIDE_BASE64 }} # TODO: Uncomment once Test Config does not have any secrets. Related ticket https://smartcontract-it.atlassian.net/browse/TT-1392 @@ -568,7 +587,16 @@ jobs: DEFAULT_PYROSCOPE_SERVER_URL: ${{ matrix.tests.pyroscope_env != '' && secrets.QA_PYROSCOPE_INSTANCE || '' }} DEFAULT_PYROSCOPE_KEY: ${{ matrix.tests.pyroscope_env != '' && secrets.QA_PYROSCOPE_KEY || '' }} DEFAULT_PYROSCOPE_ENABLED: ${{ matrix.tests.pyroscope_env != '' && 'true' || '' }} - + + - name: Upload test log as Github artifact + uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1 + if: inputs.test_log_upload_on_failure && failure() + with: + name: test_log_${{ matrix.tests.id_sanitized }} + path: /tmp/gotest.log + retention-days: ${{ inputs.test_log_upload_retention_days }} + continue-on-error: true + after_tests: needs: [run-docker-tests, run-k8s-runner-tests] if: always()