aboutsummaryrefslogtreecommitdiff
path: root/.github/workflows/test.yml
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--.github/workflows/test.yml78
1 files changed, 78 insertions, 0 deletions
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
new file mode 100644
index 0000000..b742054
--- /dev/null
+++ b/.github/workflows/test.yml
@@ -0,0 +1,78 @@
+# 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@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
+ - uses: actions/setup-go@fac708d6674e30b6ba41289acaab6d4b75aa0753 # v4.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@639cd343e1d3b897ff35927a75193d57cfcba299 # v3.6.0
+ with:
+ version: latest
+
+ generate:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
+ - uses: actions/setup-go@fac708d6674e30b6ba41289acaab6d4b75aa0753 # v4.0.1
+ with:
+ go-version-file: 'go.mod'
+ cache: true
+ - 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.4.*'
+ - '1.5.*'
+ steps:
+ - uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
+ - uses: actions/setup-go@fac708d6674e30b6ba41289acaab6d4b75aa0753 # v4.0.1
+ with:
+ go-version-file: 'go.mod'
+ cache: true
+ - uses: hashicorp/setup-terraform@633666f66e0061ca3b725c73b2ec20cd13a8fdd1 # v2.0.3
+ 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