mirror of
https://github.com/mattermost/mattermost.git
synced 2026-08-27 05:37:15 -05:00
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
This commit is contained in:
@@ -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 }}
|
||||
|
||||
@@ -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 .
|
||||
Reference in New Issue
Block a user