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 | 130 ++++--------------------------------------- 1 files changed, 12 insertions(+), 118 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 6a6c638..b69d864 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -5,136 +5,30 @@ name: Release +permissions: {} + jobs: build: - name: Build - runs-on: ubuntu-latest - steps: - - id: checkout - name: Checkout code - uses: actions/checkout@v2 - - - name: Install Java and Maven - uses: actions/setup-java@v1 - with: - java-version: 8 - - - id: vars - name: Get project variables - run: | - echo -n "::set-output name=keycloakVersion::" - mvn -q help:evaluate -Dexpression=keycloak.version -DforceStdout 2> /dev/null | grep -E '^[0-9a-zA-Z.-]+$' - echo -n "::set-output name=artifactId::" - mvn -q help:evaluate -Dexpression=project.artifactId -DforceStdout 2> /dev/null | grep -E '^[0-9a-zA-Z.-]+$' - echo -n "::set-output name=projectName::" - mvn -q help:evaluate -Dexpression=project.name -DforceStdout 2> /dev/null | grep -E '^[0-9a-zA-Z :,.-]+$' - echo -n "::set-output name=projectVersion::" - mvn -q help:evaluate -Dexpression=project.version -DforceStdout 2> /dev/null | grep -E '^[0-9a-zA-Z.-]+$' - - - name: Build project - run: | - mvn -B test package - - - name: Upload artifact - uses: actions/upload-artifact@v1 - with: - name: jar - path: target/${{ steps.vars.outputs.artifactId }}-${{ steps.vars.outputs.projectVersion }}.jar - - 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 - services: - keycloak: - image: quay.io/keycloak/keycloak:${{ needs.build.outputs.keycloak_version }} - env: - KEYCLOAK_USER: admin - KEYCLOAK_PASSWORD: admin - ports: - - 8080:8080 - volumes: - - '${{ github.workspace }}:/workspace' - steps: - - id: checkout - name: Checkout code - uses: actions/checkout@v2 - - - id: download_artifact - name: Download artifact - uses: actions/download-artifact@v1 - with: - name: jar - - - id: deploy - name: Deploy artifact - run: | - CONTAINER="${{ job.services.keycloak.id }}" - NAME="${{ needs.build.outputs.artifact_id }}-${{ needs.build.outputs.project_version }}.jar" - FILE="/opt/jboss/keycloak/standalone/deployments/${NAME}" - docker cp "jar/${NAME}" "${CONTAINER}:/tmp/" - docker exec -i "${CONTAINER}" /bin/bash <<EOF - cp "/tmp/${NAME}" "${FILE}" - for i in {1..60}; do - echo -n . - [ -f "${FILE}.deployed" ] && echo && echo "Deployment succeeded!" && exit 0 - [ -f "${FILE}.failed" ] && echo && echo "Deployment failed!" && exit 1 - sleep 1 - done - echo && echo "Deployment timeout!" && exit 1 - EOF - - - id: configure_keycloak - name: Configure Keycloak - run: | - CONTAINER="${{ job.services.keycloak.id }}" - docker exec -i "${CONTAINER}" /bin/bash <<EOF - /opt/jboss/keycloak/bin/kcadm.sh config credentials --server http://localhost:8080/auth --realm master --user admin --password admin - /opt/jboss/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/jboss/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: - id: download_artifact name: Download artifact - uses: actions/download-artifact@v1 + uses: actions/download-artifact@v4 with: name: jar - id: create_release name: Create release - uses: actions/create-release@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + uses: softprops/action-gh-release@v2 with: - tag_name: ${{ github.ref }} - release_name: ${{ needs.build.outputs.project_name }} ${{ needs.build.outputs.project_version }} - draft: false - prerelease: false - - - id: upload_release - name: Upload release artifact - uses: actions/upload-release-asset@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - upload_url: ${{ steps.create_release.outputs.upload_url }} - asset_path: jar/${{ needs.build.outputs.artifact_id }}-${{ needs.build.outputs.project_version }}.jar - asset_name: ${{ needs.build.outputs.artifact_id }}-${{ needs.build.outputs.project_version }}.jar - asset_content_type: application/java-archive + name: ${{ needs.build.outputs.project_name }} ${{ needs.build.outputs.project_version }} + files: ${{ needs.build.outputs.artifact_id }}-${{ needs.build.outputs.project_version }}.jar + fail_on_unmatched_files: true + generate_release_notes: true -- Gitblit v1.9.1