diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 81d6557..d1b4a22 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -143,11 +143,12 @@ jobs: - name: Compute Docker tags id: docker_tags run: | + OWNER_LC="$(printf '%s' "$GITHUB_REPOSITORY_OWNER" | tr '[:upper:]' '[:lower:]')" { echo "tags<> "$GITHUB_OUTPUT" diff --git a/docs/distribution.md b/docs/distribution.md index f976ab4..9d2e7b7 100644 --- a/docs/distribution.md +++ b/docs/distribution.md @@ -113,8 +113,8 @@ docker run --rm -i --network host ableton-mind Release workflow tags for stable releases: ```text -ghcr.io/Pantani/ableton-mind:v0.1.0 -ghcr.io/Pantani/ableton-mind:latest +ghcr.io/pantani/ableton-mind:v0.1.0 +ghcr.io/pantani/ableton-mind:latest ``` Prerelease tags keep only their exact version tag and do not move `latest`. diff --git a/docs/pt/distribution.md b/docs/pt/distribution.md index 37c44b6..3442a98 100644 --- a/docs/pt/distribution.md +++ b/docs/pt/distribution.md @@ -113,8 +113,8 @@ docker run --rm -i --network host ableton-mind Tags do workflow de release para versoes estaveis: ```text -ghcr.io/Pantani/ableton-mind:v0.1.0 -ghcr.io/Pantani/ableton-mind:latest +ghcr.io/pantani/ableton-mind:v0.1.0 +ghcr.io/pantani/ableton-mind:latest ``` Prerelease tags mantem apenas a tag exata da versao e nao movem `latest`. diff --git a/tests/distribution-validation.test.ts b/tests/distribution-validation.test.ts index 9550f32..926e61f 100644 --- a/tests/distribution-validation.test.ts +++ b/tests/distribution-validation.test.ts @@ -103,6 +103,14 @@ describe(".github/workflows/*.yml — parseability + required keys", () => { expect(rel).toMatch(/gh release (create|upload)/); }); + it("release.yml normalizes ghcr.io owner names to lowercase", () => { + const rel = read(".github/workflows/release.yml"); + expect(rel).toContain("OWNER_LC="); + expect(rel).toContain("ghcr.io/${OWNER_LC}/ableton-mind:${GITHUB_REF_NAME}"); + expect(rel).toContain("ghcr.io/${OWNER_LC}/ableton-mind:latest"); + expect(rel).not.toContain("ghcr.io/${GITHUB_REPOSITORY_OWNER}/ableton-mind"); + }); + it("release.yml runs all release-readiness gates before publish steps", () => { const rel = read(".github/workflows/release.yml"); expect(rel).toContain("npm run test:bridge");