diff --git a/.forgejo/workflows/deploy.yml b/.forgejo/workflows/deploy.yml new file mode 100644 index 0000000..ce5f02d --- /dev/null +++ b/.forgejo/workflows/deploy.yml @@ -0,0 +1,34 @@ +name: Deploy + +# Trigger the workflow manually from the Forgejo UI +on: + workflow_dispatch: + +jobs: + run_remote_command: + name: Execute Command on Server + runs-on: alpine-latest + + steps: + - name: Setup SSH Agent + uses: webfactory/ssh-agent@v0.9.0 + with: + ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }} + + - name: Add known hosts + if: ${{ secrets.SSH_KNOWN_HOSTS != '' }} # Only run if the secret is set + run: | + mkdir -p ~/.ssh + echo "${{ secrets.SSH_KNOWN_HOSTS }}" >> ~/.ssh/known_hosts + chmod 644 ~/.ssh/known_hosts + + - name: Run Command via SSH + run: | + ssh ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }} ' + echo "Running remote deployment..." + cd /home/public/ || exit 1 + docker compose pull && docker compose up -d --force-recreate + + echo "Remote deployment finished." + ' # End of commands for the remote server + echo "SSH command sent." \ No newline at end of file