Skip to content

Commit

Permalink
Merge pull request #437 from HCL-TECH-SOFTWARE/multi-jvm-build
Browse files Browse the repository at this point in the history
Multi jvm build
  • Loading branch information
jesse-gallagher authored Jul 17, 2024
2 parents 6ae2ba3 + ae47b87 commit 7c8dfa3
Show file tree
Hide file tree
Showing 40 changed files with 4,508 additions and 3,535 deletions.
70 changes: 57 additions & 13 deletions .github/workflows/pull-request.yml
Original file line number Diff line number Diff line change
@@ -1,27 +1,71 @@
name: Validate on pull request

on:
workflow_dispatch:
pull_request:

jobs:
build:
build-multi-version-tool:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4

- name: Set up JDK 8
uses: actions/setup-java@v2
- name: Set up Java and Maven
uses: actions/setup-java@v4
with:
java-version: "8"
distribution: "adopt"
java-version: '17'
distribution: 'adopt'
cache: 'maven'

- name: Cache Maven packages
uses: actions/cache@v2
- name: Build the POM manipulator
run: |
cd multi-version-tool
mvn --batch-mode clean install
cd ..
- name: Save the POM manipulator
uses: actions/upload-artifact@v4
with:
path: ~/.m2
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
restore-keys: ${{ runner.os }}-m2
name: multi-version-tool
path: multi-version-tool/target/multi-version-tool-jar-with-dependencies.jar
retention-days: 1

- name: Build with Maven
run: mvn --batch-mode --update-snapshots clean verify javadoc:javadoc
buildJNX:
runs-on: ubuntu-latest
needs: build-multi-version-tool
strategy:
matrix:
options:
- jdk: 17
domino: R12
- jdk: 17
domino: R14
- jdk: 21
domino: R145

steps:
- name: Checkout source repository
uses: actions/checkout@v4

- name: Set up Java and Maven
uses: actions/setup-java@v4
with:
java-version: ${{ matrix.options.jdk }}
distribution: 'adopt'
cache: 'maven'
server-id: ossrh
server-username: MAVEN_USERNAME
server-password: MAVEN_PASSWORD

- name: retrieve the POM manipulator
uses: actions/download-artifact@v4
with:
name: multi-version-tool

- name: Apply the POM manipulator for ${{ matrix.options.domino }}
run: |
java -jar ./multi-version-tool-jar-with-dependencies.jar . ${{ matrix.options.domino }}
pwd
cat pom.xml
- name: Build for ${{ matrix.options.domino }} with Maven
run: mvn --batch-mode --update-snapshots -P${{ matrix.options.domino }} clean verify javadoc:javadoc
63 changes: 54 additions & 9 deletions .github/workflows/push-to-develop.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,30 +8,75 @@ on:
- develop

jobs:
release:
build-multi-version-tool:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4

- name: Set up Java and Maven
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'adopt'
cache: 'maven'

- name: Build the POM manipulator
run: |
cd multi-version-tool
mvn --batch-mode clean install
cd ..
- name: Save the POM manipulator
uses: actions/upload-artifact@v4
with:
name: multi-version-tool
path: multi-version-tool/target/multi-version-tool-jar-with-dependencies.jar
retention-days: 1

JNX-snapshot-release:
runs-on: ubuntu-latest
needs: build-multi-version-tool
strategy:
matrix:
options:
- jdk: 17
domino: R12
- jdk: 17
domino: R14
- jdk: 21
domino: R145
steps:
- name: Check out Git repository
uses: actions/checkout@v4

- name: Install Java and Maven
- name: Install Java ${{ matrix.options.jdk }} and Maven
uses: actions/setup-java@v4
with:
java-version: "8"
distribution: "adopt"
java-version: ${{ matrix.options.jdk }}
distribution: 'adopt'
cache: 'maven'
server-id: ossrh
server-username: MAVEN_USERNAME
server-password: MAVEN_PASSWORD

- name: Extract Project version
- name: retrieve the POM manipulator
uses: actions/download-artifact@v4
with:
name: multi-version-tool

