123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- # 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@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
- - uses: actions/setup-go@cdcb36043654635271a94b9a6d1392de5bb323a7 # v5.0.1
- with:
- go-version-file: 'go.mod'
- cache: true
- - run: go mod download
- - run: go build -v .
- - name: Run linters
- uses: golangci/golangci-lint-action@a4f60bb28d35aeee14e6880718e0c85ff1882e64 # v6.0.1
- with:
- version: latest
- generate:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
- - uses: actions/setup-go@cdcb36043654635271a94b9a6d1392de5bb323a7 # v5.0.1
- with:
- go-version-file: 'go.mod'
- cache: true
- # Temporarily download Terraform 1.8 prerelease for function documentation support.
- # When Terraform 1.8.0 final is released, this can be removed.
- - uses: hashicorp/setup-terraform@651471c36a6092792c552e8b1bef71e592b462d8 # v3.1.1
- with:
- terraform_version: '1.8.0-alpha20240216'
- terraform_wrapper: false
- - run: go generate ./...
- - name: git diff
- run: |
- git diff --compact-summary --exit-code || \
- (echo; echo "Unexpected difference in directories after code generation. Run 'go 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@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
- - uses: actions/setup-go@cdcb36043654635271a94b9a6d1392de5bb323a7 # v5.0.1
- with:
- go-version-file: 'go.mod'
- cache: true
- - uses: hashicorp/setup-terraform@651471c36a6092792c552e8b1bef71e592b462d8 # v3.1.1
- 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
|