github.com/phrase/openapi@v0.0.0-20240514140800-49e8a106740e/clients/java/.github/workflows/release.sh (about) 1 #!/bin/bash 2 3 set -eo pipefail 4 5 [ -z "${GITHUB_TOKEN}" ] && { echo "Missing input.token!"; exit 2; } 6 7 # ----------- 8 9 echo "Build release $VERSION" 10 11 # ----------- 12 13 gradle wrapper 14 ./gradlew check assemble 15 16 # Create release 17 function create_release_data() 18 { 19 cat <<EOF 20 { 21 "tag_name": "${VERSION}", 22 "name": "${VERSION}", 23 "draft": true, 24 "prerelease": false 25 } 26 EOF 27 } 28 29 echo "Create release $VERSION" 30 api_url="https://api.github.com/repos/phrase/phrase-java/releases" 31 response="$(curl -H "Authorization: token ${GITHUB_TOKEN}" --data "$(create_release_data)" ${api_url})" 32 release_id=$(echo $response | python -c "import sys, json; print(json.load(sys.stdin).get('id', ''))") 33 34 if [ -z "$release_id" ] 35 then 36 echo "Failed to create GitHub release" 37 echo $response 38 exit 1 39 else 40 echo "New release created created with id: ${release_id}" 41 fi 42 43 echo "Uploading ${file}" 44 file=build/libs/phrase-java-${VERSION}.jar 45 asset="https://uploads.github.com/repos/phrase/phrase-java/releases/${release_id}/assets?name=$(basename "$file")" 46 curl --data-binary @"$file" -H "Authorization: token ${GITHUB_TOKEN}" -H "Content-Type: application/octet-stream" $asset > /dev/null 47 echo Hash: $(sha256sum $file) 48 49 echo "Pushing the built jar to GitHub Package Registry and Maven Central" 50 gradle publish closeAndReleaseSonatypeStagingRepository 51 52 echo "Release successful"