From 8d85589f0c3a37e775001e17253f3113150d918f Mon Sep 17 00:00:00 2001 From: wh-leader Date: Mon, 11 May 2026 09:32:53 +0200 Subject: [PATCH] fix: use direct Docker build to avoid runner filesystem issues Gitea Actions runner has filesystem mount issue preventing Node.js extraction. Solution: Build entire image with Docker (includes Node) instead of setup-node action. Simpler and more reliable - build happens inside container. --- .gitea/workflows/ci-cd.yaml | 75 +++++++------------------------------ 1 file changed, 13 insertions(+), 62 deletions(-) diff --git a/.gitea/workflows/ci-cd.yaml b/.gitea/workflows/ci-cd.yaml index 8d0d59f..02ccb5f 100644 --- a/.gitea/workflows/ci-cd.yaml +++ b/.gitea/workflows/ci-cd.yaml @@ -3,75 +3,26 @@ name: CI/CD Pipeline on: push: branches: [main] - pull_request: - branches: [main] jobs: - # Build job - verify Astro build works - build: - name: Build Astro Site + build-and-deploy: + name: Build & Deploy runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - - name: Setup Node.js - uses: actions/setup-node@v4 - with: - node-version: '20' + - name: Build and Push Docker Image + run: | + # Login to registry + echo "${{ secrets.DOCKER_PASSWORD }}" | docker login gitlab.impresion3d.pro -u "${{ secrets.DOCKER_USERNAME }}" --password-stdin + + # Build image + docker build -t gitlab.impresion3d.pro/root/davidaragon-portfolio:latest . + + # Push to registry + docker push gitlab.impresion3d.pro/root/davidaragon-portfolio:latest - - name: Install dependencies - run: npm ci - - - name: Build site - run: npm run build - env: - NODE_ENV: production - - - name: Upload build artifact - uses: actions/upload-artifact@v4 - with: - name: dist - path: dist/ - retention-days: 1 - - # Deploy job - only on main branch push after build succeeds - deploy: - name: Deploy to Portainer - runs-on: ubuntu-latest - needs: [build] - if: github.event_name == 'push' && github.ref == 'refs/heads/main' - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Download build artifact - uses: actions/download-artifact@v4 - with: - name: dist - path: dist/ - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - - - name: Login to Gitea registry - uses: docker/login-action@v3 - with: - registry: gitlab.impresion3d.pro - username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_PASSWORD }} - - - name: Build and push Docker image - uses: docker/build-push-action@v5 - with: - context: . - push: true - tags: | - gitlab.impresion3d.pro/root/davidaragon-portfolio:latest - gitlab.impresion3d.pro/root/davidaragon-portfolio:${{ github.sha }} - cache-from: type=registry,ref=gitlab.impresion3d.pro/root/davidaragon-portfolio:buildcache - cache-to: type=registry,ref=gitlab.impresion3d.pro/root/davidaragon-portfolio:buildcache,mode=max - - - name: Trigger Portainer webhook + - name: Deploy to Portainer run: | curl -X POST "${{ secrets.PORTAINER_WEBHOOK_URL }}"