From 9d5d81854fd04aabe549e864ab2672fe728383d7 Mon Sep 17 00:00:00 2001 From: lilly Date: Fri, 15 May 2026 09:40:53 +0200 Subject: [PATCH] migrate keycloak workflows to forgejo actions --- .forgejo/workflows/build_keycloak.yml | 47 +++++++++++++++ .woodpecker/keycloak.yaml | 85 --------------------------- 2 files changed, 47 insertions(+), 85 deletions(-) create mode 100644 .forgejo/workflows/build_keycloak.yml delete mode 100644 .woodpecker/keycloak.yaml diff --git a/.forgejo/workflows/build_keycloak.yml b/.forgejo/workflows/build_keycloak.yml new file mode 100644 index 0000000..7403007 --- /dev/null +++ b/.forgejo/workflows/build_keycloak.yml @@ -0,0 +1,47 @@ +name: Build Keycloak + +on: + workflow_dispatch: {} + push: {} + schedule: + - cron: "@daily" + +jobs: + build-container: + name: Build Keycloak Image + runs-on: docker + container: + image: ghcr.io/osscontainertools/kaniko:alpine + strategy: + matrix: + # renovate: datasource=docker depName=quay.io/keycloak/keycloak + keycloak-version: [ 26.6.0 ] + steps: + - name: Install required system packages + run: apk add --no-cache nodejs maven git + + - name: Checkout Source Code + uses: actions/checkout@v6 + + - name: Build attribute-endpoints-provider + run: | + git clone https://git.hamburg.ccc.de/CCCHH/keycloak-attribute-endpoints-provider.git + cd keycloak-attribute-endpoints-provider + mvn -f attribute-endpoints-provider verify + cp attribute-endpoints-provider/target/attribute-endpoints-provider-1.0-SNAPSHOT.jar ${{ forgejo.workspace }}/keycloak/attribute-endpoints-provider.jar + + - name: Build Container + env: + KANIKO_NO_PUSH: ${{ forgejo.ref_name != 'main' }} + KANIKO_GIT_HAMBURG_CCC_DE_USER: forgejo-actions + KANIKO_GIT_HAMBURG_CCC_DE_PASSWORD: ${{ secrets.PACKAGES_TOKEN }} + run: /kaniko/executor + --dockerfile="${{forgejo.workspace }}/keycloak/Containerfile" + --context="dir://${{ forgejo.workspace }}/keycloak" + --build-arg=TAG=${{ matrix.keycloak-version }} + --destination=git.hamburg.ccc.de/ccchh/oci-images/keycloak:${{ matrix.keycloak-version }} + --no-push-cache + --credential-helpers=env + --annotation=org.opencontainers.image.ref.name=keycloak + --annotation=org.opencontainers.image.url=${{ forgejo.server_url }}/${{ forgejo.repository }} + --annotation=org.opencontainers.image.source=${{ forgejo.server_url }}/${{ forgejo.repository }} diff --git a/.woodpecker/keycloak.yaml b/.woodpecker/keycloak.yaml deleted file mode 100644 index 2f76bd8..0000000 --- a/.woodpecker/keycloak.yaml +++ /dev/null @@ -1,85 +0,0 @@ -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: - # renovate: datasource=docker depName=quay.io/keycloak/keycloak - - 26.6.0 - IMAGE_NAME: - - git.hamburg.ccc.de/ccchh/oci-images/keycloak - -steps: - - name: setup-image-path - image: alpine - commands: - - mkdir /woodpecker/images - - - name: build-attribute-endpoints-provider - image: alpine - commands: - - apk -u add maven git - - git clone https://git.hamburg.ccc.de/CCCHH/keycloak-attribute-endpoints-provider.git - - cd keycloak-attribute-endpoints-provider - - mvn -f attribute-endpoints-provider verify - - cp attribute-endpoints-provider/target/attribute-endpoints-provider-1.0-SNAPSHOT.jar /woodpecker/src/keycloak/attribute-endpoints-provider.jar - - - 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 - environment: - GIT_API_TOKEN: - from_secret: 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 - environment: - GIT_API_TOKEN: - from_secret: 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 - environment: - GIT_API_TOKEN: - from_secret: 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