Test: Full Suite #794
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: "Test: Full Suite" | |
| run-name: "${{ inputs.run_name || 'Test: Full Suite' }}" | |
| on: | |
| workflow_dispatch: | |
| inputs: | |
| run_name: | |
| description: "Custom run name:" | |
| required: false | |
| default: "Test: Full Suite" | |
| type: string | |
| run_e2e_linux: | |
| description: "E2E Tests / Electron (Ubuntu)" | |
| required: false | |
| default: true | |
| type: boolean | |
| run_e2e_rhel: | |
| description: "E2E Tests / Electron (RHEL)" | |
| required: false | |
| default: false | |
| type: boolean | |
| run_e2e_suse: | |
| description: "E2E Tests / Electron (SUSE)" | |
| required: false | |
| default: false | |
| type: boolean | |
| run_e2e_sles: | |
| description: "E2E Tests / Electron (SLES)" | |
| required: false | |
| default: false | |
| type: boolean | |
| run_e2e_debian: | |
| description: "E2E Tests / Electron (Debian)" | |
| required: false | |
| default: false | |
| type: boolean | |
| run_e2e_windows: | |
| description: "E2E Tests / Electron (Windows)" | |
| required: false | |
| default: true | |
| type: boolean | |
| run_e2e_browser: | |
| description: "E2E Tests / Chromium (Ubuntu)" | |
| required: false | |
| default: true | |
| type: boolean | |
| run_e2e_browser_rhel: | |
| description: "E2E Tests / Chromium (RHEL)" | |
| required: false | |
| default: false | |
| type: boolean | |
| run_e2e_browser_suse: | |
| description: "E2E Tests / Chromium (SUSE)" | |
| required: false | |
| default: false | |
| type: boolean | |
| run_e2e_browser_sles: | |
| description: "E2E Tests / Chromium (SLES)" | |
| required: false | |
| default: false | |
| type: boolean | |
| run_e2e_browser_debian: | |
| description: "E2E Tests / Chromium (Debian)" | |
| required: false | |
| default: false | |
| type: boolean | |
| run_unit_tests: | |
| description: "Unit Tests" | |
| required: false | |
| default: false | |
| type: boolean | |
| run_ext_host_tests: | |
| description: "Extension Host Tests" | |
| required: false | |
| default: false | |
| type: boolean | |
| commit: | |
| description: "Commit SHA to test:" | |
| required: false | |
| default: "latest" | |
| type: string | |
| notify_on: | |
| description: "Slack notification on:" | |
| required: false | |
| default: "failures_only" | |
| type: choice | |
| options: | |
| - failures_only | |
| - always | |
| - flaky_or_failures | |
| - never | |
| grep: | |
| description: "Grep pattern:" | |
| required: false | |
| default: "" | |
| type: string | |
| enable_diagnostic_logging: | |
| description: "Diagnostic logging" | |
| required: false | |
| default: false | |
| type: boolean | |
| jobs: | |
| validate-commit: | |
| name: validate-commit | |
| if: ${{ inputs.commit != 'latest' }} | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 0 | |
| - name: Validate commit exists | |
| run: | | |
| echo "Validating commit: ${{ inputs.commit }}" | |
| if git cat-file -t "${{ inputs.commit }}" >/dev/null 2>&1; then | |
| echo "✓ Commit ${{ inputs.commit }} exists" | |
| git log -1 --format=" Subject: %s%n Author: %an%n Date: %ad" "${{ inputs.commit }}" | |
| else | |
| echo "✗ Commit ${{ inputs.commit }} does not exist in this repository" | |
| echo " Make sure you're using a full SHA and the commit has been pushed" | |
| exit 1 | |
| fi | |
| setup: | |
| name: setup | |
| needs: [validate-commit] | |
| if: ${{ !failure() && !cancelled() && (inputs.run_e2e_linux || inputs.run_e2e_browser) }} | |
| uses: ./.github/workflows/test-e2e-ubuntu-build.yml | |
| secrets: inherit | |
| with: | |
| commit: ${{ inputs.commit != 'latest' && inputs.commit || '' }} | |
| skip_cache: ${{ inputs.commit != 'latest' }} | |
| e2e-electron: | |
| name: e2e | |
| needs: [setup] | |
| if: ${{ !failure() && !cancelled() && (github.event_name == 'schedule' || inputs.run_e2e_linux) }} | |
| uses: ./.github/workflows/test-e2e-ubuntu-run.yml | |
| secrets: inherit | |
| with: | |
| commit: ${{ inputs.commit != 'latest' && inputs.commit || '' }} | |
| grep: ${{ inputs.grep || '' }} | |
| project: "e2e-electron" | |
| display_name: "electron" | |
| install_undetectable_interpreters: true | |
| install_license: false | |
| allow_soft_fail: false | |
| upload_logs: false | |
| shards: 4 | |
| matrix: '{"shard":[1,2,3,4]}' | |
| max_failures: 6 # 20 max failures / 4 shards = 5, rounded to 6 to avoid premature failure of the entire suite | |
| enable_diagnostic_logging: ${{ inputs.enable_diagnostic_logging }} | |
| e2e-windows: | |
| name: e2e | |
| needs: [validate-commit] | |
| if: ${{ !failure() && !cancelled() && (github.event_name == 'schedule' || inputs.run_e2e_windows) }} | |
| uses: ./.github/workflows/test-e2e-windows-run.yml | |
| secrets: inherit | |
| with: | |
| commit: ${{ inputs.commit != 'latest' && inputs.commit || '' }} | |
| skip_cache: ${{ inputs.commit != 'latest' }} | |
| grep: ${{ inputs.grep || '' }} | |
| project: "e2e-windows" | |
| display_name: "windows" | |
| allow_soft_fail: false | |
| upload_logs: false | |
| shards: 4 | |
| matrix: '{"shard":[1,2,3,4]}' | |
| max_failures: 6 # 20 max failures / 4 shards = 5, rounded to 6 to avoid premature failure of the entire suite | |
| enable_diagnostic_logging: ${{ inputs.enable_diagnostic_logging }} | |
| e2e-chromium: | |
| name: e2e | |
| needs: [setup] | |
| if: ${{ !failure() && !cancelled() && (github.event_name == 'schedule' || inputs.run_e2e_browser) }} | |
| uses: ./.github/workflows/test-e2e-ubuntu-run.yml | |
| secrets: inherit | |
| with: | |
| commit: ${{ inputs.commit != 'latest' && inputs.commit || '' }} | |
| grep: ${{ inputs.grep || '' }} | |
| project: "e2e-chromium" | |
| display_name: "chromium" | |
| install_undetectable_interpreters: true | |
| install_license: true | |
| allow_soft_fail: false | |
| upload_logs: false | |
| shards: 4 | |
| matrix: '{"shard":[1,2,3,4]}' | |
| max_failures: 6 # 20 max failures / 4 shards = 5, rounded to 6 to avoid premature failure of the entire suite | |
| enable_diagnostic_logging: ${{ inputs.enable_diagnostic_logging }} | |
| e2e-rhel: | |
| name: e2e | |
| needs: [validate-commit] | |
| if: ${{ !failure() && !cancelled() && (github.event_name == 'schedule' || inputs.run_e2e_rhel) }} | |
| uses: ./.github/workflows/test-e2e-rhel.yml | |
| secrets: inherit | |
| with: | |
| commit: ${{ inputs.commit != 'latest' && inputs.commit || '' }} | |
| skip_cache: ${{ inputs.commit != 'latest' }} | |
| grep: ${{ inputs.grep || '' }} | |
| project: "e2e-electron" | |
| display_name: "electron (rhel)" | |
| install_undetectable_interpreters: true | |
| install_license: false | |
| allow_soft_fail: false | |
| enable_diagnostic_logging: ${{ inputs.enable_diagnostic_logging }} | |
| e2e-chromium-rhel: | |
| name: e2e | |
| needs: [validate-commit] | |
| if: ${{ !failure() && !cancelled() && (github.event_name == 'schedule' || inputs.run_e2e_browser_rhel) }} | |
| uses: ./.github/workflows/test-e2e-rhel.yml | |
| secrets: inherit | |
| with: | |
| commit: ${{ inputs.commit != 'latest' && inputs.commit || '' }} | |
| skip_cache: ${{ inputs.commit != 'latest' }} | |
| grep: ${{ inputs.grep || '' }} | |
| project: "e2e-chromium" | |
| display_name: "chromium (rhel)" | |
| install_undetectable_interpreters: true | |
| install_license: true | |
| allow_soft_fail: false | |
| enable_diagnostic_logging: ${{ inputs.enable_diagnostic_logging }} | |
| e2e-suse: | |
| name: e2e | |
| needs: [validate-commit] | |
| if: ${{ !failure() && !cancelled() && (github.event_name == 'schedule' || inputs.run_e2e_suse) }} | |
| uses: ./.github/workflows/test-e2e-suse.yml | |
| secrets: inherit | |
| with: | |
| commit: ${{ inputs.commit != 'latest' && inputs.commit || '' }} | |
| skip_cache: ${{ inputs.commit != 'latest' }} | |
| grep: ${{ inputs.grep || '' }} | |
| project: "e2e-electron" | |
| display_name: "electron (suse)" | |
| install_undetectable_interpreters: true | |
| install_license: false | |
| allow_soft_fail: false | |
| enable_diagnostic_logging: ${{ inputs.enable_diagnostic_logging }} | |
| e2e-chromium-suse: | |
| name: e2e | |
| needs: [validate-commit] | |
| if: ${{ !failure() && !cancelled() && (github.event_name == 'schedule' || inputs.run_e2e_browser_suse) }} | |
| uses: ./.github/workflows/test-e2e-suse.yml | |
| secrets: inherit | |
| with: | |
| commit: ${{ inputs.commit != 'latest' && inputs.commit || '' }} | |
| skip_cache: ${{ inputs.commit != 'latest' }} | |
| grep: ${{ inputs.grep || '' }} | |
| project: "e2e-chromium" | |
| display_name: "chromium (suse)" | |
| install_undetectable_interpreters: true | |
| install_license: true | |
| allow_soft_fail: false | |
| enable_diagnostic_logging: ${{ inputs.enable_diagnostic_logging }} | |
| e2e-sles: | |
| name: e2e | |
| needs: [validate-commit] | |
| if: ${{ !failure() && !cancelled() && (github.event_name == 'schedule' || inputs.run_e2e_sles) }} | |
| uses: ./.github/workflows/test-e2e-sles.yml | |
| secrets: inherit | |
| with: | |
| commit: ${{ inputs.commit != 'latest' && inputs.commit || '' }} | |
| skip_cache: ${{ inputs.commit != 'latest' }} | |
| grep: ${{ inputs.grep || '' }} | |
| project: "e2e-electron" | |
| display_name: "electron (sles)" | |
| install_undetectable_interpreters: true | |
| install_license: false | |
| allow_soft_fail: false | |
| enable_diagnostic_logging: ${{ inputs.enable_diagnostic_logging }} | |
| e2e-chromium-sles: | |
| name: e2e | |
| needs: [validate-commit] | |
| if: ${{ !failure() && !cancelled() && (github.event_name == 'schedule' || inputs.run_e2e_browser_sles) }} | |
| uses: ./.github/workflows/test-e2e-sles.yml | |
| secrets: inherit | |
| with: | |
| commit: ${{ inputs.commit != 'latest' && inputs.commit || '' }} | |
| skip_cache: ${{ inputs.commit != 'latest' }} | |
| grep: ${{ inputs.grep || '' }} | |
| project: "e2e-chromium" | |
| display_name: "chromium (sles)" | |
| install_undetectable_interpreters: true | |
| install_license: true | |
| allow_soft_fail: false | |
| enable_diagnostic_logging: ${{ inputs.enable_diagnostic_logging }} | |
| e2e-debian: | |
| name: e2e | |
| needs: [validate-commit] | |
| if: ${{ !failure() && !cancelled() && (github.event_name == 'schedule' || inputs.run_e2e_debian) }} | |
| uses: ./.github/workflows/test-e2e-debian.yml | |
| secrets: inherit | |
| with: | |
| commit: ${{ inputs.commit != 'latest' && inputs.commit || '' }} | |
| skip_cache: ${{ inputs.commit != 'latest' }} | |
| grep: ${{ inputs.grep || '' }} | |
| project: "e2e-electron" | |
| display_name: "electron (debian)" | |
| install_undetectable_interpreters: true | |
| install_license: false | |
| allow_soft_fail: false | |
| enable_diagnostic_logging: ${{ inputs.enable_diagnostic_logging }} | |
| e2e-chromium-debian: | |
| name: e2e | |
| needs: [validate-commit] | |
| if: ${{ !failure() && !cancelled() && (github.event_name == 'schedule' || inputs.run_e2e_browser_debian) }} | |
| uses: ./.github/workflows/test-e2e-debian.yml | |
| secrets: inherit | |
| with: | |
| commit: ${{ inputs.commit != 'latest' && inputs.commit || '' }} | |
| skip_cache: ${{ inputs.commit != 'latest' }} | |
| grep: ${{ inputs.grep || '' }} | |
| project: "e2e-chromium" | |
| display_name: "chromium (debian)" | |
| install_undetectable_interpreters: true | |
| install_license: true | |
| allow_soft_fail: false | |
| enable_diagnostic_logging: ${{ inputs.enable_diagnostic_logging }} | |
| unit-tests: | |
| name: test | |
| needs: [validate-commit] | |
| if: ${{ !failure() && !cancelled() && (github.event_name == 'schedule' || inputs.run_unit_tests) }} | |
| uses: ./.github/workflows/test-unit.yml | |
| secrets: inherit | |
| with: | |
| commit: ${{ inputs.commit != 'latest' && inputs.commit || '' }} | |
| ext-host-tests: | |
| name: test | |
| needs: [validate-commit] | |
| if: ${{ !failure() && !cancelled() && (github.event_name == 'schedule' || inputs.run_ext_host_tests) }} | |
| uses: ./.github/workflows/test-ext-host.yml | |
| secrets: inherit | |
| with: | |
| commit: ${{ inputs.commit != 'latest' && inputs.commit || '' }} | |
| pull_request: false | |
| slack-notify: | |
| if: always() | |
| needs: | |
| [validate-commit, e2e-electron, e2e-windows, e2e-chromium, e2e-rhel, e2e-chromium-rhel, e2e-suse, e2e-chromium-suse, e2e-sles, e2e-chromium-sles, e2e-debian, e2e-chromium-debian, unit-tests, ext-host-tests] | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| if: always() | |
| uses: actions/checkout@v6 | |
| with: | |
| sparse-checkout: .github/actions/notify-e2e-insights | |
| - name: Notify E2E Test Insights | |
| if: always() && inputs.notify_on != 'never' | |
| uses: ./.github/actions/notify-e2e-insights | |
| with: | |
| webhook_secret: ${{ secrets.E2E_INSIGHTS_WEBHOOK_SECRET }} | |
| connect_api_key: ${{ secrets.CONNECT_API_KEY }} | |
| repo_id: "positron" | |
| title: "E2E Full Suite Tests" | |
| filter_jobs: "(e2e / ([^0-9]*)|unit|ext-host)$" | |
| notify_on: ${{ inputs.notify_on }} |