This lesson is still being designed and assembled (Pre-Alpha version)

Continuous Integration and Continuous Delivery: Glossary

Key Points

Introduction
  • CI/CD automates as much as possible outside of core development tasks.

  • CI/CD allows for a more iterative way of testing, using and working on your application.

Setup Git repository
  • When creating a GitHub repository keep permissions in mind.

  • Templates are a quick way to scaffold your application.

  • Don’t create your own license.

Run application locally
  • Write an appropriate amount of tests for your purpose.

  • Make sure to update your readme.md intermittently during development.

Create a container image with Docker
  • Docker solves ‘it only runs on my laptop’ issues.

  • Docker images can be reused to share container blueprints.

  • Sharing Docker images saves time recreating work and environments

Automate tests using GitHub Actions
  • GitHub provides a lot of relevant templates for common workflows.

  • Make sure to install the tests requirements in the GitHub job before running the tests.

  • Generate a status badge with GitHub to show if the tests passed directly in your README.

Automate Docker build with GitHub Actions
  • Use the official GitHub Action from Docker.

  • Set sensible informations, such as passwords, in GitHub Secrets.

Automate the publication of your package using GitHub Actions
  • Use template provided by GitHub.

  • Set PyPI credentials in GitHub Secrets.

  • Add a version badge to display the latest version available on PyPI in your README.

Add a new feature and create new release
  • Just do not mess up the version number change.

Complete and publish the documentation
  • No one wants to read your dirty code to understand how to run your application, not even yourself in 2 months.

  • So please publish a short, but exhaustive documentation about how to deploy and use your application.

Create a GitHub Action for your package
  • When creating a GitHub repository keep permissions in mind.

  • Templates are a quick way to scaffold your application.

Continous Deployment (CD) using GitHub Actions
  • GitHub Pages is the best solution for static website (and its free).

  • Be careful to not reach limitations set by the cloud provider you use.

Glossary

FIXME