- name: Apply the POM manipulator for ${{ matrix.options.domino }}
run: |
java -jar ./multi-version-tool-jar-with-dependencies.jar . ${{ matrix.options.domino }}
pwd
cat pom.xml
- name: Extract Project version for ${{ matrix.options.domino }}
id: project
run: echo ::set-output name=version::$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)
run: echo projectversion=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout) >> $GITHUB_ENV

- name: Release Maven package
- name: Release ${{ matrix.options.domino }} Maven snapshot package
# Only publish on develop when the version does end on -SNAPSHOT
if: ${{ endsWith(steps.project.outputs.version, '-SNAPSHOT') }}
run: mvn --batch-mode deploy
if: ${{ endsWith(env.projectversion, '-SNAPSHOT') }}
run: mvn --batch-mode -P${{ matrix.options.domino }} deploy
env:
MAVEN_USERNAME: ${{ secrets.NEXUS_USERNAME }}
MAVEN_PASSWORD: ${{ secrets.NEXUS_PASSWORD }}
74 changes: 57 additions & 17 deletions .github/workflows/push-to-main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,46 +8,86 @@ on:
- main

jobs:
release:
build-multi-version-tool:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4

- name: Set up Java and Maven
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'adopt'
cache: 'maven'

- name: Build the POM manipulator
run: |
cd multi-version-tool
mvn --batch-mode clean install
cd ..
- name: Save the POM manipulator
uses: actions/upload-artifact@v4
with:
name: multi-version-tool
path: multi-version-tool/target/multi-version-tool-jar-with-dependencies.jar
retention-days: 1

JNX-release:
runs-on: ubuntu-latest
needs: build-multi-version-tool
strategy:
matrix:
options:
- jdk: 17
domino: R12
- jdk: 17
domino: R14
- jdk: 21
domino: R145

steps:
- name: Check out Git repository
uses: actions/checkout@v2
uses: actions/checkout@v4

- name: Install Java and Maven
uses: actions/setup-java@v2
- name: Install Java ${{ matrix.options.jdk }} and Maven
uses: actions/setup-java@v4
with:
java-version: "8"
distribution: "adopt"
java-version: ${{ matrix.options.jdk }}
distribution: 'adopt'
cache: 'maven'
server-id: ossrh
server-username: MAVEN_USERNAME
server-password: MAVEN_PASSWORD

- name: Cache Maven packages
uses: actions/cache@v2
- name: retrieve the POM manipulator
uses: actions/download-artifact@v4
with:
path: ~/.m2
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
restore-keys: ${{ runner.os }}-m2
name: multi-version-tool

- name: Extract Project version
- name: Apply the POM manipulator for ${{ matrix.options.domino }}
run: |
java -jar ./multi-version-tool-jar-with-dependencies.jar . ${{ matrix.options.domino }}
pwd
cat pom.xml
- name: Extract Project version for ${{ matrix.options.domino }}
id: project
run: echo ::set-output name=version::$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)
run: echo projectversion=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout) >> $GITHUB_ENV

- name: Install gpg secret key
id: install-secret-key
run: |
cat <(echo -e "${{ secrets.GPG_PRIVATE_KEY }}") | gpg --batch --import
gpg --list-secret-keys --keyid-format LONG
- name: Release Maven package to Central
- name: Release ${{ matrix.options.domino }} Maven package to Central
id: publish-to-central
# Only publish on develop when the version does end on -SNAPSHOT
if: ${{ !endsWith(steps.project.outputs.version, '-SNAPSHOT') }}
# Only publish on main when the version does NOT end on -SNAPSHOT
if: ${{ !endsWith(env.projectversion, '-SNAPSHOT') }}
env:
MAVEN_USERNAME: ${{ secrets.NEXUS_USERNAME }}
MAVEN_PASSWORD: ${{ secrets.NEXUS_PASSWORD }}
run: |
mvn --batch-mode -P deploy \
mvn --batch-mode -P${{ matrix.options.domino }} deploy \
-Dgpg.passphrase=${{ secrets.GPG_PASSPHRASE }} \
clean deploy
Loading

0 comments on commit 7c8dfa3

Please sign in to comment.