mirror of
https://github.com/EDCD/coriolis.git
synced 2025-12-09 06:43:24 +00:00
86 lines
3.1 KiB
YAML
86 lines
3.1 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: |
|
|
|
|
zip -r ./${TARGET_ZIP} ./coriolis/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: 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: Download and unzip the build
|
|
shell: bash
|
|
run: |
|
|
rm -Rf ./*
|
|
EXTENSION="${TARGET_ZIP##*.}"
|
|
FILENAME="${TARGET_ZIP%.*}"
|
|
LATEST_FILENAME="${FILENAME}_latest.${EXTENSION}"
|
|
gsutil cp gs://${{ secrets.CORIOLIS_GCP_TARGET_BUCKET }}/${{ env.BUCKET_FOLDER }}/${LATEST_FILENAME} ${LATEST_FILENAME}
|
|
unzip ./${LATEST_FILENAME}
|
|
- name: Move the build to the web server
|
|
shell: bash
|
|
run: |
|
|
if [ ${{ env.BRANCH_NAME }} == "beta" ]; then sudo -u www-data cp -r ./coriolis/build/* /var/www/beta.coriolis.io/; else sudo -u www-data cp -r ./coriolis/build/* /var/www/coriolis.io/; fi |