Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Configure CI/CD #5

Open
3 tasks
IkeHunter opened this issue Sep 28, 2024 · 0 comments
Open
3 tasks

Configure CI/CD #5

IkeHunter opened this issue Sep 28, 2024 · 0 comments

Comments

@IkeHunter
Copy link
Collaborator

IkeHunter commented Sep 28, 2024

Info

Terms

  • CI: Continuous Integration, allow code to be easily added to the main branch of the code base by using automations to check if the code is bad
  • CD: Continuous Deployment, automatically push code to a production/staging environment and ensure safety using automated testing

Problem

This app is needed by the Jukebox projects, but developers on those projects shouldn't need to download this repo and run it in order to test Jukebox. That sounds exhausting. Instead, they should just be able to link to some public dockerfile inside of their docker-compose setup that pull the latest image and runs the server.

This Docker repo will live in Docker Hub. You can use your own personal docker hub while developing, but make sure the actual reference to the hub is stored in an environment variable so it can easily be changed by maintainers without making any changes to the github actions files.

Additionally, when new developers want to add features to this app, specifically the server logic, maintainers should know if their new code passes unit tests. Once that is possible, we can configure the repo settings to automatically check for passing tests, and block the PR if any test fails.

Note: You do not need to setup the docker-compose file on jukebox, but you get brownie points if you do.

Note: I'm not sure how github actions works with forked repos, but you should be able to test everything via a forked version of the repo

Task

  • Create GitHub action workflow for uploading to Docker Hub (remember to reference hub account in new environment variable)
  • Create GitHub action workflow for running django tests
  • Create GitHub action workflow for linting python code (separate workflow so doesn't prevent pr)

Resources

A similar setup was created in the Jukebox Server repo, you can use that if you get stuck.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant