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}/"