Jafner.net/.gitea/workflows/homelab_deploy-to-druid.yml
Joey Hafner 97e4cc547a
Init Jafner.net monorepo from constituent repos:
1. homelab [Gitea](https://gitea.jafner.tools/Jafner/homelab), [Github (docker_config)](https://github.com/Jafner/docker_config), [Github (wiki)](https://github.com/Jafner/wiki), [Github (cloud_tools)](https://github.com/Jafner/cloud_tools), [Github (self-hosting)](https://github.com/Jafner/self-hosting).
   - Rename? Jafner.net? Wouldn't that be `Jafner/Jafner.net/Jafner.net`?
2. Jafner.dev [Github](https://github.com/Jafner/Jafner.dev).
3. dotfiles [Gitea](https://gitea.jafner.tools/Jafner/dotfiles), [Github](https://github.com/Jafner/dotfiles).
4. nvgm [Gitea](https://gitea.jafner.tools/Jafner/nvgm)
5. pamidi [Gitea](https://gitea.jafner.tools/Jafner/pamidi), [Github](https://github.com/Jafner/pamidi)
6. docker-llm-amd [Gitea](https://gitea.jafner.tools/Jafner/docker-llm-amd)
7. doradash [Gitea](https://gitea.jafner.tools/Jafner/doradash)
8. clip-it-and-ship-it [Gitea (PyClipIt)](https://gitea.jafner.tools/Jafner/PyClipIt), [Github](https://github.com/Jafner/clip-it-and-ship-it).
9. razer battery led [Github](https://github.com/Jafner/Razer-BatteryLevelRGB)
10. 5etools-docker [Github](https://github.com/Jafner/5etools-docker)
11. jafner-homebrew [Github](https://github.com/Jafner/jafner-homebrew)
2024-07-15 15:35:16 -07:00

55 lines
1.8 KiB
YAML

name: Deploy to Druid
run-name: ${{ gitea.actor }} deploying
on:
push:
paths:
- '**/homelab/druid/**'
jobs:
Deploy:
runs-on: druid
steps:
- name: Pull latest code onto host via SSH
uses: appleboy/ssh-action@master
with:
host: ${{ vars.SSH_HOST_IP_DRUID }} # this is a LAN IP
username: ${{ vars.SSH_USERNAME_DRUID }}
key: ${{ secrets.SSH_KEY_DEPLOY_TO_DRUID }}
script: |
cd ~/homelab
git pull
- name: Validate compose configs
uses: appleboy/ssh-action@master
with:
host: ${{ vars.SSH_HOST_IP_DRUID }} # this is a LAN IP
username: ${{ vars.SSH_USERNAME_DRUID }}
key: ${{ secrets.SSH_KEY_DEPLOY_TO_DRUID }}
script: |
for stack in /home/$USER/homelab/druid/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_DRUID }} # this is a LAN IP
username: ${{ vars.SSH_USERNAME_DRUID }}
key: ${{ secrets.SSH_KEY_DEPLOY_TO_DRUID }}
script: |
for stack in /home/$USER/homelab/druid/config/*
do cd $stack &&
echo "===== Deploying $(basename $PWD) =====" &&
docker compose up -d
done
Notify:
runs-on: druid
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 druid: ${{ job.status }}'