mirror of
https://github.com/openvk/openvk
synced 2024-12-23 09:01:15 +03:00
Alexander Minkin
ef659beef4
* ci(actions): try using docker/build-push-action no pushes yet ofc * ci(actions): try using multilines to provide env vars * ci(actions): use full form env vars providing * ci(actions): try load flag * ci(actions): add uploading of built images as artifacts * ci(actions): use oci export type * ci(actions): try generating metadata with docker/metadata-action@v5 * ci(actions): individual tagging policy fo db images * ci(actions): improve prefixes for db images * ci: use matrix for different platforms * ci(actions): move DB images building to a different job * ci(actions): add labels to images * ci(actions): add running on pull_requests * ci(actions): return pushing to registry
144 lines
No EOL
5.2 KiB
YAML
144 lines
No EOL
5.2 KiB
YAML
name: Build images
|
|
|
|
on: [push, pull_request]
|
|
|
|
env:
|
|
BASE_IMAGE_NAME: openvk
|
|
DB_IMAGE_NAME: mariadb
|
|
EVENT_IMAGE_NAME: mariadb
|
|
DB_VERSION: "10.9"
|
|
|
|
jobs:
|
|
buildbase:
|
|
name: Build base images
|
|
strategy:
|
|
matrix:
|
|
platform: [amd64, arm64]
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- 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
|
|
id: repositorystring
|
|
uses: Entepotenz/change-string-case-action-min-dependencies@v1.1.0
|
|
with:
|
|
string: ${{ github.repository }}
|
|
|
|
- name: Base image meta
|
|
id: basemeta
|
|
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: 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 base image
|
|
uses: docker/build-push-action@v6
|
|
with:
|
|
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 DB images
|
|
strategy:
|
|
matrix:
|
|
platform: [amd64, arm64]
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- 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
|
|
id: repositorystring
|
|
uses: Entepotenz/change-string-case-action-min-dependencies@v1.1.0
|
|
with:
|
|
string: ${{ github.repository }}
|
|
|
|
- name: MariaDB primary meta
|
|
id: db-primarymeta
|
|
uses: docker/metadata-action@v5
|
|
with:
|
|
images: |
|
|
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
|
|
id: db-eventmeta
|
|
uses: docker/metadata-action@v5
|
|
with:
|
|
images: |
|
|
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
|
|
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/${{matrix.platform}}
|
|
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/${{matrix.platform}}
|
|
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}} |