Skip to content

Commit

Permalink
build: manipulate the ci for building the current branch
Browse files Browse the repository at this point in the history
  • Loading branch information
odafna committed Feb 20, 2024
1 parent 7e4baad commit 8e1a71a
Showing 1 changed file with 139 additions and 210 deletions.
349 changes: 139 additions & 210 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ on:
push:
branches:
- main
- supportRealmRoleAttributesUpdate
paths-ignore:
- 'README.md'
- 'CHANGELOG.md'
Expand All @@ -28,11 +29,7 @@ jobs:
matrix:
env:
# we keep 18.0.2 for backwards compatibility with RH-SSO 7.6
- KEYCLOAK_VERSION: 18.0.2
- KEYCLOAK_VERSION: 19.0.3
- KEYCLOAK_VERSION: 20.0.5
- KEYCLOAK_VERSION: 21.1.1
- KEYCLOAK_VERSION: 22.0.4
steps:
- uses: actions/checkout@v3
with:
Expand All @@ -44,12 +41,6 @@ jobs:
distribution: 'temurin'
java-version: 17

- uses: actions/cache@v3
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ matrix.env.KEYCLOAK_VERSION }}-${{ hashFiles('**/pom.xml') }}
restore-keys: ${{ runner.os }}-maven-${{ matrix.env.KEYCLOAK_VERSION }}

- name: Adapt sources for Keycloak versions < 22.0.0 (jakarta -> javax)
if: ${{ matrix.env.KEYCLOAK_VERSION < '22.0.0' }}
run: |
Expand All @@ -59,71 +50,9 @@ jobs:
- name: Build & Test
run: ./mvnw ${MAVEN_CLI_OPTS} -Dkeycloak.version=${{ matrix.env.KEYCLOAK_VERSION }} ${ADJUSTED_RESTEASY_VERSION} clean verify -Pcoverage ${JAVAX_PROFILE}

- name: Upload coverage to Codecov
uses: codecov/codecov-action@v3
with:
file: "${{ github.workspace }}/target/site/jacoco/jacoco.xml"
fail_ci_if_error: ${{ !startsWith(github.event.ref, 'refs/tags/v') }}

- name: Get latest keycloak version
id: latest
run: echo "::set-output name=VERSION::$(tail -n1 .env | cut -d= -f2)"

- name: Login to Docker Hub
uses: docker/login-action@v2.2.0
if: startsWith(github.event.ref, 'refs/tags/v')
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}

- name: Login to Quay.io
uses: docker/login-action@v2.2.0
if: startsWith(github.event.ref, 'refs/tags/v')
with:
registry: quay.io
username: ${{ secrets.QUAYIO_USERNAME }}
password: ${{ secrets.QUAYIO_PASSWORD }}

- name: Expose GitHub Runtime
uses: crazy-max/ghaction-github-runtime@v2

- name: Set up Docker Build Metadata
id: docker_meta
uses: crazy-max/ghaction-docker-meta@v4.6.0
with:
images: adorsys/keycloak-config-cli,quay.io/adorsys/keycloak-config-cli
flavor: |
latest=${{ !contains(github.ref_name, 'rc') && matrix.env.KEYCLOAK_VERSION == steps.latest.outputs.VERSION }}
suffix=-${{ matrix.env.KEYCLOAK_VERSION }}
tags: |
type=ref,event=branch
type=ref,event=pr
type=semver,event=tag,pattern={{version}}
type=raw,event=tag,value=latest,enable=${{ !contains(github.ref_name, 'rc') }}
labels: |
maintainer=adorsys GmbH & Co. KG
- name: Set up QEMU
uses: docker/setup-qemu-action@v2

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2

- name: Build and push
uses: docker/build-push-action@v4.1.1
with:
build-args: |-
KEYCLOAK_VERSION=${{ matrix.env.KEYCLOAK_VERSION }}
MAVEN_CLI_OPTS=${{ env.MAVEN_CLI_OPTS }} ${{ env.ADJUSTED_RESTEASY_VERSION }} ${{ env.JAVAX_PROFILE }}
cache-from: type=gha
cache-to: type=gha,mode=max
context: .
pull: ${{ startsWith(github.ref, 'refs/tags/v') }}
push: ${{ startsWith(github.ref, 'refs/tags/v') }}
platforms: linux/amd64${{ startsWith(github.ref, 'refs/tags/v') && ',linux/arm64' || '' }}
labels: ${{ steps.docker_meta.outputs.labels }}
tags: ${{ steps.docker_meta.outputs.tags }}

