Files
coriolis/.github/workflows/autodeploy.yml
2024-06-22 15:20:48 +01:00

74 lines
2.7 KiB
YAML

# This is a basic deployment workflow triggered by pushes to the beta and live branches.
name: Auto-Deploy 'beta/live' Branch to beta.coliolis.io or coriolis.io
# Controls when the action will run. Workflow runs when the alpha branch receives a push event
on:
push:
branches:
- beta
- live
# Figure out the target branch name
env:
BRANCH_NAME: ${{ github.base_ref || github.ref_name }}
TARGET_ZIP: build.zip
BUCKET_FOLDER: build
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
build:
runs-on: builder
steps:
- name: Download the code
shell: bash
run: |
rm -Rf ./coriolis
rm -Rf ./coriolis-data
git clone https://github.com/Brighter-Applications/coriolis.git --single-branch --branch ${BRANCH_NAME}
git clone https://github.com/Brighter-Applications/coriolis-data.git --single-branch --branch ${BRANCH_NAME}
- name: Build the code
shell: bash
run: |
cd coriolis-data
export NVM_DIR=~/.nvm
source ~/.nvm/nvm.sh
npm install 2>&1
npm start
cd ../coriolis
npm install 2>&1
npm run build 2>&1
- name: Zip the code
shell: bash
run: |
cd ../coriolis
zip -r ${TARGET_ZIP}.zip ./build/*
- name: Authorize GCP
uses: google-github-actions/auth@v2
with:
credentials_json: ${{ secrets.CORIOLIS_GCP_SA_KEY }}
- name: Set up Cloud SDK
uses: google-github-actions/setup-gcloud@v2
with:
version: '>=363.0.0'
project_id: ${{ secrets.GCP_PROJECT_ID }}
- name: Upload to Google Cloud Storage
run: |-
TARGET_ZIP=${{ env.TARGET_ZIP }}
BUCKET_PATH=${{ secrets.CORIOLIS_GCP_TARGET_BUCKET }}/${{ env.BUCKET_FOLDER }}
EXTENSION="${TARGET_ZIP##*.}"
FILENAME="${TARGET_ZIP%.*}"
LATEST_FILENAME="${FILENAME}_latest.${EXTENSION}"
gsutil cp ./$TARGET_ZIP gs://${BUCKET_PATH}/${LATEST_FILENAME}
deploy:
runs-on: webapp
needs: build
steps:
- name: Download and unzip the build
shell: bash
run: |
mkdir ./build/
gsutil cp gs://${{ secrets.CORIOLIS_GCP_TARGET_BUCKET }}/${{ env.BUCKET_FOLDER }}/${TARGET_ZIP}_latest.zip ./build/${TARGET_ZIP}_latest.zip
unzip ./build/${TARGET_ZIP}_latest.zip -d ./build/
- name: Move the build to the web server
shell: bash
run: |
if [ ${{ env.BRANCH_NAME }} == "beta" ]; then sudo -u www-data cp -r ./build/* /var/www/beta.coriolis.io/; else sudo -u www-data cp -r ./build/* /var/www/coriolis.io/; fi