# 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 ./build/ mkdir ./build/ EXTENSION="${TARGET_ZIP##*.}" FILENAME="${TARGET_ZIP%.*}" LATEST_FILENAME="${FILENAME}_latest.${EXTENSION}" gsutil cp gs://${{ secrets.CORIOLIS_GCP_TARGET_BUCKET }}/${{ env.BUCKET_FOLDER }}/${LATEST_FILENAME} ./build/${LATEST_FILENAME} unzip ./build/${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 ./build/* /var/www/beta.coriolis.io/; else sudo -u www-data cp -r ./build/* /var/www/coriolis.io/; fi