Skip to content

CI

CI #2439

Workflow file for this run

name: CI
on:
workflow_dispatch:
push:
paths-ignore:
- README.md
- CHANGELOG.md
- CONTRIBUTING.md
schedule:
# run CI nightly at 00:11UTC
- cron: "11 0 * * *"
jobs:
build:
name: Build
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version-file: "go.mod"
cache: true
- name: Lint
uses: golangci/golangci-lint-action@v6.1.0
with:
version: latest
- name: Build
run: go build -v .
test-us:
name: Test US
needs: build
runs-on: ubuntu-latest
timeout-minutes: 15
concurrency:
group: hnytf-testacc-us
env:
TERRAFORM_VERSION: "1.0.11"
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version-file: "go.mod"
cache: true
- name: Setup test environment
env:
HONEYCOMB_API_KEY: ${{ secrets.HONEYCOMB_API_KEY }}
HONEYCOMB_DATASET: testacc
run: |
go install github.com/jstemmer/go-junit-report/v2@latest
./scripts/setup-testsuite-dataset
- name: Run client acceptance tests
timeout-minutes: 10
env:
HONEYCOMB_API_KEY: ${{ secrets.HONEYCOMB_API_KEY }}
HONEYCOMB_KEY_ID: ${{ secrets.HONEYCOMB_KEY_ID }}
HONEYCOMB_KEY_SECRET: ${{ secrets.HONEYCOMB_KEY_SECRET }}
HONEYCOMB_DATASET: testacc
run: |
go test -v ./client/... \
-coverprofile=client-coverage.txt \
-covermode=atomic | \
go-junit-report \
-set-exit-code \
-iocopy \
-out client-report.xml
- uses: hashicorp/setup-terraform@v3
with:
terraform_version: ${{ env.TERRAFORM_VERSION }}
terraform_wrapper: false
- name: Run TF acceptance tests
timeout-minutes: 10
env:
HONEYCOMB_API_KEY: ${{ secrets.HONEYCOMB_API_KEY }}
HONEYCOMB_KEY_ID: ${{ secrets.HONEYCOMB_KEY_ID }}
HONEYCOMB_KEY_SECRET: ${{ secrets.HONEYCOMB_KEY_SECRET }}
HONEYCOMB_DATASET: testacc
TF_ACC: 1
TF_ACC_TERRAFORM_VERSION: ${{ env.TERRAFORM_VERSION }}
run: |
go test -v ./internal/... ./honeycombio/... \
-coverprofile=tf-coverage.txt \
-covermode=atomic | \
go-junit-report \
-set-exit-code \
-iocopy \
-out provider-report.xml
- name: Cleanup Dangling Resources
if: ${{ always() }}
timeout-minutes: 5
env:
HONEYCOMB_API_KEY: ${{ secrets.HONEYCOMB_API_KEY }}
HONEYCOMB_KEY_ID: ${{ secrets.HONEYCOMB_KEY_ID }}
HONEYCOMB_KEY_SECRET: ${{ secrets.HONEYCOMB_KEY_SECRET }}
HONEYCOMB_DATASET: testacc
run: make sweep
- name: Generate Test Summary
if: always()
uses: test-summary/action@v2
with:
paths: "*-report.xml"
show: "fail, skip"
- name: Generate Coverage Report
uses: codecov/codecov-action@v4.5.0
with:
token: ${{ secrets.CODECOV_TOKEN }}
test-eu:
name: Test EU
needs: build
runs-on: ubuntu-latest
timeout-minutes: 15
concurrency:
group: hnytf-testacc-eu
env:
TERRAFORM_VERSION: "1.0.11"
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version-file: "go.mod"
cache: true
- name: Setup test environment
env:
HONEYCOMB_API_ENDPOINT: https://api.eu1.honeycomb.io
HONEYCOMB_API_KEY: ${{ secrets.HONEYCOMB_API_KEY_EU }}
HONEYCOMB_DATASET: testacc
run: |
go install github.com/jstemmer/go-junit-report/v2@latest
./scripts/setup-testsuite-dataset
- name: Run client acceptance tests
timeout-minutes: 10
env:
HONEYCOMB_API_ENDPOINT: https://api.eu1.honeycomb.io
HONEYCOMB_API_KEY: ${{ secrets.HONEYCOMB_API_KEY_EU }}
HONEYCOMB_KEY_ID: ${{ secrets.HONEYCOMB_KEY_ID_EU }}
HONEYCOMB_KEY_SECRET: ${{ secrets.HONEYCOMB_KEY_SECRET_EU }}
HONEYCOMB_DATASET: testacc
run: |
go test -v ./client/... \
-coverprofile=client-coverage.txt \
-covermode=atomic | \
go-junit-report \
-set-exit-code \
-iocopy \
-out client-report.xml
- uses: hashicorp/setup-terraform@v3
with:
terraform_version: ${{ env.TERRAFORM_VERSION }}
terraform_wrapper: false
- name: Run TF acceptance tests
timeout-minutes: 10
env:
HONEYCOMB_API_ENDPOINT: https://api.eu1.honeycomb.io
HONEYCOMB_API_KEY: ${{ secrets.HONEYCOMB_API_KEY_EU }}
HONEYCOMB_KEY_ID: ${{ secrets.HONEYCOMB_KEY_ID_EU }}
HONEYCOMB_KEY_SECRET: ${{ secrets.HONEYCOMB_KEY_SECRET_EU }}
HONEYCOMB_DATASET: testacc
TF_ACC: 1
TF_ACC_TERRAFORM_VERSION: ${{ env.TERRAFORM_VERSION }}
run: |
go test -v ./internal/... ./honeycombio/... \
-coverprofile=tf-coverage.txt \
-covermode=atomic | \
go-junit-report \
-set-exit-code \
-iocopy \
-out provider-report.xml
- name: Cleanup Dangling Resources
if: ${{ always() }}
timeout-minutes: 5
env:
HONEYCOMB_API_ENDPOINT: https://api.eu1.honeycomb.io
HONEYCOMB_API_KEY: ${{ secrets.HONEYCOMB_API_KEY_EU }}
HONEYCOMB_KEY_ID: ${{ secrets.HONEYCOMB_KEY_ID_EU }}
HONEYCOMB_KEY_SECRET: ${{ secrets.HONEYCOMB_KEY_SECRET_EU }}
HONEYCOMB_DATASET: testacc
run: make sweep
- name: Generate Test Summary
if: always()
uses: test-summary/action@v2
with:
paths: "*-report.xml"
show: "fail, skip"
- name: Generate Coverage Report
uses: codecov/codecov-action@v4.5.0
with:
token: ${{ secrets.CODECOV_TOKEN }}