12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- # Terraform Provider testing workflow.
- name: Tests
- # This GitHub action runs your tests for each pull request and push.
- # Optionally, you can turn it on using a schedule for regular testing.
- on:
- pull_request:
- paths-ignore:
- - 'README.md'
- push:
- paths-ignore:
- - 'README.md'
- # Testing only needs permissions to read the repository contents.
- permissions:
- contents: read
- jobs:
- # Ensure project builds before running testing matrix
- build:
- name: Build
- runs-on: ubuntu-latest
- timeout-minutes: 5
- steps:
- - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- - uses: actions/setup-go@41dfa10bad2bb2ae585af6ee5bb4d7d973ad74ed # v5.1.0
- with:
- go-version-file: 'go.mod'
- cache: true
- - run: go mod download
- - run: go build -v .
- - name: Run linters
- uses: golangci/golangci-lint-action@971e284b6050e8a5849b72094c50ab08da042db8 # v6.1.1
- with:
- version: latest
- generate:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- - uses: actions/setup-go@41dfa10bad2bb2ae585af6ee5bb4d7d973ad74ed # v5.1.0
- with:
- go-version-file: 'go.mod'
- cache: true
- # We need the latest version of Terraform for our documentation generation to use
- - uses: hashicorp/setup-terraform@b9cd54a3c349d3f38e8881555d616ced269862dd # v3.1.2
- with:
- terraform_wrapper: false
- - run: make generate
- - name: git diff
- run: |
- git diff --compact-summary --exit-code || \
- (echo; echo "Unexpected difference in directories after code generation. Run 'make generate' command and commit."; exit 1)
- # Run acceptance tests in a matrix with Terraform CLI versions
- test:
- name: Terraform Provider Acceptance Tests
- needs: build
- runs-on: ubuntu-latest
- timeout-minutes: 15
- strategy:
- fail-fast: false
- matrix:
- # list whatever Terraform versions here you would like to support
- terraform:
- - '1.0.*'
- - '1.1.*'
- - '1.2.*'
- - '1.3.*'
- - '1.4.*'
- steps:
- - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- - uses: actions/setup-go@41dfa10bad2bb2ae585af6ee5bb4d7d973ad74ed # v5.1.0
- with:
- go-version-file: 'go.mod'
- cache: true
- - uses: hashicorp/setup-terraform@b9cd54a3c349d3f38e8881555d616ced269862dd # v3.1.2
- with:
- terraform_version: ${{ matrix.terraform }}
- terraform_wrapper: false
- - run: go mod download
- - env:
- TF_ACC: "1"
- run: go test -v -cover ./internal/provider/
- timeout-minutes: 10
|