Initial commit

This commit is contained in:
Lauri Võsandi 2024-08-20 12:47:18 +03:00
commit 4dc067cec0
3 changed files with 67 additions and 0 deletions

9
README.md Normal file
View File

@ -0,0 +1,9 @@
# Multiarch Docker image build pipeline
Include this repository as `.woodpecker` submodule in your Git repository
This pipeline follows some patterns:
* All images are built multiarch amd64 and arm64 both
* Image names are consistently mapped between Git repo and Harbor, so
git.k-space.ee/foo/bar becomes harbor.k-space.ee/foo/bar

28
build.yaml Normal file
View File

@ -0,0 +1,28 @@
---
matrix:
ARCH:
- amd64
- arm64
steps:
- name: build
image: woodpeckerci/plugin-kaniko
backend_options:
kubernetes:
nodeSelector:
kubernetes.io/arch: ${ARCH}
tolerations:
- key: arch
operator: Equal
value: ${ARCH}
effect: NoSchedule
settings:
repo: ${CI_REPO}
registry: harbor.k-space.ee
tags: latest-${ARCH}
username:
from_secret: docker_username
password:
from_secret: docker_password
when:
- branch: master

30
manifest.yaml Normal file
View File

@ -0,0 +1,30 @@
---
skip_clone: true
steps:
- name: manifest
image: mirror.gcr.io/mplatform/manifest-tool:alpine-v2.1.6
secrets:
- docker_username
- docker_password
commands:
- |
cat << EOF > spec.yaml
image: "harbor.k-space.ee/${CI_REPO}:latest"
manifests:
- image: "harbor.k-space.ee/${CI_REPO}:latest-amd64"
platform:
architecture: amd64
os: linux
- image: "harbor.k-space.ee/${CI_REPO}:latest-arm64"
platform:
architecture: arm64
os: linux
EOF
- /manifest-tool --username $docker_username --password $docker_password push from-spec spec.yaml > stdout
- cat stdout
when:
- branch: master
depends_on:
- build