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 }}'
|
})
|