| name: Nightly E2E tests |
| |
| on: |
| schedule: |
| - cron: '0 4 * * *' |
| workflow_dispatch: |
| |
| env: |
| GOPROXY: https://proxy.golang.org/ |
| |
| jobs: |
| # resolve-versions allows us to show resolved Go versions in job titles |
| # for added clarity and quick orientation in a long list of past jobs |
| resolve-versions: |
| runs-on: ubuntu-latest |
| timeout-minutes: 5 |
| steps: |
| - |
| name: Resolve old stable version |
| id: oldstable |
| uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491 # v5.0.0 |
| with: |
| go-version: oldstable |
| - |
| name: Resolve stable version |
| id: stable |
| uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491 # v5.0.0 |
| with: |
| go-version: stable |
| outputs: |
| oldstable: ${{ steps.oldstable.outputs.go-version }} |
| stable: ${{ steps.stable.outputs.go-version }} |
| |
| e2e-tests: |
| name: e2e-tests (${{ matrix.os }}, go ${{ matrix.go_version }}) |
| needs: resolve-versions |
| runs-on: ${{ matrix.os }} |
| timeout-minutes: 60 |
| strategy: |
| fail-fast: false |
| matrix: |
| os: |
| - ubuntu-latest |
| - windows-latest |
| - macos-latest |
| go_version: |
| - ${{ needs.resolve-versions.outputs.oldstable }} |
| - ${{ needs.resolve-versions.outputs.stable }} |
| steps: |
| - |
| name: Checkout |
| uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 |
| - |
| name: Set up Go |
| uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491 # v5.0.0 |
| with: |
| go-version: ${{ matrix.go_version }} |
| - |
| name: Run E2E tests |
| env: |
| TFEXEC_E2ETEST_VERSIONS: refs/heads/main |
| run: go test -race -timeout=30m -v ./tfexec/internal/e2etest |