#+LINK_HOME: index.html
#+INCLUDE: header.org
#+ATTR_HTML: :title Git Flow Full Example with branch develop, master, support 0.1x, support 0.2.x and four tags include GitLab Pipeline Status, Ready and Approve MR for branchs feature, hotfix and release
Hace 10 años que uso git flow
1 en gcoop
2 y hace 2 años que en un proyecto grande lo usamos conjuntamente con
el circuito de MRs
3 de GitLab
4 para
clarificar un poco todo el proceso decidí utilizar GraphViz
En el diagrama de ejemplo se plantean 2 features (foo
y
bar
), cada uno es para un release en particular
(v0.1.0
y v0.2.0
) y posterior a cada release
se generan 2 hotfix (v0.1.1
y v0.2.2
).
El código del grafo
5 esta disponible en el repo
osiux-graphviz
6
El flujo de desarrollo es idéntico tanto para feature
,
release
y hotfix
, es decir, todos los
branchs requieren los siguientes pasos:
- Crear branch e inmediatamente, crear MR en Draft
- Desarrollar feature, release y/o hotfix
- Verificar Pipeline Success de GitLab (caso contrario volver a 2)
- Si el desarrollo esta listo, marcar Ready
- Revisar MR y Aprobar solo si hay PS (caso contrario volver a 2)
- Si se completaron todos los pasos anteriores, realizar merge
type | tag/branch | Create MR | PS | Ready | Review MR | Approve | Merge |
---|---|---|---|---|---|---|---|
Tag Releases | v0.1.0, v0.2.0, v0.1.1, v0.2.2 |
N/A | GitLab | N/A | N/A | N/A | N/A |
Stable Releases | master, support/0.1.x, support/0.2.x |
N/A | GitLab | N/A | N/A | N/A | N/A |
Release Branchs | release/0.1.0, release/0.2.0 |
Developer | GitLab | Developer | Mantainer | Mantainer | Mantainer |
Hotfix Branchs | hotfix/0.1.1, hotfix/0.2.2 |
Developer | GitLab | Developer | Mantainer | Mantainer | Mantainer |
Feature Branchs | feature/foo, feature/bar |
Developer | GitLab | Developer | Mantainer | Mantainer | Mantainer |
feature, release y tag #
- crear issue en
project#123
- crear branch
feature/foo
saliendo dedevelop
en el repo que corresponda - crear MR
Draf: Resolve feature/foo "Issue Tittle"
conCloses project#123
- branch
feature/foo
debe tener MR con PS - crear documentación en wiki
foo/foo_bar_vM.N.P
- branch
release/M.N.P
debe tener PS - tag
vM.N.P
hotfix #
- crear branch
support/M.N.x
saliedo de tagvM.M.x
- crear branch
hotfix/foobar
saliendo desupport/M.N.x
- branch
hotfix/foobar
debe tener MR con PS
Referencias #
item | descripción |
---|---|
MR | Merge Request |
PS | Pipeline Success |
M.N.P |
MAJOR.MINOR.PATCH |
Tal vez te interese leer #
- Automate conversion of blog from org-mode to Html, Markdown
and Gemini using Docker image
alpine-org2blog
and GitLab CI - howto launch gitlab ci from other gitlab ci repo using trigger
- Automatizar la implementación de los recursos de AWX con GitLab CI/CD y Ansible Tools
- cómo usar GitLab desde la línea de comandos
ChangeLog #
2023-05-12 10:40
agregar Graficar ejemplo completo de integrar GitFlow y GitLab MRs