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

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

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.

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 • …