33 lines
974 B
YAML
33 lines
974 B
YAML
name: Deploy
|
|
|
|
on:
|
|
push:
|
|
branches: [main]
|
|
workflow_dispatch:
|
|
inputs:
|
|
ref:
|
|
description: "Commit or branch to deploy (default: main)"
|
|
required: false
|
|
default: "main"
|
|
|
|
jobs:
|
|
deploy:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Deploy via SSH
|
|
run: |
|
|
REF="${{ github.event.inputs.ref || github.sha }}"
|
|
mkdir -p ~/.ssh
|
|
echo "${{ secrets.DEPLOY_SSH_KEY }}" > ~/.ssh/id_ed25519
|
|
chmod 600 ~/.ssh/id_ed25519
|
|
ssh-keyscan -H ${{ secrets.DEPLOY_HOST }} >> ~/.ssh/known_hosts 2>/dev/null
|
|
ssh -o StrictHostKeyChecking=no opc@${{ secrets.DEPLOY_HOST }} << ENDSSH
|
|
cd /home/opc/services/my-favs
|
|
git fetch origin
|
|
git checkout ${REF}
|
|
git pull origin main || true
|
|
sudo docker compose up -d --build
|
|
echo "${REF}" > .deployed-commit
|
|
echo "Deployed: ${REF} at $(date -u +%Y-%m-%dT%H:%M:%SZ)"
|
|
ENDSSH
|
|
|