on: 
 | 
  schedule: 
 | 
    - cron:  '41 8 * * *' 
 | 
  workflow_dispatch: 
 | 
  
 | 
name: Update dependencies 
 | 
  
 | 
permissions: {} 
 | 
  
 | 
jobs: 
 | 
  update: 
 | 
    name: Update dependencies 
 | 
    runs-on: ubuntu-latest 
 | 
    permissions: 
 | 
      contents: write 
 | 
      pull-requests: write 
 | 
    steps: 
 | 
      - id: checkout 
 | 
        name: Checkout code 
 | 
        uses: actions/checkout@v4 
 | 
  
 | 
      - id: java 
 | 
        name: Install Java and Maven 
 | 
        uses: actions/setup-java@v4 
 | 
        with: 
 | 
          distribution: zulu 
 | 
          java-version: 17 
 | 
  
 | 
      - id: update_keycloak 
 | 
        name: Update Keycloak 
 | 
        run: | 
 | 
          mvn -B versions:update-property -Dproperty=keycloak.version 
 | 
  
 | 
      - id: vars 
 | 
        name: Get project variables 
 | 
        run: | 
 | 
          if [ -f pom.xml.versionsBackup ]; then 
 | 
            echo "versionUpdated=1" 
 | 
          else 
 | 
            echo "versionUpdated=0" 
 | 
          fi >> $GITHUB_OUTPUT 
 | 
          echo -n "keycloakVersion=" >> $GITHUB_OUTPUT 
 | 
          mvn -q help:evaluate -Dexpression=keycloak.version -DforceStdout 2> /dev/null | grep -E '^[0-9a-zA-Z.-]+$' >> $GITHUB_OUTPUT 
 | 
  
 | 
      - id: check_branch 
 | 
        name: Check if branch exists 
 | 
        run: | 
 | 
          echo -n "commit=" >> $GITHUB_OUTPUT 
 | 
          if [ '${{ steps.vars.outputs.versionUpdated }}' == '1' ]; then 
 | 
            git ls-remote origin 'feature/keycloak-update-${{ steps.vars.outputs.keycloakVersion }}' 
 | 
          else 
 | 
            git rev-parse HEAD 
 | 
          fi >> $GITHUB_OUTPUT 
 | 
  
 | 
      - id: reset_repo 
 | 
        name: Reset repository 
 | 
        if: steps.check_branch.outputs.commit == '' 
 | 
        run: | 
 | 
          git reset --hard 
 | 
  
 | 
      - id: update_deps 
 | 
        name: Update dependencies 
 | 
        if: steps.check_branch.outputs.commit == '' 
 | 
        run: | 
 | 
          mvn versions:set -DnewVersion='${{ steps.vars.outputs.keycloakVersion }}' 
 | 
          mvn versions:compare-dependencies \ 
 | 
            -DremotePom='org.keycloak:keycloak-parent:${{ steps.vars.outputs.keycloakVersion }}' \ 
 | 
            -DupdateDependencies=true -DupdatePropertyVersions=true 
 | 
          mvn versions:use-latest-versions -DallowMajorUpdates=false 
 | 
          mvn versions:set-property -Dproperty=project.build.outputTimestamp -DnewVersion=`date +%s` 
 | 
  
 | 
      - id: create_commit 
 | 
        name: Create commit 
 | 
        if: steps.check_branch.outputs.commit == '' 
 | 
        run: | 
 | 
          git add pom.xml 
 | 
          git config user.name 'github-actions' 
 | 
          git config user.email '41898282+github-actions[bot]@users.noreply.github.com' 
 | 
          git commit -m 'Update to Keycloak ${{ steps.vars.outputs.keycloakVersion }}' 
 | 
  
 | 
      - id: create_branch 
 | 
        name: Create branch 
 | 
        if: steps.check_branch.outputs.commit == '' 
 | 
        run: | 
 | 
          git push origin 'HEAD:feature/keycloak-update-${{ steps.vars.outputs.keycloakVersion }}' 
 | 
  
 | 
      - id: set_token 
 | 
        name: Set access token 
 | 
        if: steps.check_branch.outputs.commit == '' 
 | 
        run: | 
 | 
          if [ '${{ secrets.GH_TOKEN }}' != '' ]; then 
 | 
            echo 'GH_TOKEN=${{ secrets.GH_TOKEN }}' >> $GITHUB_ENV 
 | 
          else 
 | 
            echo 'GH_TOKEN=${{ secrets.GITHUB_TOKEN }}' >> $GITHUB_ENV 
 | 
          fi 
 | 
  
 | 
      - id: create_pull_request_default_token 
 | 
        name: Create pull request 
 | 
        if: steps.check_branch.outputs.commit == '' 
 | 
        uses: actions/github-script@v6 
 | 
        with: 
 | 
          github-token: ${{ env.GH_TOKEN }} 
 | 
          script: | 
 | 
            github.rest.pulls.create({ 
 | 
              owner: context.repo.owner, 
 | 
              repo: context.repo.repo, 
 | 
              head: 'feature/keycloak-update-${{ steps.vars.outputs.keycloakVersion }}', 
 | 
              base: 'master', 
 | 
              title: 'Update to Keycloak ${{ steps.vars.outputs.keycloakVersion }}', 
 | 
              body: 'Automatic dependency bump due to release of Keycloak ${{ steps.vars.outputs.keycloakVersion }}' 
 | 
            }) 
 |