Repository navigation
ci: wydanie tylko z main albo z tagu na main - #50
Merged
Merged
Conversation
Reczne "Run workflow" na innej galezi dawalo release=true i wydawalo nie scalony kod (GitHub Release + cask w tapie). Teraz: - decide: galaz inna niz main = dry run; tag v* tylko gdy commit jest na main (merge-base), inaczej blad; - IS_RELEASE w jobie release sprawdza ref niezaleznie od decide; - token tapu tylko przy wydaniu i w PR, nie w dry run z galezi. .github/test-release-workflow.sh uruchamia skrypt decide ze stubem git dla kazdego rodzaju refu i sprawdza, ze kazdy krok z sekretem albo publikujacy ma warunek IS_RELEASE. Wpiety w ci.yml. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AU1Mhxpy65J75YYTkmt7NF
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.
Problem
workflow_dispatch(„Run workflow”) uruchomione na gałęzi innej niżmainliczyłorelease=true→ GitHub Release, tag i aktualizacja casku wRenaCode/homebrew-tapz nie scalonego kodu. Tagv*wypchnięty na dowolny commit też wydawał.Zmiany (
.github/workflows/release.yml)decide: ref inny niżrefs/heads/main(i nie tag) = dry run (jak PR). Tagv*wydaje tylko, gdy jego commit jest namain(git merge-base --is-ancestor $GITHUB_SHA refs/remotes/origin/main), inaczej job kończy się błędem. Checkout wdecidezfetch-depth: 0.release:IS_RELEASE = decide.release == 'true' && (ref == main || ref startsWith refs/tags/v).Tap token/Check tap access: tylko przy wydaniu albo w PR (sonda instalacji aplikacji w PR zostaje), nie w dry runie z gałęzi.maini z tagu namaindziała jak dotąd.Test (
.github/test-release-workflow.sh, jobRelease workflow guardwci.yml)decidei URUCHAMIA go ze stubemgitdla: push/dispatch na main (wersja 1.3.2), PR, dispatch i push na gałęzi, tag na main, tag spoza main (błąd); stubmerge-baseakceptuje tylko$GITHUB_SHAwobecrefs/remotes/origin/main;IS_RELEASEporównywane w całości;releasewyliczane z pliku: każdy, który czytasecrets.*/ token tapu albo publikuje, musi miećif: env.IS_RELEASE == 'true'(wyjątek: token tapu — wydanie albo PR).merge-basewobecHEAD, bezmerge-base,IS_RELEASEbez refu albo z|| true,Push cask to tapbezif,Tap tokenbezif, złyifpoid:, nowy krok z sekretem bezif.Ograniczenia — rekomendacja dla właściciela (ustawienia repo, NIE zmienione w tym PR)
Plik workflow chroni przed pomyłką, nie przed kimś z prawem zapisu: bieg używa pliku workflow ze swojego refu, więc gałąź może te warunki usunąć. Twarda blokada to ustawienia repo:
release) z regułą wdrożeń tylko dlamaini tagówv*; przenieść do niego sekretyCM_SIGNING_P12_BASE64,CM_SIGNING_P12_PASSWORD,TAP_APP_KEYi dodaćenvironment:do jobarelease.v*(tworzenie tylko przez właściciela / Actions).Ryzyko pozostające: PR z gałęzi tego repo uruchamia swój kod przed krokiem
Tap token(np. podmianagitprzez$GITHUB_PATH) i może przeczytać token tapu (1 h, tylkohomebrew-tap). Zostawione celowo dla sondy instalacji aplikacji w PR; environment z p. 1 to zamyka.Nie uruchamiano
workflow_dispatch.🤖 Generated with Claude Code
https://claude.ai/code/session_01AU1Mhxpy65J75YYTkmt7NF