Workflow
Git + Gitflow
¿Qué es y por qué lo necesitamos?
- Historial de cambios
- Control de versiones
- Repositorios en la nube
- Colaboración
git add .
git commit -m 'Mensaje de commit'
git push
¿Qué no va en Git?
# dependencies
/node_modules
# testing
/coverage
/.out
# production
/build
/dist
**/*.css
# misc
.DS_Store
.env
npm-debug.log*
yarn-debug.log*
yarn-error.log*
.gitignore
Git merge be like:
¿Cómo hacer un buen commit?
- Empezar por un verbo (UPDATE, FIX, DELETE)
- Usar palabras clave fáciles de buscar
- No exceder 70 caracteres
¿Cada cuánto hacer commit?
Cuando el <3 lo quiera
- Funcionalidad básica
- Cambios drásticos
- Muchos archivos modificados
¿Qué es Gitflow?
https://github.com/nvie/gitflow
Master
Versión estable de la app que está en producción
Develop
La última versión de la aplicación
Features
Todas las funcionalidades en las que se están trabajando
Releases
Versión estable de la app a la que se hará QA
Hotfixes
Arreglos de último minuto sobre producción
Feature:
- Funcionalidad básica
- Responde a una historia de usuario
o un bug - Es independiente
¿Y si alguna funcionalidad lo arruina todo?
Develop:
- App con las últimas funcionalidades
- De aquí salen las features y los candidatos a release
Release:
- App con funcionalidades mínimas para lanzamiento
- Sitio web de staging
- QA
- Nombre: release-*
Master:
- Sitio web en producción
- Última versión estable de la app
¿Y si hay un bug en producción?
Hotfixes:
- Arreglos en producción
- Nombre: hotfix-*
Intentando recordar todos los pasos
https://danielkummer.github.io/git-flow-cheatsheet/
SourceTree al rescate
Continuous
Deployment
Develop
Release
Master
# This is a sample build configuration for PHP.
# Check our guides at https://confluence.atlassian.com/x/e8YWN for more examples.
# Only use spaces to indent your .yml configuration.
# -----
# You can specify a custom docker image from Docker Hub as your build environment.
image: node:8.9.1
pipelines:
branches:
master:
- step:
deployment: production
script:
- echo $MY_SSH_KEY > /root/.ssh/id_rsa.pub
- curl -o- -L https://yarnpkg.com/install.sh | bash -s -- --version 0.18.1
- export PATH=$HOME/.yarn/bin:$PATH
- yarn
- yarn build
- scp -r build root@159.65.230.100:/var/www/html
- scp deploy.sh root@159.65.230.100:/var/www/html
- ssh -T root@159.65.230.100 "cd /var/www/html; chmod +x ./deploy.sh; ./deploy.sh"
develop:
- step:
caches:
- node
deployment: staging
script:
- echo $MY_SSH_KEY > /root/.ssh/id_rsa.pub
- curl -o- -L https://yarnpkg.com/install.sh | bash -s -- --version 0.18.1
- export PATH=$HOME/.yarn/bin:$PATH
- yarn
- yarn build
- scp -r build root@159.65.230.109:/var/www/html
- scp deploy.sh root@159.65.230.109:/var/www/html
- ssh -T root@159.65.230.109 "cd /var/www/html; chmod +x ./deploy.sh; ./deploy.sh"
/bitbucket-pipelines.yml
¿Preguntas?
¡Gracias!
@waravahome
Links
- https://bitbucket.org/warava/warava-deployments/overview
- https://netlify.com
- https://danielkummer.github.io/git-flow-cheatsheet
- https://www.warava.com
deck
By TaLo V.
deck
- 132