mirror of https://github.com/jacekkow/keycloak-protocol-cas

github-actions
2024-11-02 e629ea858ba400232afea9b916b0408e99d74d4d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
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 }}'
            })