ci(actions): unparallel builds (#1217)

this should fix linux/amd64 showing up as unknown/unknown on ghcr
This commit is contained in:
Alexander Minkin 2025-01-28 20:41:26 +03:00 committed by GitHub
parent b713c964a3
commit 7fe0c6a122
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -3,142 +3,140 @@ name: Build images
on: [push, pull_request] on: [push, pull_request]
env: env:
BASE_IMAGE_NAME: openvk BASE_IMAGE_NAME: openvk
DB_IMAGE_NAME: mariadb DB_IMAGE_NAME: mariadb
EVENT_IMAGE_NAME: mariadb EVENT_IMAGE_NAME: mariadb
DB_VERSION: "10.9" DB_VERSION: '10.9'
jobs: jobs:
buildbase: buildbase:
name: Build base images name: Build base images
strategy:
matrix:
platform: [amd64, arm64]
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Set up QEMU - name: Set up QEMU
uses: docker/setup-qemu-action@v3 uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v3
- name: Change repository string to lowercase - name: Set up Docker Buildx
id: repositorystring id: buildx
uses: Entepotenz/change-string-case-action-min-dependencies@v1.1.0 uses: docker/setup-buildx-action@v3
with: with:
string: ${{ github.repository }} platforms: linux/amd64,linux/arm64
- name: Base image meta - name: Change repository string to lowercase
id: basemeta id: repositorystring
uses: docker/metadata-action@v5 uses: Entepotenz/change-string-case-action-min-dependencies@v1.1.0
with: with:
images: | string: ${{ github.repository }}
ghcr.io/${{ steps.repositorystring.outputs.lowercase }}/${{env.BASE_IMAGE_NAME}}
labels: |
org.opencontainers.image.documentation=https://github.com/OpenVK/openvk/blob/master/install/automated/docker/Readme.md
tags: |
type=sha
type=ref,event=branch
type=ref,event=pr
type=ref,event=tag
type=raw,value=latest,enable={{is_default_branch}}
- name: Log into registry - name: Base image meta
if: github.event_name != 'pull_request' id: basemeta
run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin uses: docker/metadata-action@v5
with:
images: |
ghcr.io/${{ steps.repositorystring.outputs.lowercase }}/${{env.BASE_IMAGE_NAME}}
labels: |
org.opencontainers.image.documentation=https://github.com/OpenVK/openvk/blob/master/install/automated/docker/Readme.md
tags: |
type=sha
type=ref,event=branch
type=ref,event=pr
type=ref,event=tag
type=raw,value=latest,enable={{is_default_branch}}
- name: Build base image - name: Log into registry
uses: docker/build-push-action@v6 if: github.event_name != 'pull_request'
with: run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin
platforms: linux/${{matrix.platform}}
file: install/automated/docker/openvk.Dockerfile
tags: ${{ steps.basemeta.outputs.tags }}
labels: ${{ steps.basemeta.outputs.labels }}
push: ${{ github.event_name != 'pull_request' }}
build-args: |
GITREPO=${{ steps.repositorystring.outputs.lowercase }}
builddb: - name: Build base image
name: Build DB images uses: docker/build-push-action@v6
strategy: with:
matrix: platforms: linux/amd64,linux/arm64
platform: [amd64, arm64] file: install/automated/docker/openvk.Dockerfile
tags: ${{ steps.basemeta.outputs.tags }}
labels: ${{ steps.basemeta.outputs.labels }}
push: ${{ github.event_name != 'pull_request' }}
build-args: |
GITREPO=${{ steps.repositorystring.outputs.lowercase }}
runs-on: ubuntu-latest builddb:
name: Build DB images
steps: runs-on: ubuntu-latest
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v3
- name: Change repository string to lowercase steps:
id: repositorystring - name: Set up QEMU
uses: Entepotenz/change-string-case-action-min-dependencies@v1.1.0 uses: docker/setup-qemu-action@v3
with:
string: ${{ github.repository }}
- name: MariaDB primary meta - name: Set up Docker Buildx
id: db-primarymeta id: buildx
uses: docker/metadata-action@v5 uses: docker/setup-buildx-action@v3
with: with:
images: | platforms: linux/amd64,linux/arm64
ghcr.io/${{ steps.repositorystring.outputs.lowercase }}/${{env.DB_IMAGE_NAME}}
labels: |
org.opencontainers.image.title=OpenVK MariaDB (Primary)
org.opencontainers.image.description=OpenVK's image for MariaDB for primary database.
org.opencontainers.image.documentation=https://github.com/OpenVK/openvk/blob/master/install/automated/docker/Readme.md
tags: |
type=sha,prefix=${{env.DB_VERSION}}-primary-sha-
type=ref,event=branch,prefix=${{env.DB_VERSION}}-primary-
type=ref,event=pr,prefix=${{env.DB_VERSION}}-primary-pr-
type=ref,event=tag,prefix=${{env.DB_VERSION}}-primary-
type=raw,value=${{env.DB_VERSION}}-primary,enable={{is_default_branch}}
- name: MariaDB event meta - name: Change repository string to lowercase
id: db-eventmeta id: repositorystring
uses: docker/metadata-action@v5 uses: Entepotenz/change-string-case-action-min-dependencies@v1.1.0
with: with:
images: | string: ${{ github.repository }}
ghcr.io/${{ steps.repositorystring.outputs.lowercase }}/${{env.DB_IMAGE_NAME}}
labels: |
org.opencontainers.image.title=OpenVK MariaDB (EventDB)
org.opencontainers.image.description=OpenVK's image for MariaDB for event database.
org.opencontainers.image.documentation=https://github.com/OpenVK/openvk/blob/master/install/automated/docker/Readme.md
tags: |
type=sha,prefix=${{env.DB_VERSION}}-eventdb-sha-
type=ref,event=branch,prefix=${{env.DB_VERSION}}-eventdb-
type=ref,event=pr,prefix=${{env.DB_VERSION}}-eventdb-pr-
type=ref,event=tag,prefix=${{env.DB_VERSION}}-eventdb-
type=raw,value=${{env.DB_VERSION}}-eventdb,enable={{is_default_branch}}
- name: Log into registry - name: MariaDB primary meta
if: github.event_name != 'pull_request' id: db-primarymeta
run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin uses: docker/metadata-action@v5
with:
- name: Build MariaDB primary image images: |
uses: docker/build-push-action@v6 ghcr.io/${{ steps.repositorystring.outputs.lowercase }}/${{env.DB_IMAGE_NAME}}
with: labels: |
push: ${{ github.event_name != 'pull_request' }} org.opencontainers.image.title=OpenVK MariaDB (Primary)
platforms: linux/${{matrix.platform}} org.opencontainers.image.description=OpenVK's image for MariaDB for primary database.
file: install/automated/docker/mariadb-primary.Dockerfile org.opencontainers.image.documentation=https://github.com/OpenVK/openvk/blob/master/install/automated/docker/Readme.md
tags: ${{ steps.db-primarymeta.outputs.tags }} tags: |
labels: ${{ steps.db-primarymeta.outputs.labels }} type=sha,prefix=${{env.DB_VERSION}}-primary-sha-
build-args: | type=ref,event=branch,prefix=${{env.DB_VERSION}}-primary-
VERSION=${{env.DB_VERSION}} type=ref,event=pr,prefix=${{env.DB_VERSION}}-primary-pr-
type=ref,event=tag,prefix=${{env.DB_VERSION}}-primary-
- name: Build MariaDB event image type=raw,value=${{env.DB_VERSION}}-primary,enable={{is_default_branch}}
uses: docker/build-push-action@v6
with: - name: MariaDB event meta
push: ${{ github.event_name != 'pull_request' }} id: db-eventmeta
platforms: linux/${{matrix.platform}} uses: docker/metadata-action@v5
file: install/automated/docker/mariadb-eventdb.Dockerfile with:
tags: ${{ steps.db-eventmeta.outputs.tags }} images: |
labels: ${{ steps.db-eventmeta.outputs.labels }} ghcr.io/${{ steps.repositorystring.outputs.lowercase }}/${{env.DB_IMAGE_NAME}}
build-args: | labels: |
VERSION=${{env.DB_VERSION}} org.opencontainers.image.title=OpenVK MariaDB (EventDB)
org.opencontainers.image.description=OpenVK's image for MariaDB for event database.
org.opencontainers.image.documentation=https://github.com/OpenVK/openvk/blob/master/install/automated/docker/Readme.md
tags: |
type=sha,prefix=${{env.DB_VERSION}}-eventdb-sha-
type=ref,event=branch,prefix=${{env.DB_VERSION}}-eventdb-
type=ref,event=pr,prefix=${{env.DB_VERSION}}-eventdb-pr-
type=ref,event=tag,prefix=${{env.DB_VERSION}}-eventdb-
type=raw,value=${{env.DB_VERSION}}-eventdb,enable={{is_default_branch}}
- name: Log into registry
if: github.event_name != 'pull_request'
run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin
- name: Build MariaDB primary image
uses: docker/build-push-action@v6
with:
push: ${{ github.event_name != 'pull_request' }}
platforms: linux/amd64,linux/arm64
file: install/automated/docker/mariadb-primary.Dockerfile
tags: ${{ steps.db-primarymeta.outputs.tags }}
labels: ${{ steps.db-primarymeta.outputs.labels }}
build-args: |
VERSION=${{env.DB_VERSION}}
- name: Build MariaDB event image
uses: docker/build-push-action@v6
with:
push: ${{ github.event_name != 'pull_request' }}
platforms: linux/amd64,linux/arm64
file: install/automated/docker/mariadb-eventdb.Dockerfile
tags: ${{ steps.db-eventmeta.outputs.tags }}
labels: ${{ steps.db-eventmeta.outputs.labels }}
build-args: |
VERSION=${{env.DB_VERSION}}