
Most of the content is inspired by existing content in https://github.com/hashicorp/terraform-provider-scaffolding.
63 lines
1.6 KiB
YAML
63 lines
1.6 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@v2
|
|
- run: go mod download
|
|
- run: go build -v .
|
|
|
|
# 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.*'
|
|
steps:
|
|
- uses: actions/setup-go@v2
|
|
with:
|
|
go-version: ${{ env.GO_VERSION }}
|
|
- uses: hashicorp/setup-terraform@v1
|
|
with:
|
|
go-version: ${{ matrix.terraform }}
|
|
- uses: actions/checkout@v2
|
|
- run: go mod download
|
|
- env:
|
|
TF_ACC: "1"
|
|
run: go test -v -cover ./internal/provider/
|
|
timeout-minutes: 10
|