Update docker base image #528
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Update docker base image | |
concurrency: | |
group: base-${{ github.ref }} | |
cancel-in-progress: true | |
on: | |
workflow_dispatch: | |
inputs: | |
base_image_vsn: | |
required: true | |
type: string | |
default: "5.0" | |
ref: | |
required: false | |
type: string | |
## Build base images to be used by other github workflows | |
jobs: | |
base: | |
runs-on: ${{ github.repository_owner == 'emqx' && matrix.platform[2] || '["ubuntu-latest"]' }} | |
strategy: | |
fail-fast: false | |
matrix: | |
base_image_vsn: | |
- ${{ github.event.inputs.base_image_vsn }} | |
platform: | |
- [ubuntu24.04, linux/amd64, [self-hosted, linux, x64, ephemeral]] | |
- [ubuntu24.04, linux/arm64, [self-hosted, linux, arm64, ephemeral]] | |
- [ubuntu22.04, linux/amd64, [self-hosted, linux, x64, ephemeral]] | |
- [ubuntu22.04, linux/arm64, [self-hosted, linux, arm64, ephemeral]] | |
- [ubuntu20.04, linux/amd64, [self-hosted, linux, x64, ephemeral]] | |
- [ubuntu20.04, linux/arm64, [self-hosted, linux, arm64, ephemeral]] | |
- [ubuntu18.04, linux/amd64, [self-hosted, linux, x64, ephemeral]] | |
- [ubuntu18.04, linux/arm64, [self-hosted, linux, arm64, ephemeral]] | |
- [debian12, linux/amd64, [self-hosted, linux, x64, ephemeral]] | |
- [debian12, linux/arm64, [self-hosted, linux, arm64, ephemeral]] | |
- [debian11, linux/amd64, [self-hosted, linux, x64, ephemeral]] | |
- [debian11, linux/arm64, [self-hosted, linux, arm64, ephemeral]] | |
- [debian10, linux/amd64, [self-hosted, linux, x64, ephemeral]] | |
- [debian10, linux/arm64, [self-hosted, linux, arm64, ephemeral]] | |
- [el9, linux/amd64, [self-hosted, linux, x64, ephemeral]] | |
- [el9, linux/arm64, [self-hosted, linux, arm64, ephemeral]] | |
- [el8, linux/amd64, [self-hosted, linux, x64, ephemeral]] | |
- [el8, linux/arm64, [self-hosted, linux, arm64, ephemeral]] | |
- [el7, linux/amd64, [self-hosted, linux, x64, ephemeral]] | |
- [el7, linux/arm64, [self-hosted, linux, arm64, ephemeral]] | |
- [amzn2, linux/amd64, [self-hosted, linux, x64, ephemeral]] | |
- [amzn2, linux/arm64, [self-hosted, linux, arm64, ephemeral]] | |
- [amzn2023, linux/amd64, [self-hosted, linux, x64, ephemeral]] | |
- [amzn2023, linux/arm64, [self-hosted, linux, arm64, ephemeral]] | |
- [alpine3.15.1, linux/amd64, [self-hosted, linux, x64, ephemeral]] | |
- [alpine3.15.1, linux/arm64, [self-hosted, linux, arm64, ephemeral]] | |
env: | |
REGISTRY_IMAGE: ghcr.io/${{ github.repository }}/base-${{ matrix.base_image_vsn }} | |
steps: | |
- uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 | |
with: | |
ref: ${{ github.event.inputs.ref }} | |
- uses: aws-actions/configure-aws-credentials@e3dd6a429d7300a6a4c196c26e071d42e0343502 # v4.0.2 | |
with: | |
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
aws-region: ${{ secrets.AWS_DEFAULT_REGION }} | |
- name: define base tag | |
id: base_tag | |
run: | | |
PLATFORM=${{ matrix.platform[1] }} | |
ARCH=${PLATFORM#linux/} | |
echo "tag=${{ matrix.platform[0] }}-${ARCH}" | tee -a $GITHUB_OUTPUT | |
- name: Get cache | |
run: aws s3 sync s3://docker-buildx-cache/emqx-builder/${{ steps.base_tag.outputs.tag }} /tmp/.docker-buildx-cache | |
- uses: docker/setup-buildx-action@d70bba72b1f3fd22344832f00baa16ece964efeb # v3.3.0 | |
- uses: docker/setup-qemu-action@68827325e0b33c7199eb31dd4e31fbe9023e06e3 # v3.0.0 | |
- uses: docker/login-action@e92390c5fb421da1463c202d546fed0ec5c39f20 # v3.1.0 | |
with: | |
registry: ghcr.io | |
username: ${{ github.actor }} | |
password: ${{ github.token }} | |
- uses: docker/metadata-action@8e5442c4ef9f78752691e2d8f8d19755c6f78e81 # v5.5.1 | |
id: base_meta | |
with: | |
images: ${{ env.REGISTRY_IMAGE }} | |
tags: type=raw,value=${{ steps.base_tag.outputs.tag }} | |
- name: Build base image | |
uses: docker/build-push-action@2cdde995de11925a030ce8070c3d77a52ffcf1c0 # v5.3.0 | |
with: | |
push: true | |
pull: true | |
cache-from: type=local,src=/tmp/.docker-buildx-cache,mode=max | |
cache-to: type=local,dest=/tmp/.docker-buildx-cache-new,mode=max | |
platforms: ${{ matrix.platform[1] }} | |
tags: ${{ steps.base_meta.outputs.tags }} | |
labels: ${{ steps.base_meta.outputs.labels }} | |
file: ${{ matrix.platform[0] }}/Dockerfile | |
context: . | |
- name: Update cache | |
run: aws s3 sync --delete /tmp/.docker-buildx-cache-new s3://docker-buildx-cache/emqx-builder/${{ steps.base_tag.outputs.tag }} |