Initial commit
This commit is contained in:
commit
4dc067cec0
9
README.md
Normal file
9
README.md
Normal 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
28
build.yaml
Normal 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
30
manifest.yaml
Normal 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
|
Loading…
Reference in New Issue
Block a user