Skip to content

Release All Modules (1.6.1-RC1 -> 1.7.0-SNAPSHOT) #50

Release All Modules (1.6.1-RC1 -> 1.7.0-SNAPSHOT)

Release All Modules (1.6.1-RC1 -> 1.7.0-SNAPSHOT) #50

name: "(In development - Don't Use) Publish: Release All"
run-name: Release All Modules (${{ inputs.releaseversion }} -> ${{ inputs.nextversion}})
on:
workflow_dispatch:
inputs:
releaseversion:
description: 'Release version'
required: true
nextversion:
description: 'Next dev version'
required: true
jobs:
release:
runs-on: ubuntu-latest
env:
RELEASE: ${{ inputs.releaseversion }}
NEXT: ${{ inputs.nextversion }}
steps:
- name: Checkout main
uses: actions/checkout@v4
with:
path: main
fetch-depth: 0
- name: Setup Java & Maven
uses: actions/setup-java@v3
with:
java-version: 17
distribution: 'temurin'
cache: 'maven'
server-id: ossrh
server-username: MAVEN_USERNAME
server-password: MAVEN_PASSWORD
gpg-private-key: ${{ secrets.MAVEN_GPG_KEY }}
gpg-passphrase: MAVEN_GPG_PASSPHRASE
- name: Get the artifact from the main POM
working-directory: main
run: |
echo "ARTIFACT=`mvn help:evaluate -Dexpression=project.artifactId -q -DforceStdout`" >> $GITHUB_ENV
- name: Configure git user
run: |
git config --global user.name ${{ github.actor }}
git config --global user.email "${{ github.actor }}@users.noreply.github.com"
- name: Create combined module
run: |
mkdir combined
cp main/pom.xml combined
sed -i '/<\/developers>/a <modules><module>pass-core</module><module>pass-support</module></modules>' combined/pom.xml
- name: Checkout all released PASS repos
run: |
git clone https://${{ secrets.JAVA_RELEASE_PAT }}@github.com/eclipse-pass/pass-core.git combined/pass-core
git clone https://${{ secrets.JAVA_RELEASE_PAT }}@github.com/eclipse-pass/pass-support.git combined/pass-support
git clone https://${{ secrets.JAVA_RELEASE_PAT }}@github.com/eclipse-pass/pass-ui.git combined/pass-ui
git clone https://${{ secrets.JAVA_RELEASE_PAT }}@github.com/eclipse-pass/pass-acceptance-testing.git combined/pass-acceptance-testing
git clone https://${{ secrets.JAVA_RELEASE_PAT }}@github.com/eclipse-pass/pass-docker.git combined/pass-docker
- name: Setup Node & Yarn
uses: actions/setup-node@v3
with:
node-version: 18
- name: Login to GHCR
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.JAVA_RELEASE_PAT }}
- name: Check for Release tags
run: |
(cd main && echo "MAIN_TAG_EXISTS=$(git tag -l "$RELEASE")" >> $GITHUB_ENV)
(cd combined/pass-core && echo "PASS_CORE_TAG_EXISTS=$(git tag -l "$RELEASE")" >> $GITHUB_ENV)
(cd combined/pass-support && echo "PASS_SUPPORT_TAG_EXISTS=$(git tag -l "$RELEASE")" >> $GITHUB_ENV)
(cd combined/pass-ui && echo "PASS_UI_TAG_EXISTS=$(git tag -l "$RELEASE")" >> $GITHUB_ENV)
(cd combined/pass-acceptance-testing && echo "PASS_ACCPT_TEST_TAG_EXISTS=$(git tag -l "$RELEASE")" >> $GITHUB_ENV)
(cd combined/pass-docker && echo "PASS_DOCKER_TAG_EXISTS=$(git tag -l "$RELEASE")" >> $GITHUB_ENV)
- name: Create aggregate tag env vars
run: |
echo "ALL_JAVA_REPOS_TAG_EXISTS=${{ env.MAIN_TAG_EXISTS && env.PASS_CORE_TAG_EXISTS && env.PASS_SUPPORT_TAG_EXISTS }}" >> $GITHUB_ENV
# Note that the Java Repositories uses --force on tagging and pushing tagging. This is to cover the case where
# there is a failure during the Push commits and tags step, then the workflow is re-run, we will update any tag
# that made it to the remote to the new commit created when updating the version.
# - name: Set Release/commit/tag ~ Java Repositories
# if: ${{ ! env.ALL_JAVA_REPOS_TAG_EXISTS }}
# run: |
# (cd main && mvn versions:set -B -ntp -DnewVersion=$RELEASE && git commit -am "Update version to $RELEASE" && git tag --force $RELEASE)
# (cd combined && mvn versions:set -B -ntp -DnewVersion=$RELEASE)
# (cd combined/pass-core && git commit -am "Update version to $RELEASE" && git tag --force $RELEASE)
# (cd combined/pass-support && git commit -am "Update version to $RELEASE" && git tag --force $RELEASE)
#
# - name: Release Java modules
# if: ${{ ! env.ALL_JAVA_REPOS_TAG_EXISTS }}
# uses: ./main/.github/actions/maven-release
# with:
# repodir: combined
# env:
# MAVEN_USERNAME: ${{ secrets.OSSRH_USERNAME }}
# MAVEN_PASSWORD: ${{ secrets.OSSRH_PASSWORD }}
# MAVEN_GPG_PASSPHRASE: ${{ secrets.MAVEN_GPG_PASSPHRASE }}
#
# - name: Push Release Docker images to GHCR ~ Java Repositories
# if: ${{ ! env.ALL_JAVA_REPOS_TAG_EXISTS }}
# run: |
# docker push ghcr.io/eclipse-pass/pass-core-main:$RELEASE
# docker push ghcr.io/eclipse-pass/deposit-services-core:$RELEASE
# docker push ghcr.io/eclipse-pass/pass-notification-service:$RELEASE
# docker push ghcr.io/eclipse-pass/jhu-grant-loader:$RELEASE
# docker push ghcr.io/eclipse-pass/pass-journal-loader:$RELEASE
# docker push ghcr.io/eclipse-pass/pass-nihms-loader:$RELEASE
#
# - name: Push the Release commits and tags ~ Java Repositories
# if: ${{ ! env.ALL_JAVA_REPOS_TAG_EXISTS }}
# run: |
# (cd main && git push origin && git push origin --force --tags)
# (cd combined/pass-core && git push origin && git push origin --force --tags)
# (cd combined/pass-support && git push origin && git push origin --force --tags)
#
# - name: Create GitHub main release ~ Java Repositories
# if: ${{ ! env.ALL_JAVA_REPOS_TAG_EXISTS }}
# run: |
# gh release delete "$RELEASE" --repo=eclipse-pass/main || true
# gh release create "$RELEASE" --repo=eclipse-pass/main --generate-notes
# gh release delete "$RELEASE" --repo=eclipse-pass/pass-core || true
# gh release create "$RELEASE" --repo=eclipse-pass/pass-core --generate-notes
# gh release delete "$RELEASE" --repo=eclipse-pass/pass-support || true
# gh release create "$RELEASE" --repo=eclipse-pass/pass-support --generate-notes
# env:
# GITHUB_TOKEN: ${{ secrets.JAVA_RELEASE_PAT }}
#
# - name: Set Release/commit/tag ~ pass-ui
# if: ${{ ! env.PASS_UI_TAG_EXISTS }}
# uses: ./main/.github/actions/yarn-version
# with:
# repository_dir: combined/pass-ui
# env:
# RELEASE: ${{ env.RELEASE }}
#
# - name: Build Release pass-ui
# if: ${{ ! env.PASS_UI_TAG_EXISTS }}
# uses: ./main/.github/actions/yarn-build
# with:
# repository_dir: combined/pass-ui
# env_path: ../pass-docker/.env
#
# - name: Push Release Docker images to GHCR ~ pass-ui
# if: ${{ ! env.PASS_UI_TAG_EXISTS }}
# run: docker push ghcr.io/eclipse-pass/pass-ui:$RELEASE
#
# - name: Push the Release commits and tags ~ pass-ui
# if: ${{ ! env.PASS_UI_TAG_EXISTS }}
# run: cd combined/pass-ui && git push origin && git push origin --tags
#
# - name: Create GitHub main release ~ pass-ui
# if: ${{ ! env.PASS_UI_TAG_EXISTS }}
# run: gh release create "$RELEASE" --repo=eclipse-pass/pass-ui --generate-notes
# env:
# GITHUB_TOKEN: ${{ secrets.JAVA_RELEASE_PAT }}
#
# - name: Set Release/commit/tag ~ pass-acceptance-testing
# if: ${{ ! env.PASS_ACCPT_TEST_TAG_EXISTS }}
# uses: ./main/.github/actions/yarn-version
# with:
# repository_dir: combined/pass-acceptance-testing
# env:
# RELEASE: ${{ env.RELEASE }}
#
# - name: Push the Release commits and tags ~ pass-acceptance-testing
# if: ${{ ! env.PASS_ACCPT_TEST_TAG_EXISTS }}
# run: cd combined/acceptance-testing && git push origin && git push origin --tags
#
# - name: Create GitHub main release ~ pass-acceptance-testing
# if: ${{ ! env.PASS_ACCPT_TEST_TAG_EXISTS }}
# run: gh release create "$RELEASE" --repo=eclipse-pass/pass-acceptance-testing --generate-notes
# env:
# GITHUB_TOKEN: ${{ secrets.JAVA_RELEASE_PAT }}
#
# - name: Set Release/commit/tag ~ pass-docker
# if: ${{ ! env.PASS_DOCKER_TAG_EXISTS }}
# run: |
# cd combined/pass-docker
# sed -i "/^PASS_VERSION/s/.*/PASS_VERSION=$RELEASE/" .env
# git commit -am "Update version to $RELEASE"
# git tag $RELEASE
#
# - name: Build Release pass-docker images
# if: ${{ ! env.PASS_DOCKER_TAG_EXISTS }}
# working-directory: combined/pass-docker
# run: docker compose -f docker-compose.yml -f eclipse-pass.local.yml build idp ldap
#
# - name: Push Release Docker images to GHCR ~ pass-docker
# if: ${{ ! env.PASS_DOCKER_TAG_EXISTS }}
# run: |
# docker push ghcr.io/eclipse-pass/demo-ldap:$RELEASE
# docker push ghcr.io/eclipse-pass/idp:$RELEASE
#
# - name: Push the Release commits and tags ~ pass-docker
# if: ${{ ! env.PASS_DOCKER_TAG_EXISTS }}
# run: cd combined/pass-docker && git push origin && git push origin --tags
#
# - name: Create GitHub main release ~ pass-docker
# if: ${{ ! env.PASS_DOCKER_TAG_EXISTS }}
# run: gh release create "$RELEASE" --repo=eclipse-pass/pass-docker --generate-notes
# env:
# GITHUB_TOKEN: ${{ secrets.JAVA_RELEASE_PAT }}
- name: Set Snapshot/commit ~ Java Repositories
run: |
(cd main && mvn versions:set -B -ntp -DallowSnapshots=true -DnewVersion=$NEXT && git commit -am "Update version to $NEXT")
(cd combined && mvn versions:set -B -ntp -DallowSnapshots=true -DnewVersion=$NEXT)
(cd combined/pass-core && git commit -am "Update version to $NEXT")
(cd combined/pass-support && git commit -am "Update version to $NEXT")
- name: Release Snapshot Java modules
working-directory: combined
run: |
mvn -B -V -ntp -P release clean deploy -DskipTests -DskipITs
env:
MAVEN_USERNAME: ${{ secrets.OSSRH_USERNAME }}
MAVEN_PASSWORD: ${{ secrets.OSSRH_PASSWORD }}
MAVEN_GPG_PASSPHRASE: ${{ secrets.MAVEN_GPG_PASSPHRASE }}
- name: Push Snapshot Docker images to GHCR ~ Java Repositories
run: |
docker push ghcr.io/eclipse-pass/pass-core-main:$NEXT
docker push ghcr.io/eclipse-pass/deposit-services-core:$NEXT
docker push ghcr.io/eclipse-pass/pass-notification-service:$NEXT
docker push ghcr.io/eclipse-pass/jhu-grant-loader:$NEXT
docker push ghcr.io/eclipse-pass/pass-journal-loader:$NEXT
docker push ghcr.io/eclipse-pass/pass-nihms-loader:$NEXT
- name: Push the Snapshot commits ~ Java Repositories
run: |
(cd main && git push origin)
(cd combined/pass-core && git push origin)
(cd combined/pass-support && git push origin)
# - name: Set Snapshot/commit ~ pass-ui
# uses: ./main/.github/actions/yarn-version
# with:
# repository_dir: combined/pass-ui
# skip_tag: "true"
# env:
# RELEASE: ${{ env.NEXT }}
#
# - name: Build Snapshot pass-ui
# uses: ./main/.github/actions/yarn-build
# with:
# repository_dir: combined/pass-ui
# env_path: ../pass-docker/.env
# is_dev: "true"
#
# - name: Push Snapshot Docker images to GHCR ~ pass-ui
# run: docker push ghcr.io/eclipse-pass/pass-ui:$NEXT
#
# - name: Push the Snapshot commits ~ pass-ui
# run: cd combined/pass-ui && git push origin
#
# - name: Set Snapshot/commit ~ pass-acceptance-testing
# uses: ./main/.github/actions/yarn-version
# with:
# repository_dir: combined/pass-acceptance-testing
# skip_tag: "true"
# env:
# RELEASE: ${{ env.NEXT }}
#
# - name: Push the Snapshot commits ~ pass-acceptance-testing
# run: cd combined/pass-acceptance-testing && git push origin
#
# - name: Set Snapshot/commit ~ pass-docker
# run: |
# cd combined/pass-docker
# sed -i "/^PASS_VERSION/s/.*/PASS_VERSION=$NEXT/" .env
# git commit -am "Update version to $NEXT"
#
# - name: Build Snapshot pass-docker images
# working-directory: combined/pass-docker
# run: docker compose -f docker-compose.yml -f eclipse-pass.local.yml build idp ldap
#
# - name: Push Snapshot Docker images to GHCR ~ pass-docker
# run: |
# docker push ghcr.io/eclipse-pass/demo-ldap:$NEXT
# docker push ghcr.io/eclipse-pass/idp:$NEXT
#
# - name: Push the Snapshot commits ~ pass-docker
# run: cd combined/pass-docker && git push origin