From 24a1b4d2a3064e7f198a3f5a9bd869032946cc2b Mon Sep 17 00:00:00 2001 From: Jesse Hallam Date: Fri, 31 Oct 2025 12:11:22 -0300 Subject: [PATCH] Consolidate build server image (#34025) * only build for mattermostdevelopment/mattermost-build-server-fips * calculate go version from Docker image, not .go-version * allow manual dispach of build-server-image --- .github/workflows/build-server-image.yml | 33 ++++--- .../dispatch-server-builder-image.yml | 98 ------------------- 2 files changed, 20 insertions(+), 111 deletions(-) delete mode 100644 .github/workflows/dispatch-server-builder-image.yml diff --git a/.github/workflows/build-server-image.yml b/.github/workflows/build-server-image.yml index 67004336eb7..1ae3f7fdfe6 100644 --- a/.github/workflows/build-server-image.yml +++ b/.github/workflows/build-server-image.yml @@ -13,6 +13,11 @@ on: - server/build/Dockerfile.buildenv - server/build/Dockerfile.buildenv-fips - .github/workflows/build-server-image.yml + workflow_dispatch: + inputs: + branch: + description: "Git branch or PR ref to build" + required: true env: CHAINCTL_IDENTITY: ee399b4c72dd4e58e3d617f78fc47b74733c9557/922f2d48307d6f5f @@ -29,11 +34,6 @@ jobs: - name: buildenv/checkout-repo uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - - name: buildenv/calculate-golang-version - working-directory: server/ - id: go - run: echo GO_VERSION=$(cat .go-version) >> "${GITHUB_OUTPUT}" - - name: buildenv/docker-login uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3.4.0 with: @@ -54,6 +54,12 @@ jobs: run: | docker run --rm mattermostdevelopment/mattermost-build-server:test /bin/sh -c "go version && node --version" + - name: buildenv/calculate-golang-version + id: go + run: | + GO_VERSION=$(docker run --rm mattermostdevelopment/mattermost-build-server:test go version | awk '{print $3}' | sed 's/go//') + echo "GO_VERSION=${GO_VERSION}" >> "${GITHUB_OUTPUT}" + - name: buildenv/push if: github.ref == 'refs/heads/master' uses: docker/build-push-action@1dc73863535b631f98b2378be8619f83b136f4a0 # v6.17.0 @@ -74,11 +80,6 @@ jobs: - name: buildenv/checkout-repo uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - - name: buildenv/calculate-golang-version - working-directory: server/ - id: go - run: echo GO_VERSION=$(cat .go-version) >> "${GITHUB_OUTPUT}" - - name: buildenv/docker-login uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3.4.0 with: @@ -93,11 +94,17 @@ jobs: load: true push: false pull: false - tags: mattermost/mattermost-build-server-fips:test + tags: mattermostdevelopment/mattermost-build-server-fips:test - name: buildenv/test run: | - docker run --rm --entrypoint bash mattermost/mattermost-build-server-fips:test -c "go version && node --version" + docker run --rm --entrypoint bash mattermostdevelopment/mattermost-build-server-fips:test -c "go version && node --version" + + - name: buildenv/calculate-golang-version + id: go + run: | + GO_VERSION=$(docker run --rm --entrypoint bash mattermostdevelopment/mattermost-build-server-fips:test -c "go version" | awk '{print $3}' | sed 's/go//') + echo "GO_VERSION=${GO_VERSION}" >> "${GITHUB_OUTPUT}" - name: buildenv/push if: github.ref == 'refs/heads/master' @@ -108,4 +115,4 @@ jobs: load: false push: true pull: true - tags: mattermost/mattermost-build-server-fips:${{ steps.go.outputs.GO_VERSION }} + tags: mattermostdevelopment/mattermost-build-server-fips:${{ steps.go.outputs.GO_VERSION }} diff --git a/.github/workflows/dispatch-server-builder-image.yml b/.github/workflows/dispatch-server-builder-image.yml deleted file mode 100644 index 9abc52a94c0..00000000000 --- a/.github/workflows/dispatch-server-builder-image.yml +++ /dev/null @@ -1,98 +0,0 @@ -# .github/workflows/dispatch-build.yml -name: Build & Push New Golang Docker Build Server Image - -on: - workflow_dispatch: - inputs: - branch: - description: "Git branch or PR ref to build" - required: true - tag: - description: "Docker image tag (e.g. v1.2.3 or latest)" - required: true - -env: - CHAINCTL_IDENTITY: ee399b4c72dd4e58e3d617f78fc47b74733c9557/922f2d48307d6f5f - -# Permissions required for chainguard-dev/setup-chainctl -permissions: - id-token: write - contents: read - -jobs: - build-and-push: - runs-on: ubuntu-24.04 - env: - IMAGE_TAG: ${{ github.event.inputs.tag }} - - steps: - - name: Checkout code - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 #4.2.2 - with: - ref: ${{ github.event.inputs.branch }} - - - name: Set up QEMU (optional, for multi-arch) - uses: docker/setup-qemu-action@29109295f81e9208d7d86ff1c6c12d2833863392 - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@f7ce87c1d6bead3e36075b2ce75da1f6cc28aaca - - - name: Login to DockerHub (development repo) - uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 - with: - registry: docker.io - username: ${{ secrets.DOCKERHUB_DEV_USERNAME }} - password: ${{ secrets.DOCKERHUB_DEV_TOKEN }} - - - name: Build & push development image - run: | - docker buildx build \ - --tag mattermostdevelopment/mattermost-build-server:"${IMAGE_TAG}" \ - --push \ - -f server/build/Dockerfile.buildenv . - - - name: Login to DockerHub (production repo) - uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 - with: - registry: docker.io - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - - - name: Build & push production image - run: | - docker buildx build \ - --tag mattermost/mattermost-build-server:"${IMAGE_TAG}" \ - --push \ - -f server/build/Dockerfile.buildenv . - - build-and-push-fips: - runs-on: ubuntu-24.04 - - steps: - - uses: chainguard-dev/setup-chainctl@f4ed65b781b048c44d4f033ae854c025c5531c19 # v0.3.2 - with: - identity: ${{ env.CHAINCTL_IDENTITY }} - - name: Checkout code - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 #4.2.2 - with: - ref: ${{ github.event.inputs.branch }} - - - name: Set up QEMU (optional, for multi-arch) - uses: docker/setup-qemu-action@29109295f81e9208d7d86ff1c6c12d2833863392 - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@f7ce87c1d6bead3e36075b2ce75da1f6cc28aaca - - - name: Login to DockerHub (production repo) - uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 - with: - registry: docker.io - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - - - name: Build & push production image - run: | - docker buildx build \ - --tag mattermost/mattermost-build-server-fips:${{ github.event.inputs.tag }} \ - --push \ - -f server/build/Dockerfile.buildenv-fips .