In this test, you are required to design a CI/CD pipeline for a Django repository using Github Actions. You will have complete freedom to decide which stages, jobs, and scripts to include in the pipeline, based on your preferences and best practices for CI/CD.
For context, let’s imagine that the Django Team has started working on a project for a client and that they need a pipeline to confidently show their progress to both the Project Manager and the client itself.
Your task is to clone the provided Django repository, create the CI/CD pipeline, and then grant us access to the repository.
The test is vague on purpose, we want you to design the pipeline based on what you think that should happen from start to finish.
Feel free to include integrations with any third party software that you think it would be useful.
- A Github account
- Familiarity with Github Actions
- Familiarity with Django
- Basic understanding of Docker
-
Clone this repo
The first step is to clone the provided Django repository. You can find the repository at:
<https://github.com/mrmilu/devops-coding-challenge>
-
Design the GitLab CI/CD pipelines or Github Actions Workflow
Create as many Github Workflows as you deem necessary.
Design the CI/CD pipeline according to your preferences and best practices.
We love containers, an image should be built.
You may also include any other stages, jobs, or scripts that you consider important.
-
Commit and push your changes
As an optional step, you can include a brief description of how and where you would deploy the Django application. Some examples of deployment options include cloud platforms like AWS, Google Cloud Platform, or Microsoft Azure, as well as on-premises or self-hosted environments.
Feel free to describe any specific services, configurations, or best practices you would use for deploying the Django application.
- A cloned Django repository containing your designed Github Actions workflow(s)
- Access granted to
[email protected]
to the repo. - A markdown file named
DECISIONS.md
with an outline of your decisions so we can know why you did (or didn’t) do what you did :) - A markdown file named
TODO.md
with an outline of the things that you would implement, fix, upgrade if you had more time. - (Optional) A brief description of your preferred deployment strategy for the Django application
If you have any questions, feel free to email us at [email protected]
Good luck! We're looking forward to reviewing your work.