June
2906ee45d8
Every image gets pushed with a unique version-branch tag by default and then the version and latest tags get only tagged from the main branch and the main branch and the desired version respectively.
75 lines
2.2 KiB
YAML
75 lines
2.2 KiB
YAML
when:
|
|
- event: push
|
|
path:
|
|
- 'nextcloud/**'
|
|
- '.woodpecker/nextcloud.yaml'
|
|
- event: cron
|
|
cron: daily
|
|
|
|
# Manually set a workspace path, so we can use it literally, without using
|
|
# ${CI_WORKSPACE}, when running kaniko, since using ${CI_WORKSPACE} doesn't work.
|
|
# https://github.com/woodpecker-ci/woodpecker/issues/3982
|
|
workspace:
|
|
path: src
|
|
|
|
# Use matrix to set NEXTCLOUD_VERSION instead of setting the NEXTCLOUD_VERSION as
|
|
# an environment variable in the build-images step, since string substitution
|
|
# doesn't work for custom environment variables.
|
|
# https://github.com/woodpecker-ci/woodpecker/issues/3983
|
|
# Also because global environment variables aren't a thing.
|
|
matrix:
|
|
NEXTCLOUD_VERSION:
|
|
- 28
|
|
- 29
|
|
IMAGE_NAME:
|
|
- git.hamburg.ccc.de/ccchh/oci-images/nextcloud
|
|
|
|
steps:
|
|
- name: setup-image-path
|
|
image: docker.io/library/alpine
|
|
commands:
|
|
- mkdir /woodpecker/images
|
|
|
|
- name: build-image
|
|
image: gcr.io/kaniko-project/executor
|
|
entrypoint:
|
|
- /kaniko/executor
|
|
- --context=dir:///woodpecker/src/nextcloud
|
|
- --dockerfile=./Containerfile
|
|
- --build-arg=TAG=${NEXTCLOUD_VERSION}
|
|
- --destination=${IMAGE_NAME}:${NEXTCLOUD_VERSION}
|
|
- --no-push
|
|
- --tar-path=/woodpecker/images/nextcloud.tar
|
|
|
|
- name: publish-image
|
|
image: docker.io/library/alpine
|
|
secrets:
|
|
- GIT_API_TOKEN
|
|
commands:
|
|
- apk -u add crane
|
|
- crane auth login git.hamburg.ccc.de -u woodpecker -p $GIT_API_TOKEN
|
|
- crane push /woodpecker/images/nextcloud.tar $IMAGE_NAME:$NEXTCLOUD_VERSION-$CI_COMMIT_BRANCH
|
|
|
|
- name: tag-version
|
|
image: docker.io/library/alpine
|
|
when:
|
|
- branch: main
|
|
secrets:
|
|
- GIT_API_TOKEN
|
|
commands:
|
|
- apk -u add crane
|
|
- crane auth login git.hamburg.ccc.de -u woodpecker -p $GIT_API_TOKEN
|
|
- crane tag $IMAGE_NAME:$NEXTCLOUD_VERSION-$CI_COMMIT_BRANCH $NEXTCLOUD_VERSION
|
|
|
|
- name: tag-latest
|
|
image: docker.io/library/alpine
|
|
when:
|
|
- branch: main
|
|
evaluate: 'NEXTCLOUD_VERSION == "28"'
|
|
secrets:
|
|
- GIT_API_TOKEN
|
|
commands:
|
|
- apk -u add crane
|
|
- crane auth login git.hamburg.ccc.de -u woodpecker -p $GIT_API_TOKEN
|
|
- crane tag $IMAGE_NAME:$NEXTCLOUD_VERSION-$CI_COMMIT_BRANCH latest
|