4.1 CI/CD Concepts
Continuous Integration (CI): The practice of merging all developers' working copies to a shared mainline several times a day.
Continuous Delivery (CD): An approach in which teams produce software in short cycles, ensuring that the software can be reliably released at any time.
4.2 GitHub Actions
GitHub Actions makes it easy to automate all your software workflows, now with world-class CI/CD. Build, test, and deploy your code right from GitHub.
name: CI
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Run a one-line script
run: echo Hello, world!
4.3 Jenkins & GitLab CI
Jenkins: The leading open source automation server, Jenkins provides hundreds of plugins to support building, deploying and automating any project.
GitLab CI: A tool built into GitLab for software development through the continuous methodologies.
4.4 GitOps (ArgoCD)
GitOps is a way of implementing Continuous Deployment for cloud native applications. It focuses on a developer-centric experience when operating infrastructure, by using tools developers are already familiar with, including Git and Continuous Deployment tools.
🎯 Practical Exercise
Create a GitHub Action workflow that runs tests on every push to the repository. If possible, add a step to build a Docker image.