Skip to content

CI/CD Workflow

CI/CD Workflow #43

Workflow file for this run

name: CI/CD Workflow
on:
push:
branches:
- master
workflow_dispatch:
schedule:
- cron: '30 4 * * *'
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Set up Node.js
uses: actions/setup-node@v2
with:
node-version: '10'
- name: Install SSH Client and Hugo
run: |
sudo apt update
sudo apt install openssh-client -y
wget https://github.com/gohugoio/hugo/releases/download/v0.58.3/hugo_0.58.3_Linux-64bit.tar.gz
tar -zxvf hugo_0.58.3_Linux-64bit.tar.gz
sudo mv hugo /usr/local/bin/
- name: Set up SSH agent
run: |
eval $(ssh-agent -s)
mkdir -p ~/.ssh
chmod 700 ~/.ssh
echo -e "${{ secrets.SSH_PRIVATE_KEY }}" >> ~/.ssh/id_rsa
chmod 400 ~/.ssh/id_rsa
- name: Node and Hugo versions
run: |
node --version
hugo version
- name: Execute Variables and Build
env:
API_URL: ${{ vars.API_URL }}
AUTH_TOKEN: ${{ vars.AUTH_TOKEN }}
BASE_URL: ${{ vars.BASE_URL }}
CLEAN_URL_FIELD: ${{ vars.CLEAN_URL_FIELD }}
EVENTS_PROJECT_ID: ${{ vars.EVENTS_PROJECT_ID }}
EVENT_CANCELLED_FIELD: ${{ vars.EVENT_CANCELLED_FIELD }}
HUGO_VERSION: ${{ vars.HUGO_VERSION }}
LOCATION_FIELD: ${{ vars.LOCATION_FIELD }}
NEWS_PROJECT_ID: ${{ vars.NEWS_PROJECT_ID }}
PRESS_PROJECT_ID: ${{ vars.PRESS_PROJECT_ID }}
run: |
npm install
node create_md_files/createMdFile.js && hugo
- name: Archive build artifacts
run: |
tar -czvf www.unblock.health_dist.tar.gz public
- name: Copy build artifacts to the production server
run: |
scp -P22 -o StrictHostKeyChecking=no www.unblock.health_dist.tar.gz "${{ secrets.PRODUCTION_USER }}@${{ secrets.PRODUCTION_SERVER_IP }}:"
ssh -p22 -o StrictHostKeyChecking=no -t ${{ secrets.PRODUCTION_USER }}@${{ secrets.PRODUCTION_SERVER_IP }} "bash -i update-unblock-health-com.sh"