From 951db38e4ce669bf97eabd69fef548fb7f6921bb Mon Sep 17 00:00:00 2001 From: nihonium Date: Thu, 9 Oct 2025 15:16:48 +0300 Subject: [PATCH] feat: build frontend via cicd --- .forgejo/workflows/build-and-deploy.yml | 69 ++++++++++++++++++------- 1 file changed, 49 insertions(+), 20 deletions(-) diff --git a/.forgejo/workflows/build-and-deploy.yml b/.forgejo/workflows/build-and-deploy.yml index 87a8b34..5e11166 100644 --- a/.forgejo/workflows/build-and-deploy.yml +++ b/.forgejo/workflows/build-and-deploy.yml @@ -9,34 +9,55 @@ on: jobs: build: runs-on: ubuntu-latest + env: + BACKEND_API_BASE_URL: ${{ vars.BACKEND_API_BASE_URL }} steps: - name: Checkout code uses: actions/checkout@v4 - + + # Build backend - uses: actions/setup-go@v6 with: go-version: '^1.25' check-latest: false cache-dependency-path: | - modules/server/go.sum + modules/backend/go.sum + + - name: Build Go app + run: | + cd modules/backend + go build -o nyanimedb . + tar -czvf nyanimedb-backend.tar.gz nyanimedb templates/ + - name: Upload built backend to artifactory + uses: actions/upload-artifact@v3 + with: + name: nyanimedb-backend.tar.gz + path: modules/backend/nyanimedb-backend.tar.gz + + # Build frontend + - uses: actions/setup-node@v5 + with: + node-version-file: 'modules/frontend/package.json' + cache: 'npm' + cache-dependency-path: modules/frontend/package-lock.json + + - name: Build frontend + run: | + cd modules/frontend + npm run build + tar -czvf nyanimedb-frontend.tar.gz dist/ + + - name: Upload built frontend to artifactory + uses: actions/upload-artifact@v3 + with: + name: nyanimedb-frontend.tar.gz + path: modules/frontend/nyanimedb-frontend.tar.gz + + # Build Docker images - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - # Build application - - name: Build Go app - run: | - cd modules/server - go mod tidy - go build -o nyanimedb . - - - name: Upload built application to artifactory - uses: actions/upload-artifact@v3 - with: - name: nyanimedb - path: modules/server/nyanimedb - - # Build Docker image - name: Login to Docker Hub uses: docker/login-action@v3 with: @@ -44,13 +65,21 @@ jobs: username: ${{ secrets.REGISTRY_USERNAME }} password: ${{ secrets.REGISTRY_TOKEN }} - - name: Build and push + - name: Build and push backend image uses: docker/build-push-action@v6 with: - context: ./modules/server - file: Dockerfiles/Dockerfile_server + file: Dockerfiles/Dockerfile_backend push: true - tags: meowgit.nekoea.red/nihonium/nyanimedb:latest + tags: meowgit.nekoea.red/nihonium/nyanimedb-backend:latest + + - name: Build and push frontend image + uses: docker/build-push-action@v6 + with: + build-args: + --build-arg VITE_BACKEND_API_BASE_URL=${BACKEND_API_BASE_URL} + file: Dockerfiles/Dockerfile_frontend + push: true + tags: meowgit.nekoea.red/nihonium/nyanimedb-frontend:latest deploy: runs-on: self-hosted