diff --git a/.github/workflows/test-suite.yml b/.github/workflows/test-suite.yml index 3a8e30e0c6..c1fd8b0b6a 100644 --- a/.github/workflows/test-suite.yml +++ b/.github/workflows/test-suite.yml @@ -2,24 +2,47 @@ name: 'Test Suite' on: workflow_dispatch: + inputs: + terraform_matrix: + description: 'Terraform version matrix (JSON array)' + default: '["1.6.x", "1.5.x", "1.4.x", "1.3.x", "1.2.x"]' + provider_matrix: + description: 'MongoDB Atlas Provider version matrix for running migration tests (JSON array)' + default: '["", "1.12.3"]' # "" for latest version + schedule: - cron: "0 0 * * *" # workflow runs every day at midnight UTC - + +concurrency: + group: '${{ github.workflow }}' + cancel-in-progress: false + jobs: + versions: + env: + schedule_terraform_matrix: '["1.6.x", "1.0.8"]' + schedule_provider_matrix: '["", "1.12.3]' # "" for latest version + runs-on: ubuntu-latest + outputs: + terraform_matrix: ${{ inputs.terraform_matrix || vars.schedule_terraform_matrix }} + provider_matrix: ${{ inputs.provider_matrix || vars.schedule_provider_matrix }} + steps: + - if: false + run: echo jobs need steps clean-before: secrets: inherit uses: ./.github/workflows/cleanup-test-env.yml mig-tests: - needs: clean-before + needs: [clean-before, versions] if: ${{ !cancelled() }} strategy: max-parallel: 1 fail-fast: false matrix: - terraform_version: ['', '1.0.8'] # '' for latest version - provider_version: ['', '1.11.1'] # '' for latest version + terraform_version: ${{ fromJSON(needs.versions.outputs.terraform_matrix) }} + provider_version: ${{ fromJSON(needs.versions.outputs.provider_matrix) }} name: mig-tests-${{ matrix.terraform_version || 'latest' }}-${{ matrix.provider_version || 'latest' }} secrets: inherit uses: ./.github/workflows/migration-tests.yml @@ -28,13 +51,13 @@ jobs: provider_version: ${{ matrix.provider_version }} acc-tests: - needs: mig-tests + needs: [mig-tests, versions] if: ${{ !cancelled() }} strategy: max-parallel: 1 fail-fast: false matrix: - terraform_version: ['', '1.0.8'] # '' for latest version + terraform_version: ${{ fromJSON(needs.versions.outputs.terraform_matrix) }} name: acc-tests-${{ matrix.terraform_version || 'latest' }} secrets: inherit uses: ./.github/workflows/acceptance-tests.yml diff --git a/.tool-versions b/.tool-versions index d70ca2f542..f087445c0b 100644 --- a/.tool-versions +++ b/.tool-versions @@ -1 +1,2 @@ golang 1.21.3 +terraform 1.6.6