homelab/.gitea/workflows/deploy-to-fighter.yml

63 lines
2.3 KiB
YAML

name: Deploy to Fighter
run-name: ${{ gitea.actor }} deploying
on:
push:
paths:
- 'fighter/**'
jobs:
Deploy:
runs-on: fighter
steps:
- name: Pull latest code onto host via SSH
uses: appleboy/ssh-action@master
with:
host: ${{ vars.SSH_HOST_IP_FIGHTER }} # this is a LAN IP
username: ${{ vars.SSH_USERNAME_FIGHTER }}
key: ${{ secrets.SSH_KEY_DEPLOY_TO_FIGHTER }}
script: |
cd ~/homelab
git pull
- name: Validate compose configs
uses: appleboy/ssh-action@master
with:
host: ${{ vars.SSH_HOST_IP_FIGHTER }} # this is a LAN IP
username: ${{ vars.SSH_USERNAME_FIGHTER }}
key: ${{ secrets.SSH_KEY_DEPLOY_TO_FIGHTER }}
script: |
for stack in /home/$USER/homelab/fighter/config/*
do cd $stack &&
echo "===== Validating $(basename $PWD) =====" &&
docker compose config > /dev/null
done
- name: Deploy new config
uses: appleboy/ssh-action@master
with:
host: ${{ vars.SSH_HOST_IP_FIGHTER }} # this is a LAN IP
username: ${{ vars.SSH_USERNAME_FIGHTER }}
key: ${{ secrets.SSH_KEY_DEPLOY_TO_FIGHTER }}
script: |
chmod +x /home/admin/homelab/fighter/scripts/startup.sh
/home/admin/homelab/fighter/scripts/startup.sh
# - name: Deploy new config (DEPRECATED)
# uses: appleboy/ssh-action@master
# with:
# host: ${{ vars.SSH_HOST_IP_FIGHTER }} # this is a LAN IP
# username: ${{ vars.SSH_USERNAME_FIGHTER }}
# key: ${{ secrets.SSH_KEY_DEPLOY_TO_FIGHTER }}
# script: |
# for stack in /home/$USER/homelab/fighter/config/*
# do cd $stack &&
# echo "===== Deploying $(basename $PWD) =====" &&
# docker compose up -d
# done
Notify:
runs-on: fighter
steps:
- name: Discord notification
uses: appleboy/discord-action@master
with:
webhook_id: ${{ secrets.DISCORD_WEBHOOK_ID }}
webhook_token: ${{ secrets.DISCORD_WEBHOOK_TOKEN }}
args: '<@${{ secrets.DISCORD_ID_JAFNER }}> ${{ github.repository }} deploy to fighter: ${{ job.status }}'