- Understand how to configure a simple Continuous Deployment system using Nx and GitHub actions
- Learn how to expose custom secrets on GitHub to your CD processes
In this lab we'll be setting up GitHub actions to build and deploy our projects whenever changes go into the master branch.
- Add a
.github/workflows/deploy.ymlfile
-
Using your
ci.ymlconfig as an example, see if you can configure automated deployments from themasterbranch:Anytime we push or merge something to the
masterbranch it should:- build the
storeandadmin-uifor production - deploy the
storeandadmin-ui
We'll start you off:
name: Deploy Website on: push: branches: - master <-- workflow will run everytime we push or merge something to master jobs: build: runs-on: ubuntu-latest name: Deploying apps steps: .... <-- ADD THE STEPS HERE
- build the
-
Our "deploy" targets are using some secret ENV variables though. We'll need to make these available on GitHub:
- Go to your GitHub workshop repo
- Click on "Settings" at the top
- Then "Secrets" on the left menu bar
- Add values for all the variables we've been keeping in
.local.envfiles
-
Then back in our
deploy.ymlfile, let's expose these secrets to the processes (useci.ymlas an example of where to put these):env: SURGE_DOMAIN_STORE: ${{ secrets.SURGE_DOMAIN_STORE }} SURGE_DOMAIN_ADMIN_UI: ${{ secrets.SURGE_DOMAIN_ADMIN_UI }} SURGE_TOKEN: ${{ secrets.SURGE_TOKEN }}
- Since we'll be re-deploying, we want to test if we're looking at a new version of our code:
- Make a change to your AdminUI (maybe change the text in the header)
- Make a change to your Store (maybe change the title in the header)
- Commit everything locally on
masterand then push (it's important we push to themasterbranch as that's where our workflow runs)
- You should see your new workflow start up under the "Actions" tab on your GitHub repo
- Once it's done, navigate to your frontend Surge deployment URLs and test if you notice the new changes
🎓 If you get stuck, check out the solution
