Skip to content

deploy

deploy #78

Workflow file for this run

name: deploy
on:
workflow_dispatch:
branches:
- master
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Install OpenVPN
run: |
sudo apt-get update
sudo apt-get --assume-yes --no-install-recommends install openvpn
- name: Setup VPN config
run: |
echo "${{ secrets.CA_CRT }}" > ca.crt
echo "${{ secrets.USER_CRT }}" > user.crt
echo "${{ secrets.USER_KEY }}" > user.key
echo "${{ secrets.SECRET_USERNAME_PASSWORD }}" > secret.txt
echo "${{ secrets.TLS_KEY }}" > tls.key
- name: Connect VPN
run: sudo openvpn --config ".github/vpn/config.ovpn" --log "vpn.log" --daemon
- name: Wait for a VPN connection
timeout-minutes: 1
run: sleep 7 && until ping -c1 ${{ secrets.SSH_HOST }}; do sleep 2; done
- name: Install SSH Key
uses: shimataro/ssh-key-action@v2
with:
key: ${{ secrets.SSH_PRIVATE_KEY }}
known_hosts: 'just-a-placeholder-so-we-dont-get-errors'
- name: Adding Known Hosts
run: ssh-keyscan -p ${{ secrets.SSH_PORT}} -H ${{ secrets.SSH_HOST }} >> ~/.ssh/known_hosts
- name: Rebuild and deploy
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.SSH_HOST }}
username: ${{ secrets.SSH_USER }}
key: ${{ secrets.SSH_PRIVATE_KEY }}
port: ${{ secrets.SSH_PORT }}
script: |
cd /home/dal/dal/
git pull origin master
docker-compose build back-end front-end watchdoc tgbot
docker-compose stop back-end front-end watchdoc ofelia tgbot
docker-compose up -d back-end front-end watchdoc ofelia tgbot
- name: Kill VPN connection
if: always()
run: |
sudo chmod 777 vpn.log
sudo killall openvpn
- name: Upload VPN logs
uses: actions/upload-artifact@v2
if: always()
with:
name: VPN logs
path: vpn.log