From 81078302431673ba6f28427ebdd88b3380d7da3f Mon Sep 17 00:00:00 2001 From: Stuart McLaren Date: Wed, 4 Sep 2024 14:57:02 +0100 Subject: [PATCH] Add documentation CI job To ensure that 'make docs' functionality does not break. --- .github/workflows/docs.yaml | 28 ++++++++++++++++++++++++++++ Makefile | 20 +++++++++++--------- 2 files changed, 39 insertions(+), 9 deletions(-) create mode 100644 .github/workflows/docs.yaml diff --git a/.github/workflows/docs.yaml b/.github/workflows/docs.yaml new file mode 100644 index 0000000..e855bd2 --- /dev/null +++ b/.github/workflows/docs.yaml @@ -0,0 +1,28 @@ +# Copyright 2024 Hewlett Packard Enterprise Development LP +name: Docs + +on: + push: + branches: + - main + pull_request: +jobs: + docs: + runs-on: ubuntu-24.04 + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-go@v2 + with: + go-version: '1.22.3' + - uses: hashicorp/setup-terraform@v3 + with: + terraform_version: 1.9.5 + # set wrapper to false, otherwise any time + # terraform is run the first line of stdout is + # the path to the terraform binary. This causes + # eg the output of "terraform providers schema -json" + # be unusable + terraform_wrapper: false + - run: make install-experimental + - run: go install github.com/hashicorp/terraform-plugin-docs/cmd/tfplugindocs@v0.19.4 + - run: make docs diff --git a/Makefile b/Makefile index e08ab82..147336f 100644 --- a/Makefile +++ b/Makefile @@ -26,12 +26,14 @@ install-experimental: go install -tags experimental ./... docs: - echo -e ${PROVIDER_TF} > __docs.tf; \ - tempfile=$$(mktemp); \ - terraform providers schema -json | \ - sed 's@github.com/hewlettpackard/hpegl-pcbe-terraform-resources@hpegl@g' > $$tempfile; \ - tfplugindocs generate --providers-schema $$tempfile -provider-name hpegl; - rm __docs.tf + printf "${PROVIDER_TF}" > __docs.tf; \ + tfconfig=$$(mktemp); \ + sed "s@__HOME__@${HOME}@g" test/.terraformrc > $$tfconfig; \ + schemafile=$$(mktemp); \ + env TF_CLI_CONFIG_FILE=$$tfconfig terraform providers schema -json | \ + sed 's@github.com/hewlettpackard/hpegl-pcbe-terraform-resources@hpegl@g' > $$schemafile; \ + rm __docs.tf; \ + tfplugindocs generate --provider-name hpegl --providers-schema $$schemafile test: go test ./... @@ -42,9 +44,9 @@ testacc: testacc-simulation: go install -tags experimental,simulation ./cmd/... - tempfile=$$(mktemp); \ - sed "s@__HOME__@${HOME}@g" test/.terraformrc > $$tempfile; \ - env TF_ACC=1 env TF_CLI_CONFIG_FILE=$$tempfile \ + tfconfig=$$(mktemp); \ + sed "s@__HOME__@${HOME}@g" test/.terraformrc > $$tfconfig; \ + env TF_ACC=1 env TF_CLI_CONFIG_FILE=$$tfconfig \ go test -v -tags simulation ./test/... lint: