diff --git a/.gitea/workflows/publish.yaml b/.gitea/workflows/publish.yaml index 8399ee4..ab461f4 100644 --- a/.gitea/workflows/publish.yaml +++ b/.gitea/workflows/publish.yaml @@ -4,12 +4,17 @@ on: push: branches: - "main" + - "development" jobs: docker: runs-on: ubuntu-22.04 container: fascinated/docker-images:node-latest steps: + - name: Get branch name + id: branch-name + uses: tj-actions/branch-names@v7 + - name: checkout uses: actions/checkout@v3 @@ -22,9 +27,29 @@ jobs: username: ${{ secrets.REPO_USERNAME }} password: ${{ secrets.REPO_TOKEN }} - - name: Build and push + - name: Restore Docker Build Cache + uses: actions/cache@v3 + id: build-cache + with: + path: /tmp/.buildx-cache + key: ${{ runner.os }}-buildx + + - name: Build and Push (Latest) uses: docker/build-push-action@v4 + if: steps.branch-name.outputs.current_branch == 'master' with: push: true context: . tags: fascinated/beatsaber-overlay:latest + cache-from: type=local,src=/tmp/.buildx-cache + cache-to: type=local,dest=/tmp/.buildx-cache + + - name: Build and Push (Other Branches) + uses: docker/build-push-action@v4 + if: steps.branch-name.outputs.current_branch != 'master' + with: + push: true + context: . + tags: fascinated/beatsaber-overlay:${{ steps.branch-name.outputs.current_branch }} + cache-from: type=local,src=/tmp/.buildx-cache + cache-to: type=local,dest=/tmp/.buildx-cache diff --git a/Dockerfile b/Dockerfile index f42c762..68e626f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,5 @@ # Install dependencies only when needed -FROM node:19 AS deps +FROM node:20 AS deps # Check https://github.com/nodejs/docker-node/tree/b4117f9333da4138b03a546ec926ef50a31506c3#nodealpine to understand why libc6-compat might be needed. #RUN apk add libc6-compat WORKDIR /app @@ -20,7 +20,7 @@ RUN \ fi # Rebuild the source code only when needed -FROM node:19 AS builder +FROM node:20 AS builder WORKDIR /app COPY --from=deps /app/node_modules ./node_modules COPY . . @@ -31,7 +31,7 @@ ENV NEXT_TELEMETRY_DISABLED 1 RUN yarn build # Production image, copy all the files and run next -FROM node:19-alpine AS runner +FROM node:20-alpine AS runner WORKDIR /app ENV NODE_ENV production