This commit reworks the CI pipeline to remove the use of Bintray for
publishing to Maven Central. In its place it adds a new
publishToCentral command to the release scripts. This command can be
used to publish a directory tree of artifacts to the Maven Central
gateway hosted by Sonatype.
Publishing consists of 4 steps:
1. Create the staging repository
2. Deploy artifacts to the repository
3. Close the repository
4. Release the repository
The command requires 3 arguments:
1. The type of release being performed
2. Location of a build info JSON file that describes the release
that is to be deployed
3. Root of a directory structure, in Maven repository layout, that
contains the artifacts to be deployed
Closes gh-25107
Update the releasescript to ensure that a distribution has been started
before starting it again. This functionality was accidentally removed
during the updates for gh-21474.
See gh-21474
Previously, as soon as the distribution of a release from Artifactory
to Bintray had been initiated we would start checking if it was
complete. This created a race condition between the distribution being
created and us checking if it was complete. If the check won the race
and happened before the creation, Bintray would respond with a 404.
This commit updates BintrayService to wait for up to 5 minutes for the
distribution to be created on Bintray. Once it has been created we
then wait for up to 40 minutes for it to be complete as we did before.
The use of Awaitility has been introduced in this commit to simplify
the logic required to wait for the distribution's creation and
completion.
Closes gh-18902