telegraf-build/README.md
The Telegraf release build process (using code in influxdata/telegraf-internal) includes automation for building influxdata/docs-v2 documentation from influxdata/telegraf plugin README files.
Telegraf team triggers the release script, which generates a docs binary.
The binary takes a Telegraf release version tag as an argument.
When executed (by the Telegraf team for an official release or on your local system for testing), the binary:
a. Clones the docs-v2 repo and the telegraf repo and checks out the specified release tag.
b. Applies docs-v2 frontmatter templates (docs-v2/telegraf-build/templates) to the telegraf plugin README files.
c. Commits the changes to the local docs-v2 repo and creates a PR for the changes.
[!Warn]
Use the following steps for local testing and preview only.
Don't commit the generated files to version control.
Submit edits and fixes to the
/influxdata/telegrafrepo. The Telegraf release process triggers documentation builds and submits them toinfluxdata/docs-v2for review.
Follow steps to test the Telegraf docs build process and preview generated docs on your local system (not for an official Telegraf release):
The Dockerfile leverages Docker's BuildKit and the --ssh flag to use your SSH keys for GitHub authentication.
Open a terminal and navigate to the directory containing the Dockerfile (./scripts), then enter the following command to build the Docker image:
docker build --ssh default -t telegraf-build .
Run the Docker container using the built image and mount a volume to /app/repos/docs-v2/telegraf:
docker run --rm \
-v /Users/me/Documents/github/docs-v2/content/telegraf:/app/repos/docs-v2/content/telegraf \
telegraf-build v1.33.0
Replace /Users/me/Documents/github/docs-v2/content/telegraf with the actual path on your host machine where you want to access the generated documentation.
To test manually run the build process on your local system
(without a release triggered by influxdata/telegraf):
Install a recent version of Go for your system.
Clone the influxdata/telegraf-internal repo to your local system (for example, to ~/Documents/github/telegraf-internal)
To generate the release binaries (telegraf-internal/telegraf_release/bin/),change into the ~/Documents/github/telegraf-internal directory and run make.
To generate the documentation, run the telegraf-internal/telegraf_release/bin/docs binary and include the Telegraf release tag to build--for example:
# Change to `telegraf-build` in your local docs-v2 repo.
cd ~/Documents/github/docs-v2/telegraf-build
# Run the `docs` binary to generate the documentation.
~/Documents/github/telegraf-internal/telegraf_release/bin/docs v1.33.0
You can skip steps for local testing:
~/Documents/github/telegraf-internal/telegraf_release/bin/docs -skip changelog,pull-request v1.33.0
The binary looks for .tmpl template files in ./templates telegraf-internal/telegraf_release/docs/templates/, however we expect to permanently move them to docs-v2/telegraf-build/templates soon.
The docs binary:
a. Clones the docs-v2 repo and the telegraf repo and checks out the specified Telegraf release tag.
b. Commits the changes to the local docs-v2 repo and creates a PR for the changes.
To test the templates and preview the changes on your local machine, change to telegraf-build/repos/docs-v2, install dependencies, and start Hugo:
cd ~/Documents/github/docs-v2/telegraf-build/repos/docs-v2
# Install dependencies
yarn install
# Start Hugo server
npx hugo serve
Alternatively, copy the generated files your existing local docs-v2 repo (but, don't commit them to version control).