title: Merge develop branch into main #2
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build and Upload JAR to GitHub Releases | |
on: | |
pull_request: | |
branches: | |
- main | |
types: [closed] | |
jobs: | |
build: | |
if: github.event.pull_request.merged == true && startsWith(github.event.pull_request.head.ref, 'release/QA-') | |
runs-on: ubuntu-latest | |
permissions: | |
contents: write | |
pull-requests: write | |
repository-projects: write | |
defaults: | |
run: | |
working-directory: source/did-ta-server | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Set up JDK 17 | |
uses: actions/setup-java@v4 | |
with: | |
java-version: '17' | |
distribution: 'temurin' | |
- name: Test | |
run: ./gradlew test | |
- name: Build JAR | |
run: | | |
./gradlew bootjar | |
echo "JAR file generated at:" | |
find ./build/libs -name "*.jar" | |
- name: Set release title | |
id: set_release_title | |
run: | | |
release_tag=${GITHUB_HEAD_REF#release/QA-} | |
echo "Release tag: $release_tag" | |
echo "::set-output name=release_tag::$release_tag" | |
- name: Get commit messages | |
id: get_commit_messages | |
run: | | |
commits=$(git log ${{ github.event.pull_request.base.sha }}..${{ github.event.pull_request.head.sha }} --pretty=format:"* %s") | |
echo "$commits" > commit_messages.txt | |
echo "::set-output name=commits::$commits" | |
- name: Find JAR file | |
id: find_jar | |
run: | | |
jar_path=$(find ./build/libs -name "*.jar" | head -n 1) | |
echo "JAR path found: $jar_path" | |
echo "::set-output name=jar_path::$jar_path" | |
- name: Calculate SHA-256 | |
id: calculate_sha | |
run: | | |
sha256=$(sha256sum ${{ env.jar_path }} | awk '{ print $1 }') | |
echo "SHA-256: $sha256" | |
echo "::set-output name=jar_sha256::$sha256" | |
- name: Create GitHub Release | |
id: create_release | |
uses: actions/create-release@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
tag_name: ${{ steps.set_release_title.outputs.release_tag }} | |
release_name: ${{ steps.set_release_title.outputs.release_tag }} | |
body: | | |
## Changes: | |
${{ steps.get_commit_messages.outputs.commits }} | |
## Checksum: | |
SHA-256: ${{ steps.calculate_sha.outputs.jar_sha256 }} | |
- name: Upload JAR | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_path: source/did-ta-server/${{ steps.find_jar.outputs.jar_path }} | |
asset_name: did-ta-server-${{ steps.set_release_title.outputs.release_tag }}.jar | |
asset_content_type: application/java-archive |