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 }}'