Skip to content

Deployment & Pipelines

Hiroyuki Wakabayashi edited this page Jan 15, 2025 · 5 revisions

GitHub Actions

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.

Issue management

PR Management

Workflows and deploys

As described in git branch model section, we will maintain both frontend/backend code basis with the branches: main, release, and topic branches.

Tests CI

Build CI

Deploy (backend & frontend CIs)

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.

Release CI

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.

Clone this wiki locally