test/.gitea/workflows/deploy.yml
pixeldev 7b09f26d4a
All checks were successful
Deploy to dev.bl.pixeldev.eu / deploy (push) Successful in 8s
Add deploy workflow
2026-03-13 09:46:24 +00:00

64 lines
2.0 KiB
YAML

name: Deploy to dev.bl.pixeldev.eu
on:
push:
branches: [main]
jobs:
deploy:
runs-on: self-hosted
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Sync files to project directory
run: |
PROJECT="${{ github.event.repository.name }}"
DEPLOY_DIR="/opt/harbor-projects/${PROJECT}"
mkdir -p "$DEPLOY_DIR"
rsync -av --delete \
--exclude='.git' \
--exclude='node_modules' \
"$GITHUB_WORKSPACE/" "$DEPLOY_DIR/"
echo "Synced to $DEPLOY_DIR"
- name: Install dependencies (Node.js projects)
run: |
PROJECT="${{ github.event.repository.name }}"
DEPLOY_DIR="/opt/harbor-projects/${PROJECT}"
if [ -f "$DEPLOY_DIR/package.json" ]; then
cd "$DEPLOY_DIR"
npm install --production
echo "npm install done"
fi
- name: Register with Harbor (if new)
run: |
PROJECT="${{ github.event.repository.name }}"
DEPLOY_DIR="/opt/harbor-projects/${PROJECT}"
# Check if already registered
STATUS=$(curl -sk -u admin:blaetternd-helix-dribbble124 \
https://dev.bl.pixeldev.eu/harbor/api/projects/${PROJECT} \
-o /dev/null -w "%{http_code}")
if [ "$STATUS" = "404" ]; then
echo "Registering new project with Harbor..."
curl -sk -u admin:blaetternd-helix-dribbble124 \
-X POST https://dev.bl.pixeldev.eu/harbor/api/projects \
-H "Content-Type: application/json" \
-d "{\"path\":\"${DEPLOY_DIR}\",\"name\":\"${PROJECT}\"}"
else
echo "Refreshing existing Harbor project..."
curl -sk -u admin:blaetternd-helix-dribbble124 \
-X POST https://dev.bl.pixeldev.eu/harbor/api/projects/${PROJECT}/deploy
fi
- name: Done
run: |
PROJECT="${{ github.event.repository.name }}"
echo "✅ Deployed $PROJECT to https://dev.bl.pixeldev.eu/harbor/preview/${PROJECT}/"