name: build on: pull_request: paths: - ".github/workflows/ci-build.yml" - "backend/**" - "frontend/apps/**" - ".dockerignore" - "docker-init.sh" - "Dockerfile" - "!**.md" concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: build-images: name: Validate Docker build runs-on: ubuntu-latest permissions: contents: read steps: - uses: actions/checkout@v6 with: persist-credentials: false - name: set up Docker Buildx uses: docker/setup-buildx-action@v4 - name: expose GitHub Actions cache uses: actions/cache@v5 with: path: /tmp/.buildx-cache key: ${{ runner.os }}-buildx-${{ github.sha }} restore-keys: | ${{ runner.os }}-buildx- - name: free disk space run: | sudo rm -rf /usr/share/dotnet sudo rm -rf /opt/ghc sudo rm -rf /usr/local/share/boost docker system prune -af - name: build docker image without pushing run: | docker buildx build --load \ --cache-from type=local,src=/tmp/.buildx-cache \ --cache-to type=local,dest=/tmp/.buildx-cache-new,mode=max \ --build-arg SKIP_BACKEND_TEST=true --build-arg SKIP_FRONTEND_TEST=true \ --platform linux/amd64 . - name: build example docker image without pushing run: | docker buildx build --load \ --cache-from type=local,src=/tmp/.buildx-cache \ --build-arg SKIP_BACKEND_TEST=true --build-arg SKIP_FRONTEND_TEST=true \ --platform linux/amd64 -f backend/_example/memory_store/Dockerfile . - name: rotate cache run: | rm -rf /tmp/.buildx-cache mv /tmp/.buildx-cache-new /tmp/.buildx-cache || true