Files
tk2s.org/.gitea/workflows/deploy.yml
T
thebestvibedev 8edfaa7b4f
Deploy Xmirg / build (push) Has been cancelled
Deploy Xmirg / deploy (push) Has been cancelled
Minning tk2s.org server
2026-07-15 16:40:32 +07:00

76 lines
2.0 KiB
YAML

# .gitea/workflows/deploy.yml
name: Deploy Xmirg
on:
push:
branches: [main]
workflow_dispatch:
env:
APP_NAME: xmirg
DEPLOY_PATH: /opt/xmirg
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: '1.22'
cache: true
- name: Test
run: go test ./...
- name: Build
run: |
CGO_ENABLED=0 GOOS=linux go build \
-ldflags="-s -w -X main.version=${{ github.sha }}" \
-o dist/${{ env.APP_NAME }} ./cmd/${{ env.APP_NAME }}
- name: Upload artifact
uses: actions/upload-artifact@v3
with:
name: ${{ env.APP_NAME }}
path: dist/${{ env.APP_NAME }}
deploy:
needs: build
runs-on: ubuntu-latest
if: github.ref == 'refs/heads/main'
steps:
- name: Download artifact
uses: actions/download-artifact@v3
with:
name: ${{ env.APP_NAME }}
path: dist
- 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_HOST }} >> ~/.ssh/known_hosts
- name: Copy binary
run: |
chmod +x dist/${{ env.APP_NAME }}
scp dist/${{ env.APP_NAME }} \
${{ secrets.DEPLOY_USER }}@${{ secrets.DEPLOY_HOST }}:${{ env.DEPLOY_PATH }}/${{ env.APP_NAME }}.new
- name: Restart service
run: |
ssh ${{ secrets.DEPLOY_USER }}@${{ secrets.DEPLOY_HOST }} bash -s <<'EOF'
set -e
cd /opt/xmirg
cp xmirg xmirg.bak 2>/dev/null || true
mv xmirg.new xmirg
chmod +x xmirg
sudo systemctl restart xmirg
sleep 2
systemctl is-active --quiet xmirg || { sudo mv xmirg.bak xmirg; sudo systemctl restart xmirg; exit 1; }
EOF