@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.
- package/docs-en/ci/github-actions.md +120 -0
- package/docs-en/ci/gitlab-ci.md +90 -0
- package/docs-en/ci/hosted-bot.md +82 -0
- package/docs-en/ci/pipeline-triggers.md +287 -0
- package/docs-en/configuration/config-file.md +1259 -0
- package/docs-en/configuration/formats.md +220 -0
- package/docs-en/configuration/monorepo.md +390 -0
- package/docs-en/installation.md +56 -0
- package/docs-en/introduction.md +56 -0
- package/docs-en/quickstart.md +66 -0
- package/docs-en/reference/api.md +106 -0
- package/docs-en/reference/cli.md +483 -0
- package/docs-en/reference/conventional-commits.md +103 -0
- package/docs-en/reference/errors.md +508 -0
- package/docs-en/verifying-releases.md +97 -0
- package/docs-fr/ci/github-actions.md +109 -0
- package/docs-fr/ci/gitlab-ci.md +77 -0
- package/docs-fr/ci/hosted-bot.md +82 -0
- package/docs-fr/ci/pipeline-triggers.md +238 -0
- package/docs-fr/configuration/config-file.md +839 -0
- package/docs-fr/configuration/formats.md +163 -0
- package/docs-fr/configuration/monorepo.md +357 -0
- package/docs-fr/installation.md +56 -0
- package/docs-fr/introduction.md +54 -0
- package/docs-fr/quickstart.md +63 -0
- package/docs-fr/reference/api.md +106 -0
- package/docs-fr/reference/cli.md +407 -0
- package/docs-fr/reference/conventional-commits.md +103 -0
- package/docs-fr/reference/errors.md +378 -0
- package/docs-fr/verifying-releases.md +97 -0
- package/docs-fr-v4/ci/github-actions.md +106 -0
- package/docs-fr-v4/ci/gitlab-ci.md +77 -0
- package/docs-fr-v4/ci/pipeline-triggers.md +214 -0
- package/docs-fr-v4/configuration/config-file.md +769 -0
- package/docs-fr-v4/configuration/formats.md +128 -0
- package/docs-fr-v4/configuration/monorepo.md +324 -0
- package/docs-fr-v4/installation.md +48 -0
- package/docs-fr-v4/introduction.md +54 -0
- package/docs-fr-v4/legal/telemetry.md +65 -0
- package/docs-fr-v4/quickstart.md +63 -0
- package/docs-fr-v4/reference/cli.md +130 -0
- package/docs-fr-v4/reference/conventional-commits.md +67 -0
- package/docs-fr-v4/reference/errors.md +372 -0
- package/docs-fr-v5/ci/github-actions.md +109 -0
- package/docs-fr-v5/ci/gitlab-ci.md +77 -0
- package/docs-fr-v5/ci/hosted-bot.md +82 -0
- package/docs-fr-v5/ci/pipeline-triggers.md +238 -0
- package/docs-fr-v5/configuration/config-file.md +812 -0
- package/docs-fr-v5/configuration/formats.md +150 -0
- package/docs-fr-v5/configuration/monorepo.md +357 -0
- package/docs-fr-v5/installation.md +56 -0
- package/docs-fr-v5/introduction.md +54 -0
- package/docs-fr-v5/legal/telemetry.md +26 -0
- package/docs-fr-v5/quickstart.md +63 -0
- package/docs-fr-v5/reference/api.md +106 -0
- package/docs-fr-v5/reference/cli.md +356 -0
- package/docs-fr-v5/reference/conventional-commits.md +88 -0
- package/docs-fr-v5/reference/errors.md +378 -0
- package/docs-fr-v5/verifying-releases.md +97 -0
- package/docs-fr-v6/ci/github-actions.md +109 -0
- package/docs-fr-v6/ci/gitlab-ci.md +77 -0
- package/docs-fr-v6/ci/hosted-bot.md +82 -0
- package/docs-fr-v6/ci/pipeline-triggers.md +238 -0
- package/docs-fr-v6/configuration/config-file.md +813 -0
- package/docs-fr-v6/configuration/formats.md +150 -0
- package/docs-fr-v6/configuration/monorepo.md +357 -0
- package/docs-fr-v6/installation.md +56 -0
- package/docs-fr-v6/introduction.md +54 -0
- package/docs-fr-v6/quickstart.md +63 -0
- package/docs-fr-v6/reference/api.md +106 -0
- package/docs-fr-v6/reference/cli.md +356 -0
- package/docs-fr-v6/reference/conventional-commits.md +88 -0
- package/docs-fr-v6/reference/errors.md +378 -0
- package/docs-fr-v6/verifying-releases.md +97 -0
- package/docs-v0/ci/github-actions.md +77 -0
- package/docs-v0/ci/gitlab-ci.md +59 -0
- package/docs-v0/configuration/config-file.md +97 -0
- package/docs-v0/configuration/formats.md +86 -0
- package/docs-v0/configuration/monorepo.md +59 -0
- package/docs-v0/installation.md +48 -0
- package/docs-v0/introduction.md +34 -0
- package/docs-v0/legal/telemetry.md +63 -0
- package/docs-v0/quickstart.md +58 -0
- package/docs-v0/reference/cli.md +95 -0
- package/docs-v0/reference/conventional-commits.md +68 -0
- package/docs-v1/ci/github-actions.md +76 -0
- package/docs-v1/ci/gitlab-ci.md +58 -0
- package/docs-v1/configuration/config-file.md +515 -0
- package/docs-v1/configuration/formats.md +115 -0
- package/docs-v1/configuration/monorepo.md +246 -0
- package/docs-v1/installation.md +48 -0
- package/docs-v1/introduction.md +39 -0
- package/docs-v1/legal/telemetry.md +63 -0
- package/docs-v1/quickstart.md +62 -0
- package/docs-v1/reference/cli.md +128 -0
- package/docs-v1/reference/conventional-commits.md +67 -0
- package/docs-v2/ci/github-actions.md +117 -0
- package/docs-v2/ci/gitlab-ci.md +90 -0
- package/docs-v2/ci/pipeline-triggers.md +263 -0
- package/docs-v2/configuration/config-file.md +806 -0
- package/docs-v2/configuration/formats.md +98 -0
- package/docs-v2/configuration/monorepo.md +324 -0
- package/docs-v2/installation.md +48 -0
- package/docs-v2/introduction.md +40 -0
- package/docs-v2/legal/telemetry.md +66 -0
- package/docs-v2/quickstart.md +63 -0
- package/docs-v2/reference/cli.md +130 -0
- package/docs-v2/reference/conventional-commits.md +67 -0
- package/docs-v2/reference/errors.md +500 -0
- package/docs-v2/self-hosting.md +101 -0
- package/docs-v3/ci/github-actions.md +117 -0
- package/docs-v3/ci/gitlab-ci.md +90 -0
- package/docs-v3/ci/pipeline-triggers.md +263 -0
- package/docs-v3/configuration/config-file.md +806 -0
- package/docs-v3/configuration/formats.md +99 -0
- package/docs-v3/configuration/monorepo.md +324 -0
- package/docs-v3/installation.md +48 -0
- package/docs-v3/introduction.md +40 -0
- package/docs-v3/legal/telemetry.md +66 -0
- package/docs-v3/quickstart.md +66 -0
- package/docs-v3/reference/cli.md +161 -0
- package/docs-v3/reference/conventional-commits.md +67 -0
- package/docs-v3/reference/errors.md +502 -0
- package/docs-v3/self-hosting.md +137 -0
- package/docs-v4/ci/github-actions.md +117 -0
- package/docs-v4/ci/gitlab-ci.md +90 -0
- package/docs-v4/ci/pipeline-triggers.md +263 -0
- package/docs-v4/configuration/config-file.md +850 -0
- package/docs-v4/configuration/formats.md +182 -0
- package/docs-v4/configuration/monorepo.md +324 -0
- package/docs-v4/installation.md +48 -0
- package/docs-v4/introduction.md +56 -0
- package/docs-v4/legal/telemetry.md +65 -0
- package/docs-v4/quickstart.md +66 -0
- package/docs-v4/reference/cli.md +161 -0
- package/docs-v4/reference/conventional-commits.md +67 -0
- package/docs-v4/reference/errors.md +502 -0
- package/docs-v4/self-hosting.md +137 -0
- package/docs-v5/ci/github-actions.md +120 -0
- package/docs-v5/ci/gitlab-ci.md +90 -0
- package/docs-v5/ci/hosted-bot.md +82 -0
- package/docs-v5/ci/pipeline-triggers.md +287 -0
- package/docs-v5/configuration/config-file.md +1133 -0
- package/docs-v5/configuration/formats.md +206 -0
- package/docs-v5/configuration/monorepo.md +390 -0
- package/docs-v5/installation.md +56 -0
- package/docs-v5/introduction.md +56 -0
- package/docs-v5/legal/telemetry.md +26 -0
- package/docs-v5/quickstart.md +66 -0
- package/docs-v5/reference/api.md +106 -0
- package/docs-v5/reference/cli.md +431 -0
- package/docs-v5/reference/conventional-commits.md +88 -0
- package/docs-v5/reference/errors.md +508 -0
- package/docs-v5/verifying-releases.md +97 -0
- package/docs-v6/ci/github-actions.md +120 -0
- package/docs-v6/ci/gitlab-ci.md +90 -0
- package/docs-v6/ci/hosted-bot.md +82 -0
- package/docs-v6/ci/pipeline-triggers.md +287 -0
- package/docs-v6/configuration/config-file.md +1134 -0
- package/docs-v6/configuration/formats.md +206 -0
- package/docs-v6/configuration/monorepo.md +390 -0
- package/docs-v6/installation.md +56 -0
- package/docs-v6/introduction.md +56 -0
- package/docs-v6/quickstart.md +66 -0
- package/docs-v6/reference/api.md +106 -0
- package/docs-v6/reference/cli.md +431 -0
- package/docs-v6/reference/conventional-commits.md +88 -0
- package/docs-v6/reference/errors.md +508 -0
- package/docs-v6/verifying-releases.md +97 -0
- 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'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'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 |
|