aboutsummaryrefslogtreecommitdiffstats
path: root/.github/workflows/ci.yaml
blob: 1e366fb67378c72207ac03e269e8a0d3fa6ba657 (plain) (blame)
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
name: ci
on:
    push:
        branches:
            - main
    pull_request:
        branches:
            - main

jobs:
    test:
        runs-on: ubuntu-latest
        steps:
            - uses: actions/checkout@v4
            - uses: actions/setup-node@v4
            - uses: pnpm/action-setup@v4
              with:
                version: 9
            - run: pnpm install
            - run: pnpm run build-keycloak-theme
    
    
    docker_build:
        name: Build Docker image
        runs-on: ubuntu-latest
        if: ${{ github.event_name == 'push' }}
        needs: test
        env:
            KEYCLOAK_VERSION: 26.2.1
        steps:
          - name: Checkout repository
            uses: actions/checkout@v4
    
          - name: Set up Docker Buildx
            uses: docker/setup-buildx-action@v3
    
          - name: Login to Github Container Registry
            uses: docker/login-action@v3
            with:
              registry: ghcr.io
              username: ${{ github.repository_owner }}
              password: ${{ github.token }}
    
          # Build and push the container to the GitHub Container
          # Repository. The container will be tagged as "latest"
          # and with the short SHA of the commit.
          - name: Build and push
            uses: docker/build-push-action@v6
            with:
              context: .
              file: ./Dockerfile
              push: ${{ github.ref == 'refs/heads/main' }}
              cache-from: type=registry,ref=ghcr.io/owl-corp/keycloak:latest
              cache-to: type=inline
              tags: |
                ghcr.io/owl-corp/keycloak:latest
                ghcr.io/owl-corp/keycloak:${{ env.KEYCLOAK_VERSION }}
                ghcr.io/owl-corp/keycloak:${{ github.sha }}
              build-args: |
                KEYCLOAK_VERSION=${{ env.KEYCLOAK_VERSION }}

    check_if_version_upgraded:
        name: Check if version upgrade
        if: github.event_name == 'push'
        runs-on: ubuntu-latest
        needs: test
        outputs:
            from_version: ${{ steps.step1.outputs.from_version }}
            to_version: ${{ steps.step1.outputs.to_version }}
            is_upgraded_version: ${{ steps.step1.outputs.is_upgraded_version }}
            is_pre_release: ${{steps.step1.outputs.is_pre_release }}
        steps:
            - uses: garronej/[email protected]
              id: step1
              with:
                  action_name: is_package_json_version_upgraded
                  branch: ${{ github.head_ref || github.ref }}
    create_github_release:
        runs-on: ubuntu-latest
        needs: check_if_version_upgraded
        if: needs.check_if_version_upgraded.outputs.is_upgraded_version == 'true'
        steps:
            - uses: actions/checkout@v4
            - uses: actions/setup-node@v4
            - uses: pnpm/action-setup@v4
              with:
                version: 9
            - run: pnpm install
            - run: pnpm run build-keycloak-theme
            - uses: softprops/action-gh-release@v2
              with:
                  name: Release v${{ needs.check_if_version_upgraded.outputs.to_version }}
                  tag_name: v${{ needs.check_if_version_upgraded.outputs.to_version }}
                  target_commitish: ${{ github.head_ref || github.ref }}
                  generate_release_notes: true
                  draft: false
                  prerelease: ${{ needs.check_if_version_upgraded.outputs.is_pre_release == 'true' }}
                  files: dist_keycloak/keycloak-theme-*.jar
              env:
                  GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}