From 43231d7ec344e4fd1bf64ec278dfccfd54062d4f Mon Sep 17 00:00:00 2001 From: Aram Akhavan Date: Sun, 8 Feb 2026 13:57:45 -0800 Subject: [PATCH] Build nightlies for all images (#897) Closes #894 --- .github/workflows/docker-nightly.yaml | 82 ++++++++++++++++++++------- 1 file changed, 63 insertions(+), 19 deletions(-) diff --git a/.github/workflows/docker-nightly.yaml b/.github/workflows/docker-nightly.yaml index 267cae5..18bc85f 100644 --- a/.github/workflows/docker-nightly.yaml +++ b/.github/workflows/docker-nightly.yaml @@ -1,5 +1,7 @@ name: Docker - Nightly on: + workflow_dispatch: + # Note: this only runs on the default branch schedule: - cron: '36 12 * * *' @@ -8,7 +10,7 @@ env: IMAGE_NAME: ${{ github.repository }} jobs: - omnibus: + build_nightlies: runs-on: ubuntu-latest permissions: contents: read @@ -16,44 +18,86 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v2 + uses: actions/checkout@v6 - name: "Populate frontend version information" run: "cd webapp/frontend && ./git.version.sh" - name: Set up QEMU - uses: docker/setup-qemu-action@v2 + uses: docker/setup-qemu-action@v3 with: - platforms: 'arm64,arm' + platforms: 'arm64' - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 + uses: docker/setup-buildx-action@v3 # Login against a Docker registry except on PR # https://github.com/docker/login-action - name: Log into registry ${{ env.REGISTRY }} - if: github.event_name != 'pull_request' - uses: docker/login-action@v2 + uses: docker/login-action@v3 with: registry: ${{ env.REGISTRY }} username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} # Extract metadata (tags, labels) for Docker # https://github.com/docker/metadata-action - - name: Extract Docker metadata - id: meta - uses: docker/metadata-action@v4 + - name: Extract Docker metadata for omnibus + id: meta_omnibus + uses: docker/metadata-action@v5 with: tags: | - type=ref,enable=true,event=branch,suffix=-omnibus-nightly - type=ref,enable=true,event=tag,suffix=-omnibus-nightly + type=schedule,enable=true,pattern=nightly,suffix=-omnibus images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} # Build and push Docker image with Buildx (don't push on PR) # https://github.com/docker/build-push-action - - name: Build and push Docker image - uses: docker/build-push-action@v3 + - name: Build and push omnibus Docker image + uses: docker/build-push-action@v6 with: platforms: linux/amd64,linux/arm64 context: . file: docker/Dockerfile - push: false - tags: ${{ steps.meta.outputs.tags }} - labels: ${{ steps.meta.outputs.labels }} -# cache-from: type=gha -# cache-to: type=gha,mode=max + push: true + tags: ${{ steps.meta_omnibus.outputs.tags }} + labels: ${{ steps.meta_omnibus.outputs.labels }} + cache-from: type=gha + cache-to: type=gha,mode=max + # Extract metadata (tags, labels) for Docker + # https://github.com/docker/metadata-action + - name: Extract Docker metadata for collector + id: meta_collector + uses: docker/metadata-action@v5 + with: + tags: | + type=schedule,enable=true,pattern=nightly,suffix=-collector + images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} + # Build and push Docker image with Buildx (don't push on PR) + # https://github.com/docker/build-push-action + - name: Build and push collector Docker image + uses: docker/build-push-action@v6 + with: + platforms: linux/amd64,linux/arm64 + context: . + file: docker/Dockerfile.collector + push: true + tags: ${{ steps.meta_collector.outputs.tags }} + labels: ${{ steps.meta_collector.outputs.labels }} + cache-from: type=gha + cache-to: type=gha,mode=max + # Extract metadata (tags, labels) for Docker + # https://github.com/docker/metadata-action + - name: Extract Docker metadata for web + id: meta_web + uses: docker/metadata-action@v5 + with: + tags: | + type=schedule,enable=true,pattern=nightly,suffix=-web + images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} + # Build and push Docker image with Buildx (don't push on PR) + # https://github.com/docker/build-push-action + - name: Build and push web Docker image + uses: docker/build-push-action@v6 + with: + platforms: linux/amd64,linux/arm64 + context: . + file: docker/Dockerfile.web + push: true + tags: ${{ steps.meta_web.outputs.tags }} + labels: ${{ steps.meta_web.outputs.labels }} + cache-from: type=gha + cache-to: type=gha,mode=max