@ferrflow/doc 7.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (170) hide show
  1. package/docs-en/ci/github-actions.md +120 -0
  2. package/docs-en/ci/gitlab-ci.md +90 -0
  3. package/docs-en/ci/hosted-bot.md +82 -0
  4. package/docs-en/ci/pipeline-triggers.md +287 -0
  5. package/docs-en/configuration/config-file.md +1259 -0
  6. package/docs-en/configuration/formats.md +220 -0
  7. package/docs-en/configuration/monorepo.md +390 -0
  8. package/docs-en/installation.md +56 -0
  9. package/docs-en/introduction.md +56 -0
  10. package/docs-en/quickstart.md +66 -0
  11. package/docs-en/reference/api.md +106 -0
  12. package/docs-en/reference/cli.md +483 -0
  13. package/docs-en/reference/conventional-commits.md +103 -0
  14. package/docs-en/reference/errors.md +508 -0
  15. package/docs-en/verifying-releases.md +97 -0
  16. package/docs-fr/ci/github-actions.md +109 -0
  17. package/docs-fr/ci/gitlab-ci.md +77 -0
  18. package/docs-fr/ci/hosted-bot.md +82 -0
  19. package/docs-fr/ci/pipeline-triggers.md +238 -0
  20. package/docs-fr/configuration/config-file.md +839 -0
  21. package/docs-fr/configuration/formats.md +163 -0
  22. package/docs-fr/configuration/monorepo.md +357 -0
  23. package/docs-fr/installation.md +56 -0
  24. package/docs-fr/introduction.md +54 -0
  25. package/docs-fr/quickstart.md +63 -0
  26. package/docs-fr/reference/api.md +106 -0
  27. package/docs-fr/reference/cli.md +407 -0
  28. package/docs-fr/reference/conventional-commits.md +103 -0
  29. package/docs-fr/reference/errors.md +378 -0
  30. package/docs-fr/verifying-releases.md +97 -0
  31. package/docs-fr-v4/ci/github-actions.md +106 -0
  32. package/docs-fr-v4/ci/gitlab-ci.md +77 -0
  33. package/docs-fr-v4/ci/pipeline-triggers.md +214 -0
  34. package/docs-fr-v4/configuration/config-file.md +769 -0
  35. package/docs-fr-v4/configuration/formats.md +128 -0
  36. package/docs-fr-v4/configuration/monorepo.md +324 -0
  37. package/docs-fr-v4/installation.md +48 -0
  38. package/docs-fr-v4/introduction.md +54 -0
  39. package/docs-fr-v4/legal/telemetry.md +65 -0
  40. package/docs-fr-v4/quickstart.md +63 -0
  41. package/docs-fr-v4/reference/cli.md +130 -0
  42. package/docs-fr-v4/reference/conventional-commits.md +67 -0
  43. package/docs-fr-v4/reference/errors.md +372 -0
  44. package/docs-fr-v5/ci/github-actions.md +109 -0
  45. package/docs-fr-v5/ci/gitlab-ci.md +77 -0
  46. package/docs-fr-v5/ci/hosted-bot.md +82 -0
  47. package/docs-fr-v5/ci/pipeline-triggers.md +238 -0
  48. package/docs-fr-v5/configuration/config-file.md +812 -0
  49. package/docs-fr-v5/configuration/formats.md +150 -0
  50. package/docs-fr-v5/configuration/monorepo.md +357 -0
  51. package/docs-fr-v5/installation.md +56 -0
  52. package/docs-fr-v5/introduction.md +54 -0
  53. package/docs-fr-v5/legal/telemetry.md +26 -0
  54. package/docs-fr-v5/quickstart.md +63 -0
  55. package/docs-fr-v5/reference/api.md +106 -0
  56. package/docs-fr-v5/reference/cli.md +356 -0
  57. package/docs-fr-v5/reference/conventional-commits.md +88 -0
  58. package/docs-fr-v5/reference/errors.md +378 -0
  59. package/docs-fr-v5/verifying-releases.md +97 -0
  60. package/docs-fr-v6/ci/github-actions.md +109 -0
  61. package/docs-fr-v6/ci/gitlab-ci.md +77 -0
  62. package/docs-fr-v6/ci/hosted-bot.md +82 -0
  63. package/docs-fr-v6/ci/pipeline-triggers.md +238 -0
  64. package/docs-fr-v6/configuration/config-file.md +813 -0
  65. package/docs-fr-v6/configuration/formats.md +150 -0
  66. package/docs-fr-v6/configuration/monorepo.md +357 -0
  67. package/docs-fr-v6/installation.md +56 -0
  68. package/docs-fr-v6/introduction.md +54 -0
  69. package/docs-fr-v6/quickstart.md +63 -0
  70. package/docs-fr-v6/reference/api.md +106 -0
  71. package/docs-fr-v6/reference/cli.md +356 -0
  72. package/docs-fr-v6/reference/conventional-commits.md +88 -0
  73. package/docs-fr-v6/reference/errors.md +378 -0
  74. package/docs-fr-v6/verifying-releases.md +97 -0
  75. package/docs-v0/ci/github-actions.md +77 -0
  76. package/docs-v0/ci/gitlab-ci.md +59 -0
  77. package/docs-v0/configuration/config-file.md +97 -0
  78. package/docs-v0/configuration/formats.md +86 -0
  79. package/docs-v0/configuration/monorepo.md +59 -0
  80. package/docs-v0/installation.md +48 -0
  81. package/docs-v0/introduction.md +34 -0
  82. package/docs-v0/legal/telemetry.md +63 -0
  83. package/docs-v0/quickstart.md +58 -0
  84. package/docs-v0/reference/cli.md +95 -0
  85. package/docs-v0/reference/conventional-commits.md +68 -0
  86. package/docs-v1/ci/github-actions.md +76 -0
  87. package/docs-v1/ci/gitlab-ci.md +58 -0
  88. package/docs-v1/configuration/config-file.md +515 -0
  89. package/docs-v1/configuration/formats.md +115 -0
  90. package/docs-v1/configuration/monorepo.md +246 -0
  91. package/docs-v1/installation.md +48 -0
  92. package/docs-v1/introduction.md +39 -0
  93. package/docs-v1/legal/telemetry.md +63 -0
  94. package/docs-v1/quickstart.md +62 -0
  95. package/docs-v1/reference/cli.md +128 -0
  96. package/docs-v1/reference/conventional-commits.md +67 -0
  97. package/docs-v2/ci/github-actions.md +117 -0
  98. package/docs-v2/ci/gitlab-ci.md +90 -0
  99. package/docs-v2/ci/pipeline-triggers.md +263 -0
  100. package/docs-v2/configuration/config-file.md +806 -0
  101. package/docs-v2/configuration/formats.md +98 -0
  102. package/docs-v2/configuration/monorepo.md +324 -0
  103. package/docs-v2/installation.md +48 -0
  104. package/docs-v2/introduction.md +40 -0
  105. package/docs-v2/legal/telemetry.md +66 -0
  106. package/docs-v2/quickstart.md +63 -0
  107. package/docs-v2/reference/cli.md +130 -0
  108. package/docs-v2/reference/conventional-commits.md +67 -0
  109. package/docs-v2/reference/errors.md +500 -0
  110. package/docs-v2/self-hosting.md +101 -0
  111. package/docs-v3/ci/github-actions.md +117 -0
  112. package/docs-v3/ci/gitlab-ci.md +90 -0
  113. package/docs-v3/ci/pipeline-triggers.md +263 -0
  114. package/docs-v3/configuration/config-file.md +806 -0
  115. package/docs-v3/configuration/formats.md +99 -0
  116. package/docs-v3/configuration/monorepo.md +324 -0
  117. package/docs-v3/installation.md +48 -0
  118. package/docs-v3/introduction.md +40 -0
  119. package/docs-v3/legal/telemetry.md +66 -0
  120. package/docs-v3/quickstart.md +66 -0
  121. package/docs-v3/reference/cli.md +161 -0
  122. package/docs-v3/reference/conventional-commits.md +67 -0
  123. package/docs-v3/reference/errors.md +502 -0
  124. package/docs-v3/self-hosting.md +137 -0
  125. package/docs-v4/ci/github-actions.md +117 -0
  126. package/docs-v4/ci/gitlab-ci.md +90 -0
  127. package/docs-v4/ci/pipeline-triggers.md +263 -0
  128. package/docs-v4/configuration/config-file.md +850 -0
  129. package/docs-v4/configuration/formats.md +182 -0
  130. package/docs-v4/configuration/monorepo.md +324 -0
  131. package/docs-v4/installation.md +48 -0
  132. package/docs-v4/introduction.md +56 -0
  133. package/docs-v4/legal/telemetry.md +65 -0
  134. package/docs-v4/quickstart.md +66 -0
  135. package/docs-v4/reference/cli.md +161 -0
  136. package/docs-v4/reference/conventional-commits.md +67 -0
  137. package/docs-v4/reference/errors.md +502 -0
  138. package/docs-v4/self-hosting.md +137 -0
  139. package/docs-v5/ci/github-actions.md +120 -0
  140. package/docs-v5/ci/gitlab-ci.md +90 -0
  141. package/docs-v5/ci/hosted-bot.md +82 -0
  142. package/docs-v5/ci/pipeline-triggers.md +287 -0
  143. package/docs-v5/configuration/config-file.md +1133 -0
  144. package/docs-v5/configuration/formats.md +206 -0
  145. package/docs-v5/configuration/monorepo.md +390 -0
  146. package/docs-v5/installation.md +56 -0
  147. package/docs-v5/introduction.md +56 -0
  148. package/docs-v5/legal/telemetry.md +26 -0
  149. package/docs-v5/quickstart.md +66 -0
  150. package/docs-v5/reference/api.md +106 -0
  151. package/docs-v5/reference/cli.md +431 -0
  152. package/docs-v5/reference/conventional-commits.md +88 -0
  153. package/docs-v5/reference/errors.md +508 -0
  154. package/docs-v5/verifying-releases.md +97 -0
  155. package/docs-v6/ci/github-actions.md +120 -0
  156. package/docs-v6/ci/gitlab-ci.md +90 -0
  157. package/docs-v6/ci/hosted-bot.md +82 -0
  158. package/docs-v6/ci/pipeline-triggers.md +287 -0
  159. package/docs-v6/configuration/config-file.md +1134 -0
  160. package/docs-v6/configuration/formats.md +206 -0
  161. package/docs-v6/configuration/monorepo.md +390 -0
  162. package/docs-v6/installation.md +56 -0
  163. package/docs-v6/introduction.md +56 -0
  164. package/docs-v6/quickstart.md +66 -0
  165. package/docs-v6/reference/api.md +106 -0
  166. package/docs-v6/reference/cli.md +431 -0
  167. package/docs-v6/reference/conventional-commits.md +88 -0
  168. package/docs-v6/reference/errors.md +508 -0
  169. package/docs-v6/verifying-releases.md +97 -0
  170. package/package.json +17 -0
