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"