feat: add prefixed service initializer and packaged deployment

This commit is contained in:
shiran
2026-09-09 11:00:31 +08:00
parent 1e2366998e
commit 4da89b784e
9 changed files with 355 additions and 40 deletions
+9 -9
View File
@@ -1,4 +1,7 @@
name: 'Build & Deploy'
env:
DEPLOY_DIR: /root
on:
push:
tags:
@@ -17,15 +20,14 @@ jobs:
go build -ldflags="-s -w" -o server ./cmd/main_program
go build -ldflags="-s -w" -o cli ./cmd/cli_control
go build -ldflags="-s -w" -o scheduler ./cmd/scheduler
go build -ldflags="-s -w" -o initializer .
tar -czf deployment.tar.gz server cli scheduler initializer
- name: Save artifact
uses: actions/upload-artifact@v3
with:
name: build-artifacts
path: |
./server
./cli
./scheduler
path: ./deployment.tar.gz
deploy:
needs: build
@@ -53,11 +55,9 @@ jobs:
while read -r ip; do
if [ -n "$ip" ]; then
echo "Deploying to $ip..."
scp -o StrictHostKeyChecking=no server cli scheduler ${{ vars.ROOT_USER_NAME }}@"$ip":/root/
ssh -n ${{ vars.ROOT_USER_NAME }}@"$ip" << 'ENDSSH'
chmod +x /root/server /root/cli /root/scheduler
systemctl restart server cli scheduler
ENDSSH
scp -o StrictHostKeyChecking=no deployment.tar.gz ${{ vars.ROOT_USER_NAME }}@"$ip":"$DEPLOY_DIR/deployment.tar.gz"
ssh -n ${{ vars.ROOT_USER_NAME }}@"$ip" \
"set -e; bash '$DEPLOY_DIR/stop.sh'; tar -xzf '$DEPLOY_DIR/deployment.tar.gz' -C '$DEPLOY_DIR'; chmod +x '$DEPLOY_DIR/server' '$DEPLOY_DIR/cli' '$DEPLOY_DIR/scheduler' '$DEPLOY_DIR/initializer'; bash '$DEPLOY_DIR/start.sh'"
echo "Deployment to $ip completed"
fi
done < server_list.txt