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

github-actions
2020-11-06 d9b7cc22b3f227c6c60d4bd58bc618d96f6d7482
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
on:
  schedule:
    - cron:  '41 8 * * *'
 
name: Update dependencies
 
jobs:
  update:
    name: Update dependencies
    runs-on: ubuntu-latest
    steps:
      - id: checkout
        name: Checkout code
        uses: actions/checkout@v2
 
      - id: java
        name: Install Java and Maven
        uses: actions/setup-java@v1
        with:
          java-version: 8
 
      - id: update_keycloak
        name: Update Keycloak
        run: |
          mvn -B versions:update-property -Dproperty=keycloak.version
 
      - id: vars
        name: Get project variables
        run: |
          echo -n "::set-output name=versionUpdated::"
          [ -f pom.xml.versionsBackup ] && echo 1 || echo 0
          echo -n "::set-output name=keycloakVersion::"
          mvn -q help:evaluate -Dexpression=keycloak.version -DforceStdout 2> /dev/null | grep -E '^[0-9a-zA-Z.-]+$'
 
      - id: check_branch
        name: Check if branch exists
        run: |
          echo -n "::set-output name=commit::"
          if [ '${{ steps.vars.outputs.versionUpdated }}' == '1' ]; then
            git ls-remote origin 'feature/keycloak-update-${{ steps.vars.outputs.keycloakVersion }}'
          else
            git rev-parse HEAD
          fi
 
      - 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
 
      - 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: |
          echo -n "::set-env name=GH_TOKEN::"
          if [ '${{ secrets.GH_TOKEN }}' != '' ]; then
            echo '${{ secrets.GH_TOKEN }}'
          else
            echo '${{ secrets.GITHUB_TOKEN }}'
          fi
 
      - id: create_pull_request_default_token
        name: Create pull request
        if: steps.check_branch.outputs.commit == ''
        uses: actions/github-script@0.9.0
        with:
          github-token: ${{ env.GH_TOKEN }}
          script: |
            github.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 }}'
            })