diff --git a/.github/workflows/pdf.yml b/.github/workflows/pdf.yml index 08cda2b..3366ec0 100644 --- a/.github/workflows/pdf.yml +++ b/.github/workflows/pdf.yml @@ -6,7 +6,14 @@ on: branches: [master] tags: ["v*"] pull_request: + # Lancement manuel (onglet Actions, « Run workflow ») : avec un tag, + # crée aussi le tag et la release sur le commit choisi, sans terminal. workflow_dispatch: + inputs: + tag: + description: "Tag de la release à créer (ex. v2026.3), vide pour les PDF seuls" + required: false + default: "" permissions: contents: read @@ -43,7 +50,9 @@ jobs: release: needs: pdf - if: startsWith(github.ref, 'refs/tags/v') + if: >- + startsWith(github.ref, 'refs/tags/v') + || (github.event_name == 'workflow_dispatch' && inputs.tag != '') runs-on: ubuntu-24.04 permissions: contents: write @@ -56,10 +65,17 @@ jobs: - name: Créer la release env: GH_TOKEN: ${{ github.token }} - TAG: ${{ github.ref_name }} + TAG: ${{ inputs.tag || github.ref_name }} REPO: ${{ github.repository }} - run: > - gh release create "$TAG" pdf/*.pdf - --repo "$REPO" - --title "Formation Linux $TAG" - --generate-notes + # --target : en lancement manuel, le tag n'existe pas encore ; + # gh le crée sur le commit qui a produit les PDF. + run: | + case "$TAG" in + v*) ;; + *) echo "Tag invalide : $TAG (doit commencer par v)"; exit 1 ;; + esac + gh release create "$TAG" pdf/*.pdf \ + --repo "$REPO" \ + --target "$GITHUB_SHA" \ + --title "Formation Linux $TAG" \ + --generate-notes diff --git a/CLAUDE.md b/CLAUDE.md index b094a00..e718108 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -272,4 +272,6 @@ Chaque concept n'est enseigné que dans UN chapitre. Dans les autres chapitres, git tag v2026.1 && git push origin v2026.1 ``` + Sans terminal : onglet **Actions** du dépôt, workflow **PDF**, **Run workflow** sur `master`, en indiquant le tag (ex. `v2026.3`) : la CI crée le tag et la release. + - La mise en page riche (cadre de couleur, numérotation romaine des pages liminaires, recto-verso) est une évolution possible, pas l'état actuel.