Repository navigation
feat: reusable workflow call-techdocs (build TechDocs in CI, publish to MinIO) - #219
Merged
Merged
Conversation
…to MinIO) Builds a repo's Backstage TechDocs with the techdocs Dagger module (v0.138.0): the entity is read from catalog-info.yaml, the site is generated and exported, and with publish: true uploaded to an S3/MinIO bucket for a Backstage running techdocs.builder: external. PRs call it with publish: false, so a broken mkdocs.yml fails the PR. Defaults to the dagger-labda runners, which reach the lab MinIO; a private CA comes in as a PEM input. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013V2i6bap7BGa4ZMJRjBEAP
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
New
call-techdocs.yaml. It builds a repo's Backstage TechDocs with the Dagger moduletechdocs(stuttgart-things/dagger#425, released asv0.138.0). Withpublish: trueit uploads the docs to S3/MinIO, for a Backstage runningtechdocs.builder: external(stuttgart-things/flux#732).Steps:
dagger call … entityreads<namespace>/<kind>/<name>fromcatalog-info.yaml, or takesinputs.entity. It also runs on PRs, so a missing or duplicatetechdocs-reffails early.generate … export --path ./techdocs-site, then checks thattechdocs_metadata.jsonexists.publish: true): uploads the exported site, so what was built is exactly what gets published. The CA comes in as an optional PEM input, for the Vault PKI.Defaults:
runs-on: dagger-labda(the lab MinIO cannot be reached from GitHub-hosted runners),bucket: techdocs. The secretsTECHDOCS_S3_ACCESS_KEY/_SECRET_KEYare only needed for publishing. Dagger is called with rawdagger call(as incall-dagger-ko-build.yaml), so the entity can be passed cleanly between steps.README: a usage block (build on PRs, publish on
main).Tests
actionlint1.7.7: clean.entityandgenerateran through the Dagger engine in the smoke test in dagger#425;publishwas tested locally against S3 (moto).Generated by Claude Code