
The `go test` command cannot detect any issues when running `go generate`. This ensures that any `go generate` commands can successfully execute, while also ensuring there are no dangling Git differences afterwards to prevent cases where the documentation is not symmetrically updated.
78 lines
2.1 KiB
YAML
78 lines
2.1 KiB
YAML
# 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
|
|
|
|
# Default values to simplify job configurations below.
|
|
env:
|
|
# Go language version to use for building. This value should also be updated
|
|
# in the release workflow if changed.
|
|
GO_VERSION: '1.17'
|
|
|
|
jobs:
|
|
# Ensure project builds before running testing matrix
|
|
build:
|
|
name: Build
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 5
|
|
steps:
|
|
- uses: actions/setup-go@v2
|
|
with:
|
|
go-version: ${{ env.GO_VERSION }}
|
|
- uses: actions/checkout@v3
|
|
- run: go mod download
|
|
- run: go build -v .
|
|
|
|
generate:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/setup-go@v3
|
|
with:
|
|
go-version: ${{ env.GO_VERSION }}
|
|
- uses: actions/checkout@v3
|
|
- 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.*'
|
|
steps:
|
|
- uses: actions/setup-go@v2
|
|
with:
|
|
go-version: ${{ env.GO_VERSION }}
|
|
- uses: hashicorp/setup-terraform@v1
|
|
with:
|
|
terraform_version: ${{ matrix.terraform }}
|
|
terraform_wrapper: false
|
|
- uses: actions/checkout@v3
|
|
- run: go mod download
|
|
- env:
|
|
TF_ACC: "1"
|
|
run: go test -v -cover ./internal/provider/
|
|
timeout-minutes: 10
|