CI/CD workflow

Continuous integration (CI) 🏭 refers to the implementation of an ongoing workflow that is executed regularly within the development process. Common tasks often found in CI workflows:

  • Code Compilation πŸ“¦: compile the project
  • Testing πŸ§ͺ: execute unit tests, ui tests...
  • Code analysis πŸͺ²: execute static and/or dynamic code analysis... to find bugs, code smells, dead code...
  • Code quality 🫧: formatting, code style...
  • ...

Continuous development (CD) 🚚 further extends it with the continuous deployment of artifacts. Common tasks are:

  • Monitoring πŸ“: generate and alert about metrics such as tests failed, code analysis failed, code quality not met...
  • Documentation πŸ“š: deploy generated documentation website
  • Release 🌍: deploy a release build
  • ...

All tasks may be executed on-demand or at specific events.


Benefits

Testing

You can configure your workflow to test your code in different environments (ex: Linux, Windows, macOS) and using different versions of tools (ex: different versions of node-js/java/...).

Isolation

Continuous workflow can work in isolated and reproducible environments, ensuring that the code does work on other machines.

Save time

It may take some time to implement complex CI/CD workflows, but once implemented, they reduce the time taken to manually perform tasks that could be automated.


πŸ—ƒοΈ External Solutions πŸ—ƒοΈ

There are many tools that can be integrated during CI/CD workflows that provide code quality, security reviews, dependency monitoring... Most are paid and free for open-source projects.

Code quality, coverage, and reviews

Security

  • snyk (security, good)

Language-specific

Random

  • weblate (πŸ‘», paid, continuous localization)

πŸ‘» To-do πŸ‘»

Stuff that I found, but never read/used yet.