Test: Full Suite against 9852/console-perf #775
Workflow file for this run
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: "failure" | ||
| type: choice | ||
| options: | ||
| - failure | ||
| - always | ||
| - 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 | ||
|
Check failure on line 138 in .github/workflows/test-full-suite.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 | ||
| env: | ||
| notify_on: ${{ github.event_name == 'schedule' && 'always' || inputs.notify_on || 'failure' }} | ||
| steps: | ||
| - run: | | ||
| echo "Will notify on: ${{ env.notify_on }}" | ||
| - name: Notify Slack | ||
| uses: midleman/slack-workflow-status@v3.1.3 | ||
| with: | ||
| gh_repo_token: ${{ secrets.GITHUB_TOKEN }} | ||
| slack_token: ${{ secrets.SLACK_TOKEN_TEST_STATUS }} | ||
| slack_channel: "#positron-test-results" | ||
| filter_jobs: "(e2e / ([^0-9]*)|unit|ext-host)$" | ||
| include_job_durations: false | ||
| notify_on: ${{ env.notify_on }} | ||
| - name: Checkout | ||
| if: always() | ||
| uses: actions/checkout@v6 | ||
| with: | ||
| sparse-checkout: .github/actions/notify-e2e-insights | ||
| - name: Notify E2E Test Insights | ||
| if: always() | ||
| 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)$" | ||