At Golden Owl, we believe in treating infrastructure as code and automating resource provisioning to the fullest extent possible.
In this technical test, we challenge you to create a robust CI build pipeline using GitHub Actions. You have the freedom to complete this test in your local environment.
Your mission, should you choose to accept it, is to craft a CI job that:
- Forks this repository to your personal GitHub account.
- Dockerizes a Node.js application.
- Establishes an automated CI/CD build process using GitHub Actions workflow and a container registry service such as DockerHub or Amazon Elastic Container Registry (ECR) or similar services.
- Initiates CI tests automatically when changes are pushed to the feature branch on GitHub.
- Utilizes GitHub Actions for Continuous Deployment (CD) to deploy the application to major cloud providers like AWS EC2, AWS ECS or Google Cloud (please submit the deployment link).
We would be genuinely delighted if you could complement your submission with a visual flow diagram
, illustrating the sequence of tasks you performed, including the implementation of a load balancer
and auto scaling
for the deployed application. This additional touch would greatly enhance our understanding and appreciation of your work.
Reference tools for creating visual flow diagrams:
Including a visual representation of your workflow will provide valuable insights into your approach and make your submission stand out. Thank you for considering this enhancement!
This test is designed to evaluate your ability to implement modern automated infrastructure practices while demonstrating a basic understanding of Docker containers. In your solution, we encourage you to prioritize readability, maintainability, and the principles of DevOps.
Your solution should be showcased in a public GitHub repository. We encourage you to commit early and often. We prefer to see a history of iterative progress rather than a single massive push. When you've completed the assignment, kindly share the URL of your repository with us.
This is a Node.js application, and running it locally is straightforward:
- Navigate to the
src
directory by executingcd src
. - Install the project's dependencies listed in the package.json file by running
npm i
. - Execute
npm test
to run the application's tests. - Start the HTTP server with
npm start
.
You can test it using the following command:
curl localhost:3000
You should receive the following response:
{"message":"Welcome warriors to Golden Owl!"}
Are you ready to embark on this DevOps journey with us? 🚀 Best of luck with your assignment! 🌟