Skip to content

Commit

Permalink
Publish new Javadoc on release
Browse files Browse the repository at this point in the history
  • Loading branch information
cowwoc committed Oct 30, 2024
1 parent 03fdeb5 commit d976fd5
Show file tree
Hide file tree
Showing 2 changed files with 57 additions and 24 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ jobs:
distribution: zulu
java-version: |
8
21
23
- name: Cache Dependencies
uses: actions/cache@v4
Expand Down
79 changes: 56 additions & 23 deletions .github/workflows/deploy_to_maven_central.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,8 @@ jobs:
open-release:
runs-on: ubuntu-latest
outputs:
INITIAL_REF_POSITION: ${{ steps.create-tag.outputs.INITIAL_REF_POSITION }}
INITIAL_MASTER_POSITION: ${{ steps.create-tag.outputs.INITIAL_MASTER_POSITION }}
INITIAL_GH_PAGES_POSITION: ${{ steps.create-tag.outputs.INITIAL_GH_PAGES_POSITION }}
TAG: ${{ steps.create-tag.outputs.TAG }}
VERSION: ${{ steps.create-tag.outputs.VERSION }}
STAGING_PROFILE_ID: ${{ steps.parse-profile-id.outputs.STAGING_PROFILE_ID }}
Expand All @@ -32,7 +33,7 @@ jobs:
distribution: zulu
java-version: |
8
21
23
server-id: maven-central-releases
# Server authentication corresponds to "user token" returned by https://oss.sonatype.org/
server-username: OSSRH_USERNAME
Expand Down Expand Up @@ -66,7 +67,7 @@ jobs:
- name: Create tag
id: create-tag
run: |
echo "INITIAL_REF_POSITION=$(git rev-parse HEAD)" >> "$GITHUB_OUTPUT"
echo "INITIAL_MASTER_POSITION=$(git rev-parse HEAD)" >> "$GITHUB_OUTPUT"
./mvnw release:prepare --batch-mode -V -e
TAG=$(git describe --tag --abbrev=0)
echo "TAG=${TAG}" >> "$GITHUB_OUTPUT"
Expand Down Expand Up @@ -113,7 +114,7 @@ jobs:
distribution: zulu
java-version: |
8
21
23
server-id: maven-central-releases
# Server authentication corresponds to "user token" returned by https://oss.sonatype.org/
server-username: OSSRH_USERNAME
Expand All @@ -139,6 +140,32 @@ jobs:
-Dstaging_host="${{ env.STAGING_HOST }}"
deploy -P release
document:
name: Publish Javadoc documentation
needs: deploy
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
ref: ${{ needs.open-release.outputs.TAG }}
- uses: actions/setup-java@v4
with:
distribution: zulu
java-version: 23

- name: Generate Javadoc
run: |
./mvnw --batch-mode -V -e javadoc:aggregate -pl !dropwizard,!jersey
mv target/reports/apidocs "${{ steps.create-tag.outputs.VERSION }}/docs/api"
- name: Commit changes
run: >
git checkout gh-pages
echo "INITIAL_GH_PAGES_POSITION=$(git rev-parse HEAD)" >> "$GITHUB_OUTPUT"
git add "${{ steps.create-tag.outputs.VERSION }}/docs/api"
git tag -a ${{ steps.create-tag.outputs.TAG }} -m "Released version ${{ steps.create-tag.outputs.VERSION }}"
git push
close-release:
needs: [ open-release, deploy ]
runs-on: ubuntu-latest
Expand All @@ -152,7 +179,7 @@ jobs:
distribution: zulu
java-version: |
8
21
23
server-id: maven-central-releases
# Server authentication corresponds to "user token" returned by https://oss.sonatype.org/
server-username: OSSRH_USERNAME
Expand Down Expand Up @@ -190,21 +217,14 @@ jobs:
distribution: zulu
java-version: |
8
21
23
server-id: maven-central-releases
# Server authentication corresponds to "user token" returned by https://oss.sonatype.org/
server-username: OSSRH_USERNAME
server-password: OSSRH_TOKEN
gpg-private-key: ${{ secrets.MAVEN_GPG_PRIVATE_KEY }}
gpg-passphrase: MAVEN_GPG_PASSPHRASE

- name: Cache Dependencies
uses: actions/cache@v4
with:
path: |
~/.m2/repository/*
key: "${{ runner.OS }}-maven-${{ hashFiles('**/pom.xml') }}"

- name: Drop staging repository
if: needs.open-release.outputs.STAGING_REPOSITORY_ID != '' && needs.open-release.outputs.STAGING_PROFILE_ID != ''
run: >
Expand All @@ -213,24 +233,37 @@ jobs:
-d '{"data": {"stagedRepositoryId": "${{ needs.open-release.outputs.STAGING_REPOSITORY_ID }}", "description": "Dropping repository"}}'
'https://${{ env.STAGING_HOST }}/service/local/staging/profiles/${{ needs.open-release.outputs.STAGING_PROFILE_ID }}/drop'
- name: Configure Git User
- name: Restore the master ref to its original position
if: needs.open-release.outputs.INITIAL_MASTER_POSITION != ''
run: |
git config user.email "[email protected]"
git config user.name "Gili Tzabari"
CURRENT_REF_POSITION=$(git rev-parse HEAD)
if [ "${CURRENT_REF_POSITION}" != "${{ needs.open-release.outputs.INITIAL_MASTER_POSITION }}" ]; then
git reset --hard ${{ needs.open-release.outputs.INITIAL_MASTER_POSITION }}
if [ "${{ github.ref_type }}" == "tag" ]; then
git ${{ github.ref_type }} -f ${{ github.ref_name }}
fi
git push -f origin ${{ github.ref_name }}
fi
- name: Delete master's tag
if: needs.open-release.outputs.INITIAL_MASTER_POSITION != ''
run: |
git push --delete origin ${{ needs.open-release.outputs.TAG }}
- name: Restore the workflow ref to its original position
if: needs.open-release.outputs.INITIAL_REF_POSITION != ''
- name: Restore the gh-pages ref to its original position
if: needs.open-release.outputs.INITIAL_GH_PAGES_POSITION != ''
run: |
CURRENT_REF_POSITION=$(git rev-parse HEAD)
if [ "${CURRENT_REF_POSITION}" != "${{ needs.open-release.outputs.INITIAL_REF_POSITION }}" ]; then
git reset --hard ${{ needs.open-release.outputs.INITIAL_REF_POSITION }}
if [ "${CURRENT_REF_POSITION}" != "${{ needs.open-release.outputs.INITIAL_GH_PAGES_POSITION }}" ]; then
git reset --hard ${{ needs.open-release.outputs.INITIAL_GH_PAGES_POSITION }}
if [ "${{ github.ref_type }}" == "tag" ]; then
git ${{ github.ref_type }} -f ${{ github.ref_name }}
fi
git push -f origin ${{ github.ref_name }}
fi
- name: Delete tag
if: needs.open-release.outputs.TAG != ''
- name: Delete gh-pages' tag
if: needs.open-release.outputs.INITIAL_GH_PAGES_POSITION != ''
run: |
git push --delete origin ${{ needs.open-release.outputs.TAG }}
git push --delete origin ${{ needs.open-release.outputs.TAG }}
git push

0 comments on commit d976fd5

Please sign in to comment.