41 lines
1.1 KiB
YAML
41 lines
1.1 KiB
YAML
name: Deploy to VPS
|
|
|
|
on:
|
|
push:
|
|
branches: [master]
|
|
|
|
jobs:
|
|
deploy:
|
|
runs-on: ubuntu-latest # Use a label matching your runner, e.g., ubuntu-latest
|
|
|
|
steps:
|
|
- name: Checkout Repository
|
|
uses: actions/checkout@v4
|
|
with:
|
|
fetch-depth: 0 # Full history for git operations
|
|
|
|
- name: Setup SSH
|
|
run: |
|
|
mkdir -p ~/.ssh
|
|
echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/id_ed25519
|
|
chmod 600 ~/.ssh/id_ed25519
|
|
ssh-keyscan -H ${{ secrets.DEPLOY_SERVER }} >> ~/.ssh/known_hosts
|
|
eval "$(ssh-agent -s)"
|
|
ssh-add ~/.ssh/id_ed25519
|
|
|
|
- name: Deploy via Git Pull and Rsync
|
|
run: |
|
|
ssh -p 2222 ${{ secrets.DEPLOY_USER }}@${{ secrets.DEPLOY_SERVER }} "
|
|
cd ${{ secrets.DEPLOY_PATH }} &&
|
|
git fetch origin &&
|
|
git reset --hard origin/master
|
|
"
|
|
|
|
- name: Restart docker container
|
|
run: |
|
|
ssh -p 2222 ${{ secrets.DEPLOY_USER }}@${{ secrets.DEPLOY_SERVER }} "
|
|
cd ${{ secrets.DEPLOY_PATH }} &&
|
|
docker compose down &&
|
|
docker compose up --build -d
|
|
"
|