- name: Create Checksum
run: |
cp target/keycloak-config-cli.jar keycloak-config-cli-${{ matrix.env.KEYCLOAK_VERSION }}.jar
Expand All @@ -137,141 +66,141 @@ jobs:
keycloak-config-cli-${{ matrix.env.KEYCLOAK_VERSION }}.jar
keycloak-config-cli-${{ matrix.env.KEYCLOAK_VERSION }}.jar.sha256
build-pom-version:
runs-on: ubuntu-latest
timeout-minutes: 10
strategy:
fail-fast: false
matrix:
java: [11, 17]
steps:
- uses: actions/checkout@v3

- name: Setup java
uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: ${{ matrix.java }}

- uses: actions/cache@v3
with:
path: ~/.m2/repository
key: ${{ runner.os }}-${{ matrix.java }}-maven-build-pom-${{ hashFiles('**/pom.xml') }}
restore-keys: ${{ runner.os }}-${{ matrix.java }}-maven-build-pom

- name: Adapt sources for Keycloak versions < 22.0.0 (jakarta -> javax)
if: ${{ matrix.env.KEYCLOAK_VERSION < '22.0.0' }}
run: |
echo "JAVAX_PROFILE=-Pjavax" >> $GITHUB_ENV
echo "ADJUSTED_RESTEASY_VERSION=-Dresteasy.version=4.7.7.Final" >> $GITHUB_ENV
- name: Build & Test
run: ./mvnw ${MAVEN_CLI_OPTS} ${ADJUSTED_RESTEASY_VERSION} clean verify ${JAVAX_PROFILE}

build-legacy:
runs-on: ubuntu-latest
timeout-minutes: 10
strategy:
fail-fast: false
matrix:
env:
- KEYCLOAK_VERSION: 21.1.1
steps:
- uses: actions/checkout@v3

- name: Setup java
uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: '17'

- uses: actions/cache@v3
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-keycloak-legacy-${{ hashFiles('**/pom.xml') }}
restore-keys: |
${{ runner.os }}-maven-keycloak-legacy
- name: Adapt sources for Keycloak versions < 22.0.0 (jakarta -> javax)
if: ${{ matrix.env.KEYCLOAK_VERSION < '22.0.0' }}
run: |
echo "JAVAX_PROFILE=-Pjavax" >> $GITHUB_ENV
echo "ADJUSTED_RESTEASY_VERSION=-Dresteasy.version=4.7.7.Final" >> $GITHUB_ENV
- name: Build & Test
run: ./mvnw ${MAVEN_CLI_OPTS} -Dkeycloak.version=${{ matrix.env.KEYCLOAK_VERSION }} -Dkeycloak.dockerTagSuffix="" ${ADJUSTED_RESTEASY_VERSION} clean verify ${JAVAX_PROFILE}

lint-other-files:
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- uses: actions/checkout@v3

