adriancast/django-template

Investigate how to integrate CI/CD with github actions

adriancast opened this issue ยท 5 comments

would be nice to give a built-in CI/CD integration with Github actions. Things to check:

  • How to build docker images and publish them to a repository like docker hub.
  • Check how to control the deployment with this images. Not sure if the docker-compose image file should be pinned or should do something like download the latest image available on the docker image repository

Hello, if nobody is working on this, I can take it ๐Ÿ˜ƒ

Hi @myugen,

If you need some background or anything just let me know. I am not really sure of what's the best approach to implement this but I am sure once is done this feature will be a game-changer for all the users of this template.

Regards,
Adriรกn

I would like to add Jose to the conversation, today we finished some investigation of how this should be implemented this issue.

The key points are:

  • Use Github actions
  • Use DockerHub to host the Docker images

The process will consist of the following phases:

  1. We should add Github actions to the generated projects.
  2. The GitHub action should build the web service and push it to DockerHub.
  3. Once pushed it should execute a command to deploy the app in the production server. We could add a deploy.sh command that restarts that pulls the latest image and restarts the server. This file should be added in the root of the generated project.

How the execute a script in the production server using Github actions: Link

How to update and restart the production web service in the production server: Link

Yeah, let me have a try!

Hello @sanmojose,

Your changes are already merged. This feature is live! ๐ŸŽ‰๐ŸŽ‰๐ŸŽ‰๐ŸŽ‰๐ŸŽ‰๐ŸŽ‰๐ŸŽ‰

Thanks all for the support in this project!

Regards,
Adriรกn.