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/.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 0030410..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 @@ -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: @@ -434,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" ] } ```