From f60d9d452dc8abd68f2e41a484becf676e6f08a9 Mon Sep 17 00:00:00 2001 From: TheMeinerLP Date: Thu, 13 Aug 2026 14:17:01 +0200 Subject: [PATCH 1/2] fix(ci): read the root release outputs without a path prefix release-please-action's setPathOutput() emits the bare output key when the package path is ., and only prefixes the component packages. The workflow read `.--release_created`, which is therefore always empty, so build-context and all six image publishes were skipped on the apus 0.2.0 release while publish-telemetry-addon -- whose prefixed output name was correct -- ran fine. Also exclude CHANGELOG.md from the lychee link check: release-please writes compare links pointing at the tag the release PR has not created yet, so every release PR failed the link check with a 404. markdownlint already ignores the file via `ignores`, but lychee is a separate step that does not read it. --- .github/workflows/markdown-lint.yml | 5 +++++ .github/workflows/release-please.yml | 8 ++++++-- .../plans/2026-08-12-phase-7-ci-und-auslieferung.md | 7 ++++--- 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/.github/workflows/markdown-lint.yml b/.github/workflows/markdown-lint.yml index 6519c97..6f31ea1 100644 --- a/.github/workflows/markdown-lint.yml +++ b/.github/workflows/markdown-lint.yml @@ -13,4 +13,9 @@ jobs: # The central default is `.markdownlint.json`, which this repo does not have -- # markdownlint-cli2 then throws and the job is always red. config-file: .markdownlint-cli2.jsonc + # CHANGELOG.md is generated by release-please and its compare links point at the tag + # the release PR has not created yet, so lychee 404s on every release PR. The file is + # already excluded from markdownlint via `ignores`; lychee is a separate step that does + # not read that config, so it needs its own exclusion. + lychee-args: "--max-redirects 5 --accept 200..=204,429 --no-progress --exclude-path CHANGELOG.md" secrets: inherit diff --git a/.github/workflows/release-please.yml b/.github/workflows/release-please.yml index 116ce7f..b6dbc51 100644 --- a/.github/workflows/release-please.yml +++ b/.github/workflows/release-please.yml @@ -12,8 +12,12 @@ jobs: release-please: runs-on: ubuntu-latest outputs: - root-released: ${{ steps.release.outputs['.--release_created'] }} - root-version: ${{ steps.release.outputs['.--version'] }} + # The root package is the one exception to the `--` output naming: + # release-please-action's setPathOutput() emits the bare key when the package path + # is ".", so `.--release_created` is always empty and every image publish silently + # skipped. Only the two component packages carry a prefix. + root-released: ${{ steps.release.outputs.release_created }} + root-version: ${{ steps.release.outputs.version }} telemetry-released: ${{ steps.release.outputs['telemetry-addon--release_created'] }} paper-released: ${{ steps.release.outputs['paper-worldpush--release_created'] }} steps: diff --git a/docs/superpowers/plans/2026-08-12-phase-7-ci-und-auslieferung.md b/docs/superpowers/plans/2026-08-12-phase-7-ci-und-auslieferung.md index 0030410..aa99c1e 100644 --- a/docs/superpowers/plans/2026-08-12-phase-7-ci-und-auslieferung.md +++ b/docs/superpowers/plans/2026-08-12-phase-7-ci-und-auslieferung.md @@ -172,7 +172,7 @@ git commit -m "ci: adopt the central OneLiteFeather Renovate preset" **Interfaces:** -- Produces: Die Workflow-Outputs `.--release_created`, `.--version`, `telemetry-addon--release_created`, `paper-worldpush--release_created`. Task 9 und Task 10 hängen sich daran. +- Produces: Die Workflow-Outputs `release_created`, `version`, `telemetry-addon--release_created`, `paper-worldpush--release_created`. Task 9 und Task 10 hängen sich daran. **Achtung:** Das Root-Paket ist die Ausnahme von der `--`-Regel — `setPathOutput()` in der Action setzt bei Paketpfad `.` den blanken Schlüssel. `.--release_created` ist immer leer. - [ ] **Schritt 1: Aktuellen Zustand festhalten** @@ -293,8 +293,9 @@ jobs: release-please: runs-on: ubuntu-latest outputs: - root-released: ${{ steps.release.outputs['.--release_created'] }} - root-version: ${{ steps.release.outputs['.--version'] }} + # Root package: bare keys, no prefix -- setPathOutput() special-cases path ".". + root-released: ${{ steps.release.outputs.release_created }} + root-version: ${{ steps.release.outputs.version }} telemetry-released: ${{ steps.release.outputs['telemetry-addon--release_created'] }} paper-released: ${{ steps.release.outputs['paper-worldpush--release_created'] }} steps: From fa33c51be12a65590d9bbb8b48943573f37e9d1c Mon Sep 17 00:00:00 2001 From: TheMeinerLP Date: Thu, 13 Aug 2026 14:21:10 +0200 Subject: [PATCH 2/2] fix(ci): ignore every release track's changelog, not just the root one release-please writes one CHANGELOG.md per package, so telemetry-addon/CHANGELOG.md was linted and failed on MD012. A bare "CHANGELOG.md" ignore pattern only matches the file in the repository root. --- .markdownlint-cli2.jsonc | 5 ++++- .../plans/2026-08-12-phase-7-ci-und-auslieferung.md | 4 +++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/.markdownlint-cli2.jsonc b/.markdownlint-cli2.jsonc index ba3f9ea..6576ba7 100644 --- a/.markdownlint-cli2.jsonc +++ b/.markdownlint-cli2.jsonc @@ -9,6 +9,9 @@ "ignores": [ "**/node_modules/**", "**/build/**", - "CHANGELOG.md" + // One changelog per release track, not just the root one: release-please writes + // telemetry-addon/CHANGELOG.md and paper-worldpush/CHANGELOG.md too. A bare + // "CHANGELOG.md" matches only the root file and leaves the others linted. + "**/CHANGELOG.md" ] } diff --git a/docs/superpowers/plans/2026-08-12-phase-7-ci-und-auslieferung.md b/docs/superpowers/plans/2026-08-12-phase-7-ci-und-auslieferung.md index aa99c1e..ead05db 100644 --- a/docs/superpowers/plans/2026-08-12-phase-7-ci-und-auslieferung.md +++ b/docs/superpowers/plans/2026-08-12-phase-7-ci-und-auslieferung.md @@ -435,7 +435,9 @@ Das Repository trägt ungewöhnlich viel Dokumentation (Design-Spec, Pläne, Spi "ignores": [ "**/node_modules/**", "**/build/**", - "CHANGELOG.md" + // Alle Changelogs, nicht nur das im Wurzelverzeichnis: Release Please schreibt + // eines je Release-Spur. Ein blankes "CHANGELOG.md" trifft nur die Wurzeldatei. + "**/CHANGELOG.md" ] } ```