-
Notifications
You must be signed in to change notification settings - Fork 0
Deployment & Pipelines
Since one of the aims of this project is to leverage full-stack features of GitHub, we had implemented a lot of workflows of GitHub Actions for automating operations.
As described in git branch model
section, we will maintain both frontend/backend code basis with the branches: main
, release
, and topic branches.
When we merge topic branches into main, Deploy pipelines (Backend/Frontend CIs) will be triggered to push container image and updated GitHub pages.
Backend: Express.js
Serving APIs for frontend, the API will be deployed onto Google Cloud Run.
Since there is an extremely useful functionalities Google Cloud's Buildpacks
dedicated for build OCI image on Google Cloud services, we implemented them with invoking from pack
commands, where we can use Cloud Native Buildpacks including Google Cloud's ones.
Frontend: Vue.js
For hosting static files built by Vue.js (or Vite), we use GitHub Pages.
Since GitHub Pages can host only static files, meaning we can not host Vue SFCs (*.vue
files) directly onto it, we will run vite build
in the workflow before applying changes into hwakabh.github.io
page.
When we merge main branch into releases, Release pipeline will be triggered to populate tags/releases/changelogs.
For automating releases, we use GitHub's builtin features to generate tags/releases and its changelogs.
After Release CI will be completed without any issue, we will be able to increment application releases with calendar versionings.
The tag/release name will be automatically resolved with the timestamps, and will be formed with YYYY-MM-DD.ssmmnn
.