Why: Companies need to be able to deliver high-quality software at a rapid pace to meet up with the fast pace of changes that happen in technology. This is where Continuous Integration and Continuous Delivery (CI/CD) pipelines come into play. - What's: CI/CD is a process that allows developers to create, test, and deploy their code faster and with fewer errors. In this blog post, we’ll take a closer look at the CI/CD pipeline and how it can help companies streamline their development process.
A CI/CD pipeline is a set of processes that automate the build, testing, and deployment of software.
It begins with Continuous Integration CI, which involves merging all code changes into a shared repository several times a day.
Each time a developer pushes their code to the repository, an automated process is triggered to build the application and run a series of tests (e.g., unit tests, integration tests, and code style checks).
The primary goal of CI is to identify and address integration issues early in the development cycle, ensuring that the codebase is always in a working state.
Once the code passes all tests, it moves on to Continuous Delivery.
Continuous Deployment CD is an extension of Continuous Integration CI, where changes that pass all the tests are automatically deployed to production or staging environments without manual intervention.
In Continuous Deployment, the deployment process is automated, reducing the risk of human errors and streamlining the release cycle.
Continuous Deployment is commonly used in projects with mature CI processes, high test coverage, and a strong focus on automation.
Version control: Git — tracks code changes, branching, collaboration
Build tools: Make, Gradle — automate compiling, testing, packaging
Testing tools: JUnit, Selenium — automate unit and web testing
Deployment tools: Jenkins, Travis CI, Bamboo — automate CI/CD pipelines and deployments
Monitoring tools: Datadog, New Relic, Nagios — monitor performance, errors, and system health
Continuous improvement: Ongoing optimization using metrics (build time, errors, performance)
What is a CI/CD pipeline? https://blog.openreplay.com/what-is-a-ci-cd-pipeline/
CI/CD Pipeline Explained in Simple Terms https://bytebytego.com/guides/cicd-pipeline-explained-in-simple-terms/
Training: https://www.udemy.com/courses/search/?src=ukw&q=GIt+&ratings=4.5&lang=en
Les bases de Git Vidéo: https://www.youtube.com/watch?v=gp_k0UVOYMw
Apprendre Git in 1H: https://www.youtube.com/watch?v=_WBBiGiCOEA
master — default development branch
Example: your main production code lives here
origin — default remote name
Example: git push origin main
HEAD — current commit
Example: “where you are right now”
HEAD^ — parent commit
Example: previous commit before HEAD
foo..bar — commit range
Example: git log feature..main
git help <command>
Example: git help commit
git init — create new repo
Example: git init in an empty folder
git add — stage files
Example: git add index.js
git clone <src> <dest> — copy a repo
Example: git clone https://github.com/user/app.git
git commit -a -m "msg" — commit changes
Example: git commit -a -m "fix login bug"
git push origin main — upload commits
Example: git push origin feature/login
git tag v1.0.0 — create tag
Example: git tag -a v1.0.0 -m "first release"
git tag -d v1.0.0 — delete tag
Example: git tag -d beta1
git fetch — download changes
Example: git fetch origin
git pull — fetch + merge
Example: git pull origin main
git apply patch.diff — apply patch
Example: git apply fix.diff
git status — see changes
Example: shows modified/untracked files
git diff — compare changes
Example: git diff HEAD
git log — show history
Example: git log --oneline
git blame file.js — see who changed each line
git show <id> — show commit details
Example: git show 4f9a2c1
git reset --hard — reset to last commit
Example: undo all local changes
git revert HEAD — create a revert commit
git commit --amend — edit last commit
Example: fix commit message
git checkout <id> <file> — restore old version
Example: git checkout HEAD^ index.js
git branch feature/login — create branch
git checkout feature/login — switch branch
git checkout -b dev — create + switch
git merge feature/login — merge branch
git diff --ours — show your version
git diff --theirs — show incoming version
git log --merge — show conflict commits
git archive — create release zip
Example: git archive -o release.zip HEAD
git bisect — find bug commit
Example: binary search for bad commit
git cherry-pick <id> — copy commit
git stash — save work temporarily
Example: git stash push -m "WIP"
git add file.js — track file
git rm file.js — delete file
git mv old new — rename file
git ls-files — list tracked files
git clean -f — remove untracked files
Working directory — your files
Index — staged changes
HEAD — last commit
Remote (origin) — server copy
Push — local → remote
Pull — remote → local