# This GitHub action runs your tests for each commit push and/or PR. Optionally # you can turn it on using a cron schedule for regular testing. # name: Tests on: pull_request: paths-ignore: - 'README.md' push: paths-ignore: - 'README.md' # For systems with an upstream API that could drift unexpectedly (like most SaaS systems, etc.), # we recommend testing at a regular interval not necessarily tied to code changes. This will # ensure you are alerted to something breaking due to an API change, even if the code did not # change. # schedule: # - cron: '0 13 * * *' jobs: # ensure the code builds... build: name: Build runs-on: ubuntu-latest timeout-minutes: 5 steps: - name: Set up Go uses: actions/setup-go@v3 with: go-version: '1.16' id: go - name: Check out code into the Go module directory uses: actions/checkout@v3 - name: Get dependencies run: | go mod download - name: Build run: | go build -v . generate: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: actions/setup-go@v3 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 core versions test: name: Matrix Test 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: - '0.12.*' - '0.13.*' - '0.14.*' - '0.15.*' - '1.0.*' - '1.1.*' steps: - name: Set up Go uses: actions/setup-go@v3 with: go-version: '1.17' id: go - uses: hashicorp/setup-terraform@v2 with: terraform_version: ${{ matrix.terraform }} terraform_wrapper: false - name: Check out code into the Go module directory uses: actions/checkout@v3 - name: Get dependencies run: | go mod download - name: TF acceptance tests timeout-minutes: 10 env: TF_ACC: "1" # Set whatever additional acceptance test env vars here. You can # optionally use data from your repository secrets using the # following syntax: # SOME_VAR: ${{ secrets.SOME_VAR }} run: | go test -v -cover ./internal/provider/