Skip to content

CI & CD

Mathieu Bélanger edited this page Nov 23, 2020 · 1 revision

In order to minimize manual labor and avoid potential errors when building and deploying Polydodo, a CI/CD system is used.

The system needs to accomplish the following tasks:

  • Build and deploy the webapp to a website (GitHub Pages)

  • Build, deploy and release the mobile to the app store

  • Build, deploy and release the backend to GitHub and make the latest release downloadable from the webapp

  • Automatically draft GitHub releases and include the mobile app and the backend into the release artifacts

📋 Workflows

To achieve that, we use GitHub Actions and divide the CI/CD into 4 main workflows:

Delete Draft Releases

This workflow deletes the latest GitHub draft release. This is currently a workaround because of https://github.com/actions/upload-release-asset/pull/22

🦅 Backend

This workflow:

  • Builds a standalone executable for Windows, MacOS and Linux using PyInstaller
  • Creates and pushes a Docker image containing the Liunx executable when merging to master
  • Uploads the different executables to a GitHub draft release when merging to master

💻 Web

This workflow:

📱 Mobile

This workflow:

  • Builds the Flutter mobile application targeting Android and iOS

  • Uploads the Android .apk to a GitHub draft release when merging to master

Clone this wiki locally