Skip to content

Commit

Permalink
ci(release): implement web deploy to gcp
Browse files Browse the repository at this point in the history
  • Loading branch information
ygrishajev committed Oct 17, 2024
1 parent 866a4cc commit bb33b26
Show file tree
Hide file tree
Showing 3 changed files with 96 additions and 1 deletion.
35 changes: 35 additions & 0 deletions .github/actions/gcp-deploy/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
name: Update GCP VM instance container image

inputs:
instance-name:
description: 'VM instance name'
required: true
image:
description: 'Docker image tag'
required: true
zone:
description: 'GCP zone'
required: true
credentials_json:
description: 'Service account credentials JSON'
required: true


runs:
using: "composite"
steps:
- name: 'Authenticate with Google Cloud'
uses: 'google-github-actions/auth@v2'
with:
credentials_json: ${{ inputs.credentials_json }}

- name: 'Set up Cloud SDK'
uses: 'google-github-actions/setup-gcloud@v2'
with:
version: '>= 363.0.0'

- name: Update image
shell: bash
run: |
gcloud compute instances update-container ${{ inputs.instance-name }} \
--container-image=${{ inputs.image }} --zone ${{ inputs.zone }};
59 changes: 59 additions & 0 deletions .github/workflows/deploy-web-to-gcp.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
name: Deploy Console Web to GCP

on:
workflow_dispatch:
inputs:
tag:
description: 'Tag to deploy'
required: true
type: string

concurrency:
group: ${{ github.workflow }}

jobs:
deploy:
name: Define Variables
runs-on: ubuntu-latest

steps:
- name: Define variables
id: vars
run: |
tag="${{ github.event.inputs.tag }}"
if [[ ! "$tag" =~ ^console-web/v[0-9]+\.[0-9]+\.[0-9]+(-beta\.[0-9]+)?$ ]]; then
echo "Invalid tag. Expected console-web/v* or console-web/v*-beta.*"
exit 1
fi
version="${tag#*/v}"
instance_name=""
if [[ "$version" =~ ^[0-9]+\.[0-9]+\.[0-9]+-beta\.[0-9]+$ ]]; then
instance_name="${{ vars.BETA_WEB_INSTANCE_NAME }}"
elif [[ "$version" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
instance_name="${{ vars.PROD_WEB_INSTANCE_NAME }}"
fi
image="${{ vars.WEB_REGISTRY }}:$version"
echo "instance-name=${instance_name}"
echo "image=${image}"
echo "instance-name=${instance_name}" >> "$GITHUB_OUTPUT"
echo "image=${image}" >> "$GITHUB_OUTPUT"
- name: Checkout repository
if: steps.vars.outputs.instance-name != '' && steps.vars.outputs.image != ''
uses: actions/checkout@v4

- name: Deploy
if: steps.vars.outputs.instance-name != '' && steps.vars.outputs.image != ''
uses: ./.github/actions/gcp-deploy
with:
instance-name: ${{ steps.vars.outputs.instance-name }}
image: ${{ steps.vars.outputs.image }}
credentials_json: ${{ secrets.GCP_SA_KEY }}
zone: ${{ vars.GCP_ZONE }}
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -81,4 +81,5 @@ apps/stats-web/.env
# Data Folder
data
testdata
test-results
test-results
.github/test-data

0 comments on commit bb33b26

Please sign in to comment.