- name: Lint .github/workflows/*.yaml files
uses: ibiqlik/action-yamllint@v3.1
with:
strict: true
file_or_dir: .github/workflows/
config_data: |
extends: default
rules:
line-length: disable
truthy:
check-keys: false
- name: Fetch history
run: git fetch --prune --unshallow

- name: Set up Helm
uses: azure/setup-helm@v3.5
with:
version: v3.4.0

- uses: actions/setup-python@v4
with:
python-version: 3.7

- uses: actions/cache@v3
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-chart-testing-action
restore-keys: |
${{ runner.os }}-pip-chart-testing-action
- name: Set up chart-testing
uses: helm/chart-testing-action@v2.4.0

- name: Run chart-testing (lint)
run: ct lint --config contrib/charts/ct.yaml

create_release:
name: Create Release
runs-on: ubuntu-latest
needs: [build]
if: startsWith(github.ref, 'refs/tags/v')
steps:
- uses: actions/download-artifact@v3
with:
path: assets

- name: Create Release
uses: softprops/action-gh-release@v1
with:
name: Release ${{ github.ref_name }}
draft: false
prerelease: ${{ contains(github.ref_name, 'rc') }}
files: |
assets/keycloak-config-cli-*/keycloak-config-cli-*.jar
assets/keycloak-config-cli-*/keycloak-config-cli-*.jar.sha256
body: |-
# CHANGELOG
* https://github.com/adorsys/keycloak-config-cli/blob/${{ github.ref_name }}/CHANGELOG.md
## DockerHub
* https://hub.docker.com/r/adorsys/keycloak-config-cli/tags?name=${{ github.ref_name }}
## Quay.io
* https://quay.io/repository/adorsys/keycloak-config-cli?tab=tags
# build-pom-version:
# runs-on: ubuntu-latest
# timeout-minutes: 10
# strategy:
# fail-fast: false
# matrix:
# java: [11, 17]
# steps:
# - uses: actions/checkout@v3
#
# - name: Setup java
# uses: actions/setup-java@v3
# with:
# distribution: 'temurin'
# java-version: ${{ matrix.java }}
#
# - uses: actions/cache@v3
# with:
# path: ~/.m2/repository
# key: ${{ runner.os }}-${{ matrix.java }}-maven-build-pom-${{ hashFiles('**/pom.xml') }}
# restore-keys: ${{ runner.os }}-${{ matrix.java }}-maven-build-pom
#
# - name: Adapt sources for Keycloak versions < 22.0.0 (jakarta -> javax)
# if: ${{ matrix.env.KEYCLOAK_VERSION < '22.0.0' }}
# run: |
# echo "JAVAX_PROFILE=-Pjavax" >> $GITHUB_ENV
# echo "ADJUSTED_RESTEASY_VERSION=-Dresteasy.version=4.7.7.Final" >> $GITHUB_ENV
#
# - name: Build & Test
# run: ./mvnw ${MAVEN_CLI_OPTS} ${ADJUSTED_RESTEASY_VERSION} clean verify ${JAVAX_PROFILE}
#
# build-legacy:
# runs-on: ubuntu-latest
# timeout-minutes: 10
# strategy:
# fail-fast: false
# matrix:
# env:
# - KEYCLOAK_VERSION: 21.1.1
# steps:
# - uses: actions/checkout@v3
#
# - name: Setup java
# uses: actions/setup-java@v3
# with:
# distribution: 'temurin'
# java-version: '17'
#
# - uses: actions/cache@v3
# with:
# path: ~/.m2/repository
# key: ${{ runner.os }}-maven-keycloak-legacy-${{ hashFiles('**/pom.xml') }}
# restore-keys: |
# ${{ runner.os }}-maven-keycloak-legacy
#
# - name: Adapt sources for Keycloak versions < 22.0.0 (jakarta -> javax)
# if: ${{ matrix.env.KEYCLOAK_VERSION < '22.0.0' }}
# run: |
# echo "JAVAX_PROFILE=-Pjavax" >> $GITHUB_ENV
# echo "ADJUSTED_RESTEASY_VERSION=-Dresteasy.version=4.7.7.Final" >> $GITHUB_ENV
#
# - name: Build & Test
# run: ./mvnw ${MAVEN_CLI_OPTS} -Dkeycloak.version=${{ matrix.env.KEYCLOAK_VERSION }} -Dkeycloak.dockerTagSuffix="" ${ADJUSTED_RESTEASY_VERSION} clean verify ${JAVAX_PROFILE}
#
# lint-other-files:
# runs-on: ubuntu-latest
# timeout-minutes: 10
# steps:
# - uses: actions/checkout@v3
#
# - name: Lint .github/workflows/*.yaml files
# uses: ibiqlik/action-yamllint@v3.1
# with:
# strict: true
# file_or_dir: .github/workflows/
# config_data: |
# extends: default
# rules:
# line-length: disable
# truthy:
# check-keys: false
#
# - name: Fetch history
# run: git fetch --prune --unshallow
#
# - name: Set up Helm
# uses: azure/setup-helm@v3.5
# with:
# version: v3.4.0
#
# - uses: actions/setup-python@v4
# with:
# python-version: 3.7
#
# - uses: actions/cache@v3
# with:
# path: ~/.cache/pip
# key: ${{ runner.os }}-pip-chart-testing-action
# restore-keys: |
# ${{ runner.os }}-pip-chart-testing-action
#
# - name: Set up chart-testing
# uses: helm/chart-testing-action@v2.4.0
#
# - name: Run chart-testing (lint)
# run: ct lint --config contrib/charts/ct.yaml

# create_release:
# name: Create Release
# runs-on: ubuntu-latest
# needs: [build]
# if: startsWith(github.ref, 'refs/tags/v')
# steps:
# - uses: actions/download-artifact@v3
# with:
# path: assets
#
# - name: Create Release
# uses: softprops/action-gh-release@v1
# with:
# name: Release ${{ github.ref_name }}
# draft: false
# prerelease: ${{ contains(github.ref_name, 'rc') }}
# files: |
# assets/keycloak-config-cli-*/keycloak-config-cli-*.jar
# assets/keycloak-config-cli-*/keycloak-config-cli-*.jar.sha256
# body: |-
# # CHANGELOG
#
# * https://github.com/adorsys/keycloak-config-cli/blob/${{ github.ref_name }}/CHANGELOG.md
#
# ## DockerHub
#
# * https://hub.docker.com/r/adorsys/keycloak-config-cli/tags?name=${{ github.ref_name }}
#
# ## Quay.io
#
# * https://quay.io/repository/adorsys/keycloak-config-cli?tab=tags

0 comments on commit 8e1a71a

Please sign in to comment.