From 305397f3cdee10d6558eec3362a90ffde7da9b0b Mon Sep 17 00:00:00 2001
From: Jacek Kowalski <Jacek@jacekk.info>
Date: Wed, 30 Oct 2024 10:17:47 +0000
Subject: [PATCH] Workflows: reuse test.yml in release.yml

---
 .github/workflows/release.yml |  101 +-------------------------------------------------
 1 files changed, 3 insertions(+), 98 deletions(-)

diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index dfcfd6b..b69d864 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -9,107 +9,12 @@
 
 jobs:
   build:
-    name: Build
-    runs-on: ubuntu-latest
-    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: vars
-        name: Get project variables
-        run: |
-          echo -n "keycloakVersion=" >> $GITHUB_OUTPUT
-          mvn -q help:evaluate -Dexpression=keycloak.version -DforceStdout 2> /dev/null | grep -E '^[0-9a-zA-Z.-]+$' >> $GITHUB_OUTPUT
-          echo -n "artifactId=" >> $GITHUB_OUTPUT
-          mvn -q help:evaluate -Dexpression=project.artifactId -DforceStdout 2> /dev/null | grep -E '^[0-9a-zA-Z.-]+$' >> $GITHUB_OUTPUT
-          echo -n "projectName=" >> $GITHUB_OUTPUT
-          mvn -q help:evaluate -Dexpression=project.name -DforceStdout 2> /dev/null | grep -E '^[0-9a-zA-Z :,.-]+$' >> $GITHUB_OUTPUT
-          echo -n "projectVersion=" >> $GITHUB_OUTPUT
-          mvn -q help:evaluate -Dexpression=project.version -DforceStdout 2> /dev/null | grep -E '^[0-9a-zA-Z.-]+$' >> $GITHUB_OUTPUT
-
-      - name: Build project
-        run: |
-          mvn -B test package
-
-      - name: Upload artifact
-        uses: actions/upload-artifact@v4
-        with:
-          name: jar
-          path: target/${{ steps.vars.outputs.artifactId }}-${{ steps.vars.outputs.projectVersion }}.jar
-          if-no-files-found: error
-
-    outputs:
-      artifact_id: ${{ steps.vars.outputs.artifactId }}
-      keycloak_version: ${{ steps.vars.outputs.keycloakVersion }}
-      project_name: ${{ steps.vars.outputs.projectName }}
-      project_version: ${{ steps.vars.outputs.projectVersion }}
-
-  test:
-    name: Test
-    runs-on: ubuntu-latest
-    needs: build
-    steps:
-      - id: checkout
-        name: Checkout code
-        uses: actions/checkout@v4
-
-      - id: download_artifact
-        name: Download artifact
-        uses: actions/download-artifact@v4
-        with:
-          name: jar
-
-      - id: create_container
-        name: Create Keycloak container
-        run: |
-          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
-
-      - id: deploy
-        name: Deploy artifact
-        run: |
-          CONTAINER="keycloak"
-          NAME="${{ needs.build.outputs.artifact_id }}-${{ needs.build.outputs.project_version }}.jar"
-          FILE="/opt/keycloak/providers/${NAME}"
-          docker cp "${NAME}" "${CONTAINER}:${FILE}"
-          docker restart "${CONTAINER}"
-          for i in {1..60}; do
-            if curl --silent --max-time 1 -o /dev/null http://localhost:8080; then
-                echo && echo "Deployment succeeded!" && exit 0
-            else
-                sleep 1
-                echo -n "."
-            fi
-          done
-          echo && echo "Deployment timeout!" && exit 1
-
-      - id: configure_keycloak
-        name: Configure Keycloak
-        run: |
-          CONTAINER="keycloak"
-          docker exec -i "${CONTAINER}" /bin/bash <<EOF
-            /opt/keycloak/bin/kcadm.sh config credentials --server http://localhost:8080 --realm master --user admin --password admin
-            /opt/keycloak/bin/kcadm.sh create clients -r master -s clientId=test -s protocol=cas -s enabled=true -s publicClient=true \
-              -s 'redirectUris=["http://localhost/*"]' -s baseUrl=http://localhost -s adminUrl=http://localhost
-            /opt/keycloak/bin/kcadm.sh get serverinfo -r master --fields "providers(login-protocol(providers(cas)))" | grep cas
-          EOF
-
-      - id: run_tests
-        name: Run tests
-        run: |
-          integrationTest/suite.sh
+    uses: ./.github/workflows/test.yml
 
   release:
     name: Release
     runs-on: ubuntu-latest
-    needs: [build, test]
+    needs: [build]
     permissions:
       contents: write
     steps:
@@ -121,7 +26,7 @@
 
       - id: create_release
         name: Create release
-        uses: softprops/action-gh-release@v1
+        uses: softprops/action-gh-release@v2
         with:
           name: ${{ needs.build.outputs.project_name }} ${{ needs.build.outputs.project_version }}
           files: ${{ needs.build.outputs.artifact_id }}-${{ needs.build.outputs.project_version }}.jar

--
Gitblit v1.9.1