Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Leverage your CI/CD at the next level with Gith...

Leverage your CI/CD at the next level with Github actions

Define branch managment system, handle versionning, maintain code quality, prevent security breaches, deploy frequently... Build a good CI/CD for your project can be difficult ! In this talk we will see how to take advantage of features offered by Github like Github Action to build efficient CI/CD that will enhanced your development workflow.

Avatar for Sylvain PONTOREAU

Sylvain PONTOREAU

November 15, 2022
Tweet

More Decks by Sylvain PONTOREAU

Other Decks in Programming

Transcript

  1. Github Leverage your CI/CD at the next level with Github

    actions Sylvain Pontoreau Felix Billon Aachen – 15/11/2022
  2. History • October 2007 : development starting • April 2008

    : official launch • July 2010 : 1 million of repositories • September 2011 : over a 1 million of users • April 2016 : 14 million of users and 35 million of repositories • June 2018 : purchase by Microsoft
  3. Github offers all classic basic features to manage repositories :

    • Source code management • Ticket management • CI/CD • Project management • Wiki • Platform extension through marketplace • ... Basic features
  4. • A good branch system that allows you to :

    • Help developers to work on the same base code by minimize conflicts • Understand where stable code is, where code needed to be testing is, … • Have a clean history • Deploy faster, rollback faster • … Branch system
  5. 👍 • 🔒 Protect production code • 🔖 Allow to

    maintain different version • 🌟 Most popular Branch system : Gitflow 👎 • 🐢 Slower deployment (❌ for CD) • 👿 Merge hell • 🔀 Many branches • 🧟 Deprecated
  6. 👎 • 🤝 Need good collaboration • ⚔ Take care

    of conflicts Branch system : Trunk based 👍 • 🚀 Fast deployment (✔ for CD) • 1⃣ A branch to rule them all
  7. 👎 • ⚠ Risky without quality assurance Branch system :

    Github flow 👍 • 🚀 Push on main ➡ prod (✔ fast CD) • 󰔨 Few branches • 󰳘 Force high quality code • 🚚 Ship feature everyday (Kanban friendly)
  8. 👎 • 🗂 Need good team organization Branch system :

    Release flow 👍 • 🚀 Fast deployment (✔ for CD) • 📦 Release focused • 😎 Simple to learn and setup • 🔁 Great for iteration (SCRUM friendly) • 🔖 Allow to maintain different version
  9. • Many others : Gitlab flow, Oneflow, … • To

    choose between them wisely : • Understand the size and the needs of your project • Check the maturity of the developer team Branch system
  10. Repository Configuration • Implement branch system : • Protect branches

    and tags • Set conditions for merge request • … • Secure your repository : • Force MFA • Only accept signed commit • Valide commit author • Activate dependabot • …