Skip to content

Merge pull request #6 from CybersecurityLuxembourg/validation #24

Merge pull request #6 from CybersecurityLuxembourg/validation

Merge pull request #6 from CybersecurityLuxembourg/validation #24

name: Build and deploy on production environment
on:
push:
branches: [ main ]
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [14.x]
steps:
- uses: actions/checkout@v2
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node-version }}
- name: Install dependencies
run: npm install
- name: Build
run: npm run build
- name: Install SSH Key
uses: shimataro/ssh-key-action@v2
with:
key: ${{ secrets.PRODUCTION_ENV_SSH_PRIVATE_KEY }}
known_hosts: 'just-a-placeholder-so-we-dont-get-errors'
- name: Adding known hosts on source host from bastion host
run: ssh-keyscan -p ${{ secrets.BASTION_SSH_PORT }} -H ${{ secrets.BASTION_HOST }} >> ~/.ssh/known_hosts
- name: Adding known hosts on source host from target host
run: ssh -p ${{ secrets.BASTION_SSH_PORT }} ${{ secrets.BASTION_USER }}@${{ secrets.BASTION_HOST }} ssh-keyscan -H ${{ secrets.PRODUCTION_ENV_HOST }} >> ~/.ssh/known_hosts
- name: Empty target dir
run: ssh -J ${{ secrets.BASTION_USER }}@${{ secrets.BASTION_HOST }}:${{ secrets.BASTION_SSH_PORT }} cyfofront@${{ secrets.PRODUCTION_ENV_HOST }} 'rm -rf /var/www/cy-fo-front/*'
- name: Deploy in target dir with SCP
run: scp -r -J ${{ secrets.BASTION_USER }}@${{ secrets.BASTION_HOST }}:${{ secrets.BASTION_SSH_PORT }} ./build/* cyfofront@${{ secrets.PRODUCTION_ENV_HOST }}:/var/www/cy-fo-front