Skip to content

Commit 305397f

Browse files
committed
Workflows: reuse test.yml in release.yml
1 parent 32997b7 commit 305397f

File tree

2 files changed

+12
-97
lines changed

2 files changed

+12
-97
lines changed

.github/workflows/release.yml

Lines changed: 2 additions & 97 deletions
Original file line numberDiff line numberDiff line change
@@ -9,107 +9,12 @@ permissions: {}
99

1010
jobs:
1111
build:
12-
name: Build
13-
runs-on: ubuntu-latest
14-
steps:
15-
- id: checkout
16-
name: Checkout code
17-
uses: actions/checkout@v4
18-
19-
- id: java
20-
name: Install Java and Maven
21-
uses: actions/setup-java@v4
22-
with:
23-
distribution: zulu
24-
java-version: 17
25-
26-
- id: vars
27-
name: Get project variables
28-
run: |
29-
echo -n "keycloakVersion=" >> $GITHUB_OUTPUT
30-
mvn -q help:evaluate -Dexpression=keycloak.version -DforceStdout 2> /dev/null | grep -E '^[0-9a-zA-Z.-]+$' >> $GITHUB_OUTPUT
31-
echo -n "artifactId=" >> $GITHUB_OUTPUT
32-
mvn -q help:evaluate -Dexpression=project.artifactId -DforceStdout 2> /dev/null | grep -E '^[0-9a-zA-Z.-]+$' >> $GITHUB_OUTPUT
33-
echo -n "projectName=" >> $GITHUB_OUTPUT
34-
mvn -q help:evaluate -Dexpression=project.name -DforceStdout 2> /dev/null | grep -E '^[0-9a-zA-Z :,.-]+$' >> $GITHUB_OUTPUT
35-
echo -n "projectVersion=" >> $GITHUB_OUTPUT
36-
mvn -q help:evaluate -Dexpression=project.version -DforceStdout 2> /dev/null | grep -E '^[0-9a-zA-Z.-]+$' >> $GITHUB_OUTPUT
37-
38-
- name: Build project
39-
run: |
40-
mvn -B test package
41-
42-
- name: Upload artifact
43-
uses: actions/upload-artifact@v4
44-
with:
45-
name: jar
46-
path: target/${{ steps.vars.outputs.artifactId }}-${{ steps.vars.outputs.projectVersion }}.jar
47-
if-no-files-found: error
48-
49-
outputs:
50-
artifact_id: ${{ steps.vars.outputs.artifactId }}
51-
keycloak_version: ${{ steps.vars.outputs.keycloakVersion }}
52-
project_name: ${{ steps.vars.outputs.projectName }}
53-
project_version: ${{ steps.vars.outputs.projectVersion }}
54-
55-
test:
56-
name: Test
57-
runs-on: ubuntu-latest
58-
needs: build
59-
steps:
60-
- id: checkout
61-
name: Checkout code
62-
uses: actions/checkout@v4
63-
64-
- id: download_artifact
65-
name: Download artifact
66-
uses: actions/download-artifact@v4
67-
with:
68-
name: jar
69-
70-
- id: create_container
71-
name: Create Keycloak container
72-
run: |
73-
docker run -i -t -d -e KEYCLOAK_ADMIN=admin -e KEYCLOAK_ADMIN_PASSWORD=admin -p 8080:8080 --name keycloak "quay.io/keycloak/keycloak:${{ needs.build.outputs.keycloak_version }}" start-dev
74-
75-
- id: deploy
76-
name: Deploy artifact
77-
run: |
78-
CONTAINER="keycloak"
79-
NAME="${{ needs.build.outputs.artifact_id }}-${{ needs.build.outputs.project_version }}.jar"
80-
FILE="/opt/keycloak/providers/${NAME}"
81-
docker cp "${NAME}" "${CONTAINER}:${FILE}"
82-
docker restart "${CONTAINER}"
83-
for i in {1..60}; do
84-
if curl --silent --max-time 1 -o /dev/null http://localhost:8080; then
85-
echo && echo "Deployment succeeded!" && exit 0
86-
else
87-
sleep 1
88-
echo -n "."
89-
fi
90-
done
91-
echo && echo "Deployment timeout!" && exit 1
92-
93-
- id: configure_keycloak
94-
name: Configure Keycloak
95-
run: |
96-
CONTAINER="keycloak"
97-
docker exec -i "${CONTAINER}" /bin/bash <<EOF
98-
/opt/keycloak/bin/kcadm.sh config credentials --server http://localhost:8080 --realm master --user admin --password admin
99-
/opt/keycloak/bin/kcadm.sh create clients -r master -s clientId=test -s protocol=cas -s enabled=true -s publicClient=true \
100-
-s 'redirectUris=["http://localhost/*"]' -s baseUrl=http://localhost -s adminUrl=http://localhost
101-
/opt/keycloak/bin/kcadm.sh get serverinfo -r master --fields "providers(login-protocol(providers(cas)))" | grep cas
102-
EOF
103-
104-
- id: run_tests
105-
name: Run tests
106-
run: |
107-
integrationTest/suite.sh
12+
uses: ./.github/workflows/test.yml
10813

10914
release:
11015
name: Release
11116
runs-on: ubuntu-latest
112-
needs: [build, test]
17+
needs: [build]
11318
permissions:
11419
contents: write
11520
steps:

.github/workflows/test.yml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,15 @@
11
on:
22
pull_request:
3+
workflow_call:
4+
outputs:
5+
artifact_id:
6+
value: ${{ jobs.build.outputs.artifactId }}
7+
keycloak_version:
8+
value: ${{ jobs.build.outputs.keycloakVersion }}
9+
project_name:
10+
value: ${{ jobs.build.outputs.projectName }}
11+
project_version:
12+
value: ${{ jobs.build.outputs.projectVersion }}
313

414
name: Test
515

0 commit comments

Comments
 (0)