diff --git a/.github/workflows/publish-release.yaml b/.github/workflows/publish-release.yaml new file mode 100644 index 000000000..a0afcfc1d --- /dev/null +++ b/.github/workflows/publish-release.yaml @@ -0,0 +1,54 @@ +name: Publish Release + +on: + push: + branches: + - 'wip-[0-9]+.[0-9]+' + - '[0-9]+.[0-9]+' + +jobs: + build: + + runs-on: ubuntu-latest + + steps: + - name: Set Build Number Environment Variable + env: + BUILD_NUMBER_OFFSET: 26 + run: | + echo "BUILD_NUMBER=$((${{ github.run_number }}+$BUILD_NUMBER_OFFSET))" >> $GITHUB_ENV + + - name: Install gpg secret key + run: | + cat <(echo -e "${{ secrets.GPG_SECRET_KEY }}") | gpg2 --batch --import + gpg2 --list-secret-keys --keyid-format LONG + + - uses: actions/checkout@v2 + + - name: Set up JDK 8 + uses: actions/setup-java@v2 + with: + java-version: 8 + distribution: 'zulu' + + - name: Grant execute permission for gradlew + run: chmod +x gradlew + + - name: Build and Test + run: ./gradlew clean check + + - name: Publish WIP to Github Packages + if: ${{ contains( github.ref, 'wip-' ) }} + env: + GRADLE_OPTS: -Dbuild.number=$BUILD_NUMBER -Dbuild.vcs.number=${{ github.sha }} -Dbuild.vcs.branch=${{ github.ref }} + GPR_USERNAME: ${{ github.actor }} + GPR_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: ./gradlew publishAllPublicationsToGitHubPackagesRepository -Psigning.gnupg.keyName=${{ secrets.GPG_SECRET_KEY_ID }} -Psigning.gnupg.passphrase=${{ secrets.GPG_SECRET_KEY_PASSWORD }} + + - name: Publish Release to Maven Central + if: ${{ !contains( github.ref, 'wip-' ) }} + env: + GRADLE_OPTS: -Dbuild.number=$BUILD_NUMBER -Dbuild.vcs.number=${{ github.sha }} -Dbuild.vcs.branch=${{ github.ref }} + MCR_USERNAME: ${{ secrets.MCR_USERNAME }} + MCR_PASSWORD: ${{ secrets.MCR_PASSWORD }} + run: ./gradlew publishToSonatype closeAndReleaseSonatypeStagingRepository -Psigning.gnupg.keyName=${{ secrets.GPG_SECRET_KEY_ID }} -Psigning.gnupg.passphrase=${{ secrets.GPG_SECRET_KEY_PASSWORD }} diff --git a/build.gradle b/build.gradle index 2e06a3f28..b0544e2ce 100644 --- a/build.gradle +++ b/build.gradle @@ -1,7 +1,5 @@ -import java.text.SimpleDateFormat - /* - * Copyright (c) 2007-2022 The Cascading Authors. All Rights Reserved. + * Copyright (c) 2007-2024 The Cascading Authors. All Rights Reserved. * * Project and contact information: https://cascading.wensel.net/ * @@ -20,6 +18,10 @@ import java.text.SimpleDateFormat * limitations under the License. */ +import java.text.SimpleDateFormat + + + /* Using: @@ -235,6 +237,7 @@ subprojects { } signing { + useGpgCmd() sign publishing.publications.maven } @@ -437,4 +440,4 @@ def resolveTests( Project project ) dependencies.create( project ) { capabilities {requireCapability( "$project.group:$project.name-test" )} } - } \ No newline at end of file + }