diff --git a/.github/workflows/continuous_release.yml b/.github/workflows/continuous_release.yml index 96522eb..41b8bec 100644 --- a/.github/workflows/continuous_release.yml +++ b/.github/workflows/continuous_release.yml @@ -4,6 +4,7 @@ on: workflow_run: workflows: [CI] types: [completed] + branches: [master] workflow_dispatch: inputs: release_impact: diff --git a/.github/workflows/integration_tests.yml b/.github/workflows/integration_tests.yml index 64fe033..111303a 100644 --- a/.github/workflows/integration_tests.yml +++ b/.github/workflows/integration_tests.yml @@ -2,7 +2,7 @@ name: Integration Tests on: schedule: - - cron: "30 5 * * *" + - cron: "30 5 * * 0" workflow_dispatch: inputs: track: diff --git a/Tests/Tools/WorkflowTriggers.Unit.Tests.ps1 b/Tests/Tools/WorkflowTriggers.Unit.Tests.ps1 new file mode 100644 index 0000000..5e9cc45 --- /dev/null +++ b/Tests/Tools/WorkflowTriggers.Unit.Tests.ps1 @@ -0,0 +1,22 @@ +#requires -modules @{ ModuleName = "Pester"; ModuleVersion = "5.9.0"; MaximumVersion = "5.9.999" } + +Describe 'GitHub Actions workflow triggers' -Tag Unit { + BeforeAll { + . "$PSScriptRoot/../Helpers/TestTools.ps1" + $script:projectRoot = Resolve-ProjectRoot + $script:workflowRoot = Join-Path $script:projectRoot '.github/workflows' + } + + It 'starts continuous release only for completed CI runs on master' { + $workflow = Get-Content (Join-Path $script:workflowRoot 'continuous_release.yml') -Raw + + $workflow | Should -Match '(?ms)workflow_run:.*?workflows:\s*\[CI\].*?types:\s*\[completed\].*?branches:\s*\[master\]' + } + + It 'runs integration tests weekly and on demand' { + $workflow = Get-Content (Join-Path $script:workflowRoot 'integration_tests.yml') -Raw + + $workflow | Should -Match 'cron:\s*"30 5 \* \* 0"' + $workflow | Should -Match 'workflow_dispatch:' + } +}