diff --git a/.gitea/workflows/dev.yml b/.gitea/workflows/dev.yml index 393cce2..1a6c9aa 100644 --- a/.gitea/workflows/dev.yml +++ b/.gitea/workflows/dev.yml @@ -1,4 +1,4 @@ -name: Dev Build +name: Dev Build & Deploy on: pull_request: @@ -6,40 +6,88 @@ on: push: branches: [dev] +env: + REGISTRY: code.cubecraftcreations.com + BACKEND_IMAGE: ${{ gitea.repository }}/backend + FRONTEND_IMAGE: ${{ gitea.repository }}/frontend + jobs: - build-test: - runs-on: ubuntu-dotnet + test-and-build: + runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - name: Restore backend - run: dotnet restore + - name: Setup Go + uses: actions/setup-go@v5 + with: + go-version: "1.23" + + - name: Run backend tests + run: go test ./... + working-directory: ./go-backend - name: Build backend - run: dotnet build --no-restore --configuration Release - - - name: Test backend - run: dotnet test --no-build --configuration Release + run: go build -ldflags="-w -s" -o /tmp/server ./cmd/server + working-directory: ./go-backend - name: Setup Node uses: actions/setup-node@v4 with: - node-version: "24" + node-version: "22" - name: Install frontend deps run: npm ci working-directory: ./frontend + - name: Lint frontend + run: npm run lint + working-directory: ./frontend + - name: Build frontend run: npm run build working-directory: ./frontend - deploy-dev: - needs: build-test + docker-build-push: + needs: test-and-build if: gitea.event_name == 'push' runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Login to Gitea Container Registry + uses: docker/login-action@v3 + with: + registry: ${{ env.REGISTRY }} + username: ${{ gitea.actor }} + password: ${{ secrets.GITEA_TOKEN }} + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Build & push backend image + uses: docker/build-push-action@v6 + with: + context: ./go-backend + push: true + tags: | + ${{ env.REGISTRY }}/${{ env.BACKEND_IMAGE }}:dev + ${{ env.REGISTRY }}/${{ env.BACKEND_IMAGE }}:${{ gitea.sha }} + + - name: Build & push frontend image + uses: docker/build-push-action@v6 + with: + context: ./frontend + push: true + tags: | + ${{ env.REGISTRY }}/${{ env.FRONTEND_IMAGE }}:dev + ${{ env.REGISTRY }}/${{ env.FRONTEND_IMAGE }}:${{ gitea.sha }} + + deploy-dev: + needs: docker-build-push + runs-on: ubuntu-latest + steps: - name: Deploy dev run: | @@ -47,4 +95,4 @@ jobs: chmod 600 /tmp/dev_key ssh -i /tmp/dev_key -o StrictHostKeyChecking=no \ ${{ secrets.DEV_DEPLOY_USER }}@${{ secrets.DEV_DEPLOY_HOST }} \ - "${{ secrets.DEV_DEPLOY_PATH }}/deploy.sh" \ No newline at end of file + "${{ secrets.DEV_DEPLOY_PATH }}/deploy.sh"