when: - event: push path: - 'keycloak/**' - '.woodpecker/keycloak.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 KEYCLOAK_VERSION instead of setting the KEYCLOAK_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: KEYCLOAK_VERSION: - 25.0 IMAGE_NAME: - git.hamburg.ccc.de/ccchh/oci-images/keycloak steps: - name: setup-image-path image: alpine commands: - mkdir /woodpecker/images - name: build-image image: gcr.io/kaniko-project/executor entrypoint: - /kaniko/executor - --context=dir:///woodpecker/src/keycloak - --dockerfile=./Containerfile - --build-arg=TAG=${KEYCLOAK_VERSION} - --destination=${IMAGE_NAME}:${KEYCLOAK_VERSION} - --no-push - --tar-path=/woodpecker/images/keycloak.tar - name: publish-image image: 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/keycloak.tar $IMAGE_NAME:$KEYCLOAK_VERSION-$CI_COMMIT_BRANCH - name: tag-version image: 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:$KEYCLOAK_VERSION-$CI_COMMIT_BRANCH $KEYCLOAK_VERSION - name: tag-latest image: alpine when: - branch: main evaluate: 'KEYCLOAK_VERSION == "25.0"' 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:$KEYCLOAK_VERSION-$CI_COMMIT_BRANCH latest