Skip to content

Test: Full Suite

Test: Full Suite #67

name: "Test: Full Suite"
on:
schedule:
- cron: "0 4 * * 1-5" # Run at 4 AM UTC on weekdays
workflow_dispatch:
inputs:
run_e2e_linux:
description: "E2E Tests / Electron (Linux)"
required: false
default: true
type: boolean
run_e2e_windows:
description: "E2E Tests / Electron (Windows)"
required: false
default: true
type: boolean
run_e2e_browser:
description: "E2E Tests / Chromium (Linux)"
required: false
default: true
type: boolean
run_unit_tests:
description: "Unit Tests"
required: false
default: true
type: boolean
run_integration_tests:
description: "Integration Tests"
required: false
default: true
type: boolean
notify_on:
description: "Slack notification on:"
required: false
default: "failure"
type: choice
options:
- failure
- always
- never
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
e2e-electron:
name: e2e
if: ${{ github.event_name == 'schedule' || inputs.run_e2e_linux }}
uses: ./.github/workflows/test-e2e-linux.yml
secrets: inherit
with:
grep: ""
project: "e2e-electron"
display_name: "electron (linux)"
currents_tags: ${{ github.event_name == 'schedule' && 'nightly,electron/linux' || 'electron/linux' }}
report_testrail: true
e2e-windows:
name: e2e
if: ${{ github.event_name == 'schedule' || inputs.run_e2e_windows }}
uses: ./.github/workflows/test-e2e-windows.yml
secrets: inherit
with:
grep: ""
display_name: "electron (win)"
currents_tags: ${{ github.event_name == 'schedule' && 'nightly,electron/win' || 'electron/win' }}
report_testrail: true
e2e-browser:
name: e2e
if: ${{ github.event_name == 'schedule' || inputs.run_e2e_browser }}
uses: ./.github/workflows/test-e2e-linux.yml
secrets: inherit
with:
grep: ""
project: "e2e-browser"
display_name: "browser (linux)"
currents_tags: ${{ github.event_name == 'schedule' && 'nightly,browser/linux' || 'browser/linux' }}
report_testrail: true
unit-tests:
name: test
if: ${{ github.event_name == 'schedule' || inputs.run_unit_tests }}
uses: ./.github/workflows/test-unit.yml
secrets: inherit
integration-tests:
name: test
if: ${{ github.event_name == 'schedule' || inputs.run_integration_tests }}
uses: ./.github/workflows/test-integration.yml
secrets: inherit
slack-notify:
if: always()
needs: [e2e-electron, e2e-windows, e2e-browser, unit-tests, integration-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@master
with:
repo_token: ${{ secrets.POSITRON_GITHUB_PAT }}
slack_webhook_url: ${{ secrets.SLACK_TEST_RESULTS_WEBHOOK_URL }}
notify_on: ${{ env.notify_on }}