Homework 6
You will get hands on practice with deployment and setting up automated workflows using Github Actions, to get a sense of conituous delivery/deployment (CD) and continuous integration (CI).
Day | Date | |
---|---|---|
Release | Fri | OCT 16 |
Due | Mon | OCT 26 @ 11pm (EST) |
Grab a copy of your homework 5 solution (i.e. latest most-complete version of MyBooksApp). Your task is to:
Deploy the
MyBooksApp
on Heroku. You may deploy on any of your team's members' Heroku account. Note that Heroku's DBMS is Postgres (not SQLite), so you will likely need to make adjustments to your code base (making Postgres Db connections instead of SQLite's, sql queries etc.) so that everything works as expected once deployed.info
Make sure to check out all the steps needed for a sucessful deployment given under "Deployment, Continous Delivery/Integration (CI/CD)" readings.
tip
Note that you need to add Postgres to your Heroku app as an add-on by
heroku addons:create heroku-postgresql
.tip
It might happen to you that you deploy the app, but when you visit the webpage, you get an applicaiton error. If that happens to you, check out the logs to get clues as to why it is not working. You can do so via either Heroku web interface (go to the app from Heroku dashboard, click
More
->View logs
at top-right corner of the page), or Heroku CLI byheroku logs --tail -a APP_NAME
whereAPP_NAME
is the heroku app name.tip
Once you have successfully deployed the app, make sure to test all the views/endpoints/functionalities and assert everything is working as expected!
Setup an automated deployment workflow using Github Actions similar to what we did in class on
HerokuDemo
App. TheHerokuDemo
app is available here for your reference. Once you do this, whenever a push is made to the master branch on yourMyBooksApp
repo, it should trigger a cascade of actions which includes creating a fresh build of the app and automated deployment to Heroku.
Submission
Submit a single .zip
file to Gradescope. Th zip file should contain a folder named hw6
that contains all your project files includeing a README.md
file which includes all the assumptions made, work done, etc. Make sure you include your heroku app name/link at the top of the README.md
. Also, make sure your workflow .yml
file is included in your submitted .zip
file.
caution
Note that you need to work collaboratively to finish the homework, but you will make one submission as a group. All group members must contribute to the homework.