@@ -0,0 +1,77 @@
1
+ ---
2
+ title: GitLab CI
3
+ description: Lancer les releases FerrFlow automatiquement avec GitLab CI.
4
+ ---
5
+
6
+ ## Utiliser l'image Docker
7
+
8
+ L'image Docker officielle FerrFlow embarque le binaire et peut être utilisée directement comme image de job GitLab CI.
9
+
10
+ ```yaml
11
+ release:
12
+ image: ghcr.io/ferrlabs/ferrflow:latest
13
+ stage: release
14
+ script:
15
+ - ferrflow release
16
+ variables:
17
+ GITLAB_TOKEN: $CI_JOB_TOKEN
18
+ rules:
19
+ - if: $CI_COMMIT_BRANCH == "main"
20
+ when: on_success
21
+ ```
22
+
23
+ <aside class="ferr-aside ferr-aside--warning"><div class="ferr-aside__body"><p>Assurez-vous que votre runner CI clone avec l&#39;historique complet. Ajoutez <code>GIT_DEPTH: 0</code> aux variables du job pour désactiver le clonage superficiel.</p>
24
+ </div></aside>
25
+
26
+ ## Historique complet
27
+
28
+ ```yaml
29
+ release:
30
+ image: ghcr.io/ferrlabs/ferrflow:latest
31
+ variables:
32
+ GIT_DEPTH: 0 # historique complet — requis pour le scan des tags
33
+ GITLAB_TOKEN: $CI_JOB_TOKEN
34
+ script:
35
+ - ferrflow release
36
+ rules:
37
+ - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
38
+ ```
39
+
40
+ ## Utiliser un deploy token
41
+
42
+ Si `CI_JOB_TOKEN` n'a pas les permissions pour pousser des tags, créez un deploy token de projet avec l'accès `write_repository` et stockez-le comme variable CI :
43
+
44
+ ```yaml
45
+ release:
46
+ image: ghcr.io/ferrlabs/ferrflow:latest
47
+ variables:
48
+ GIT_DEPTH: 0
49
+ GITLAB_TOKEN: $FERRFLOW_DEPLOY_TOKEN # variable CI avec accès write_repository
50
+ script:
51
+ - ferrflow release
52
+ rules:
53
+ - if: $CI_COMMIT_BRANCH == "main"
54
+ ```
55
+
56
+ ## Commentaires de preview sur les MR
57
+
58
+ FerrFlow peut poster un commentaire sur chaque merge request montrant quelles versions seront bump\u00e9es au merge. Le commentaire est mis \u00e0 jour automatiquement \u00e0 chaque push.
59
+
60
+ ```yaml title=".gitlab-ci.yml"
61
+ ferrflow-preview:
62
+ image: ghcr.io/ferrlabs/ferrflow:latest
63
+ stage: test
64
+ variables:
65
+ GIT_DEPTH: 0
66
+ GITLAB_TOKEN: $CI_JOB_TOKEN
67
+ script:
68
+ - ferrflow check --comment
69
+ rules:
70
+ - if: $CI_PIPELINE_SOURCE == "merge_request_event"
71
+ ```
72
+
73
+ Si aucun changement publiable n'est d\u00e9tect\u00e9, le commentaire l'indique.
74
+
75
+ ## GitLab Releases
76
+
77
+ Lorsque `GITLAB_TOKEN` est d\u00e9fini, FerrFlow cr\u00e9e une GitLab Release avec le changelog g\u00e9n\u00e9r\u00e9 comme notes de release, de la m\u00eame mani\u00e8re que l'int\u00e9gration GitHub.
@@ -0,0 +1,214 @@
1
+ ---
2
+ title: Triggers de pipeline
3
+ description: Choisir la bonne strategie de declenchement CI pour vos releases FerrFlow.
4
+ ---
5
+
6
+ FerrFlow fonctionne avec n'importe quelle strategie de declenchement CI. Cette page couvre les patterns les plus courants, quand les utiliser, et comment ils interagissent avec `releaseCommitMode`.
7
+
8
+ ## Push sur main
9
+
10
+ La configuration la plus simple : executer `ferrflow release` a chaque push sur la branche par defaut. FerrFlow determine si une release est necessaire en se basant sur les commits depuis le dernier tag.
11
+
12
+ ```yaml title=".github/workflows/release.yml"
13
+ name: Release
14
+
15
+ on:
16
+ push:
17
+ branches: [main]
18
+
19
+ jobs:
20
+ release:
21
+ runs-on: ubuntu-latest
22
+ if: "!startsWith(github.event.head_commit.message, 'chore(release):')"
23
+ permissions:
24
+ contents: write
25
+ steps:
26
+ - uses: actions/checkout@v6
27
+ with:
28
+ fetch-depth: 0
29
+ token: ${{ secrets.FERRFLOW_TOKEN }}
30
+
31
+ - uses: FerrLabs/ferrflow@v4
32
+ env:
33
+ GITHUB_TOKEN: ${{ secrets.FERRFLOW_TOKEN }}
34
+ ```
35
+
36
+ **Quand l'utiliser :** La plupart des projets. Simple, previsible, entierement automatise.
37
+
38
+ **Compromis :** Chaque push sur main declenche un workflow, meme si aucune release n'est necessaire. FerrFlow se termine rapidement quand il n'y a pas de commits a releaser.
39
+
40
+ **Compatible avec :** `releaseCommitMode: commit` (par defaut) ou `none`.
41
+
42
+ ## Declenchement par tag
43
+
44
+ Executez votre pipeline de build/deploiement quand FerrFlow cree un nouveau tag. Cela separe l'etape de release (tagging) des etapes en aval (build, publication, deploiement).
45
+
46
+ ```yaml title=".github/workflows/build.yml"
47
+ name: Build & Publish
48
+
49
+ on:
50
+ push:
51
+ tags:
52
+ - 'v*' # single-repo: v1.2.0
53
+ - '*@v*' # monorepo: api@v1.2.0, site@v0.5.1
54
+
55
+ jobs:
56
+ build:
57
+ runs-on: ubuntu-latest
58
+ steps:
59
+ - uses: actions/checkout@v6
60
+
61
+ - name: Extraire la version du tag
62
+ id: version
63
+ run: |
64
+ TAG="${GITHUB_REF_NAME}"
65
+ VERSION="${TAG##*v}"
66
+ echo "tag=$TAG" >> "$GITHUB_OUTPUT"
67
+ echo "version=$VERSION" >> "$GITHUB_OUTPUT"
68
+
69
+ - name: Build
70
+ run: echo "Building version ${{ steps.version.outputs.version }}"
71
+ ```
72
+
73
+ **Quand l'utiliser :** Quand vous voulez decoupler le versioning du build/deploiement. Courant pour les builds Docker, la publication npm ou les releases binaires.
74
+
75
+ **Compromis :** Necessite deux workflows : un pour la release (push-to-main) et un pour le build en aval (tag-triggered). Ajoute quelques secondes de latence.
76
+
77
+ ### Monorepo : builds par package
78
+
79
+ Dans un monorepo, utilisez les patterns de tags pour ne builder que le package concerne :
80
+
81
+ ```yaml title=".github/workflows/build.yml"
82
+ name: Build Package
83
+
84
+ on:
85
+ push:
86
+ tags:
87
+ - 'api@v*'
88
+ - 'site@v*'
89
+
90
+ jobs:
91
+ build-api:
92
+ if: startsWith(github.ref_name, 'api@v')
93
+ runs-on: ubuntu-latest
94
+ steps:
95
+ - uses: actions/checkout@v6
96
+ - run: echo "Building API ${{ github.ref_name }}"
97
+
98
+ build-site:
99
+ if: startsWith(github.ref_name, 'site@v')
100
+ runs-on: ubuntu-latest
101
+ steps:
102
+ - uses: actions/checkout@v6
103
+ - run: echo "Building site ${{ github.ref_name }}"
104
+ ```
105
+
106
+ <aside class="ferr-aside ferr-aside--note"><div class="ferr-aside__body"><p>Si FerrFlow release plusieurs packages en une seule execution (ex: <code>api@v1.3.0</code> et <code>site@v0.5.1</code>), chaque tag declenche son propre workflow. Les builds s&#39;executent en parallele automatiquement.</p>
107
+ </div></aside>
108
+
109
+ ## Declenchement par release
110
+
111
+ Executez un pipeline quand une GitHub Release est publiee. Fonctionne bien avec le flag `--draft` de FerrFlow : FerrFlow cree une release brouillon, vous la reviewez, puis la publication declenche le build.
112
+
113
+ ```yaml title=".github/workflows/deploy.yml"
114
+ name: Deploy
115
+
116
+ on:
117
+ release:
118
+ types: [published]
119
+
120
+ jobs:
121
+ deploy:
122
+ runs-on: ubuntu-latest
123
+ steps:
124
+ - uses: actions/checkout@v6
125
+ with:
126
+ ref: ${{ github.event.release.tag_name }}
127
+
128
+ - name: Deploy
129
+ run: echo "Deploying ${{ github.event.release.tag_name }}"
130
+ ```
131
+
132
+ **Quand l'utiliser :** Quand vous voulez une etape de revue manuelle avant le deploiement. Creez des releases brouillon avec `ferrflow release --draft`, reviewez le changelog, puis publiez.
133
+
134
+ **Compromis :** Ajoute une etape manuelle. La release brouillon doit etre publiee avant que le deploy ne se lance.
135
+
136
+ ## Manuel (workflow_dispatch)
137
+
138
+ Declenchez une release a la demande avec un flag dry-run optionnel.
139
+
140
+ ```yaml title=".github/workflows/release.yml"
141
+ name: Release
142
+
143
+ on:
144
+ workflow_dispatch:
145
+ inputs:
146
+ dry_run:
147
+ description: 'Dry run (pas de tags, pas de commits, pas de releases)'
148
+ type: boolean
149
+ default: false
150
+
151
+ jobs:
152
+ release:
153
+ runs-on: ubuntu-latest
154
+ permissions:
155
+ contents: write
156
+ steps:
157
+ - uses: actions/checkout@v6
158
+ with:
159
+ fetch-depth: 0
160
+ token: ${{ secrets.FERRFLOW_TOKEN }}
161
+
162
+ - uses: FerrLabs/ferrflow@v4
163
+ with:
164
+ args: ${{ inputs.dry_run == true && '--dry-run' || '' }}
165
+ env:
166
+ GITHUB_TOKEN: ${{ secrets.FERRFLOW_TOKEN }}
167
+ ```
168
+
169
+ **Quand l'utiliser :** Equipes qui preferent des decisions de release explicites. Aussi utile comme workflow secondaire pour des releases ad-hoc.
170
+
171
+ ## Base sur une PR
172
+
173
+ Utilisez `releaseCommitMode: pr` pour que FerrFlow ouvre une pull request avec le bump de version au lieu de committer directement.
174
+
175
+ ```yaml title="ferrflow.json"
176
+ { 'workspace': { 'releaseCommitMode': 'pr' } }
177
+ ```
178
+
179
+ ```yaml title=".github/workflows/release.yml"
180
+ name: Release
181
+
182
+ on:
183
+ push:
184
+ branches: [main]
185
+
186
+ jobs:
187
+ release:
188
+ runs-on: ubuntu-latest
189
+ if: "!startsWith(github.event.head_commit.message, 'chore(release):')"
190
+ permissions:
191
+ contents: write
192
+ pull-requests: write
193
+ steps:
194
+ - uses: actions/checkout@v6
195
+ with:
196
+ fetch-depth: 0
197
+ token: ${{ secrets.FERRFLOW_TOKEN }}
198
+
199
+ - uses: FerrLabs/ferrflow@v4
200
+ env:
201
+ GITHUB_TOKEN: ${{ secrets.FERRFLOW_TOKEN }}
202
+ ```
203
+
204
+ **Quand l'utiliser :** Quand vous voulez reviewer les bumps de version, ou quand la protection de branche empeche les push directs sur main.
205
+
206
+ ## Resume
207
+
208
+ | Trigger | Automatique | Gate de revue | Ideal pour |
209
+ | ----------------- | ----------- | ------------- | ----------------------------- |
210
+ | Push sur main | Oui | Non | La plupart des projets |
211
+ | Tag-triggered | Oui | Non | Build/deploy decouples |
212
+ | Release-triggered | Non | Oui | Brouillon, revue, publication |
213
+ | Manuel | Non | Oui | Cadence de release controlee |
214
+ | Base sur PR | Partiel | Oui | Protection de branche / revue |