La integración continua es una práctica de ingeniería de software que consiste en hacer integraciones automáticas de un proyecto lo más a menudo posible, para así poder detectar fallos cuanto antes.
Podríamos pensar que en 2020 todos lo equipos integran continuamente, pero conversando con diferentes profesionales podemos ver que no siempre es así.
En esta sesión revisitaremos esta importante práctica, clave en DevOps, que por ser una de las más básicas, damos demasiadas veces por superada.
2. • Understand what Continuous Integration is
• See some simple pipelines
• Meet several techniques that could help us with CI
• Originalpresentation:https://github.com/dapr/docs/tree/master/presentations
Goals
3. What continuous
integration mean
to devs?
“Having a build pipeline that
- Builds the code for each pushed commit
- Executes the tests (if we managed to have them)
- Publish the build results (main test execution
results)
- Publish the artifacts required to deploy”
10x developer
4.
5. • Understand what Continuous Integration NOT is
• See some simple pipelines
• Meet several techniques that could help us with CI
• Originalpresentation:https://github.com/dapr/docs/tree/master/presentations
Goals
6.
7. Definition
https://martinfowler.com/articles/continuousIntegration.html
Continuous Integration is a software development practice where members of a team
integrate their work frequently, usually each person integrates at least daily - leading
to multiple integrations per day. Each integration is verified by an automated build
(including test) to detect integration errors as quickly as possible. Many teams find
that this approach leads to significantly reduced integration problems and allows a
team to develop cohesive software more rapidly. This article is a quick overview of
Continuous Integration summarizing the technique and its current usage.
8. Continuous Integration is a software development practice where members of a team integrate their work
frequently, usually each person integrates at least daily - leading to multiple integrations per day. Each
integration is verified by an automated build (including test) to detect integration errors as quickly as
possible. Many teams find that this approach leads to significantly reduced integration problems and allows
a team to develop cohesive software more rapidly. This article is a quick overview of Continuous Integration
summarizing the technique and its current usage.
11. Reading Fowler’s article
Continuous Integration is a software development practice where members of a team
integrate their work frequently, usually each person integrates at least daily - leading to
multiple integrations per day. Each integration is verified by an automated build (including
test) to detect integration errors as quickly as possible. Many teams find that this
approach leads to significantly reduced integration problems and allows a team to
develop cohesive software more rapidly. This article is a quick overview of Continuous
Integration summarizing the technique and its current usage.
Maintain a Single Source Repository.
Automate the Build
Make Your Build Self-Testing
Everyone Commits To the Mainline Every Day
Every Commit Should Build the Mainline on an
Integration Machine
Fix Broken Builds Immediately
Keep the Build Fast
14. Helpful Techniques
Some people think “Trunk Based Development” as “Trunk-only
Development”, which is not correct. TBD works well with short-
lived feature branches. In some cases, people still need to work
on a “short-lived” feature branch, and then merge it back to trunk
when possible.
Use pull requests in order to merge to trunk.
15. Helpful Techniques
Develop new features in unknown url’s (not discoverable by
users)
Use Feature Toggles (AKA Feature Flags)
Use patterns like “Branch by abstraction”
16. Helpful Techniques
"Branch by Abstraction" is a technique for making a large-scale
change to a software system in gradual way that allows you to
release the system regularly while the change is still in-progress.
https://martinfowler.com/bliki/BranchByAbstraction.html
20. • Understand what Continuous Integration is
• See some simple pipelines
• Meet several techniques that could help us with CI
• Originalpresentation:https://github.com/dapr/docs/tree/master/presentations
Goals
24. • Baby steps, even to adopt something like TBD
• Train & try
• Your context matters
• Originalpresentation:https://github.com/dapr/docs/tree/master/presentations
Last message
Editor's Notes
QUE QUIERO QUE CONSIGAMOS HOY?
Cual?
QUE QUIERO QUE CONSIGAMOS HOY?
In 1994, Grady Booch used the phrase continuous integration in Object-Oriented Analysis and Design with Applications (2nd edition)[9] to explain how, when developing using micro processes, "internal releases represent a sort of continuous integration of the system, and exist to force closure of the micro process".
Práctica de XP
Primera herramienta de CI en 2001
QUE QUIERO QUE CONSIGAMOS HOY?
Cual?
Mostrar una acción docker
Mostrar una acción docker
Calculadora
Mostramos workflows, hay uno por app
Mostramos que no funciona la resta bien, tiene un bug
Nos vamos al de C#, lo arreglamos y commiteamos
Vemos q se ejecuta el workflow y voila!