Skip to content

Commit a2c5376

Browse files
authored
CI (#123)
- Incorporated SDKMAN into workflow to replace zulu/maven installation scripts - Added a docker maven build step to main workflow Signed-off-by: Phillip Ross <[email protected]>
1 parent e0a67cf commit a2c5376

File tree

2 files changed

+49
-10
lines changed

2 files changed

+49
-10
lines changed

.github/install-sdkman.sh

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
#!/usr/bin/env bash
2+
3+
set -euf -o pipefail
4+
5+
JAVA_VERSION=$1
6+
MAVEN_VERSION=$2
7+
8+
printf "Installing, configuring, and initializing SDKMAN\n"
9+
curl -s "https://get.sdkman.io" | bash
10+
sed -i -e "s/sdkman_auto_answer=false/sdkman_auto_answer=true/" "${HOME}/.sdkman/etc/config"
11+
set +uf
12+
source "${HOME}/.sdkman/bin/sdkman-init.sh"
13+
14+
printf "Installing Azul Zulu JDKs via SDKMAN\n"
15+
sdk i java ${JAVA_VERSION}
16+
17+
printf "Installing Apache Maven via SDKMAN\n"
18+
sdk i maven ${MAVEN_VERSION}

.github/workflows/main.yml

Lines changed: 31 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,18 +11,17 @@ jobs:
1111
strategy:
1212
matrix:
1313
os: [ubuntu-22.04]
14-
java_version: [8]
14+
jdk_version: [8.0.352-zulu, 11.0.17-zulu, 17.0.5-zulu, 19.0.1-zulu]
1515
maven_version: [3.8.6]
1616
include:
1717
- os: ubuntu-22.04
18-
java_version: 8
18+
jdk_version: 8.0.352-zulu
1919
maven_version: 3.8.6
2020
maven_deploy: true
21-
name: Build on OS ${{ matrix.os }} with Maven ${{ matrix.maven_version }} using Zulu ${{ matrix.java_version }}
21+
docker_build: true
22+
name: Build on OS ${{ matrix.os }} with Maven ${{ matrix.maven_version }} using JDK ${{ matrix.jdk_version }}
2223
runs-on: ${{ matrix.os }}
2324
env:
24-
JAVA_HOME: /usr/lib/jvm/zulu${{ matrix.java_version }}-ca-amd64
25-
MAVEN_HOME: /usr/share/maven
2625
MAVEN_PROPS: -Djavadoc.path=`which javadoc`
2726
PROFILES: gpg,release-sign-artifacts,sonatype-deployment,sonatype-snapshots,sonatype-staging,sonatype-releases
2827
SETTINGS: .github/settings.xml
@@ -34,11 +33,20 @@ jobs:
3433
- name: Install GPG and generate test key
3534
run: .github/install-gpg.sh
3635

37-
- name: Install Zulu OpenJDK
38-
run: .github/install-zulu${{ matrix.java_version }}.sh
36+
- name: Install SDKMAN and java environment
37+
run: |
38+
.github/install-sdkman.sh ${{ matrix.jdk_version }} ${{ matrix.maven_version }}
39+
echo "SDKMAN_DIR=${HOME}/.sdkman" >> $GITHUB_ENV
3940
40-
- name: Install Maven
41-
run: .github/install-maven.sh
41+
- name: Add SDKMAN candidate environment variables
42+
run: |
43+
echo "JAVA_HOME=${SDKMAN_DIR}/candidates/java/current" >> $GITHUB_ENV
44+
echo "MAVEN_HOME=${SDKMAN_DIR}/candidates/maven/current" >> $GITHUB_ENV
45+
46+
- name: Add SDKMAN candidate paths to system path
47+
run: |
48+
echo "${JAVA_HOME}/bin" >> $GITHUB_PATH
49+
echo "${MAVEN_HOME}/bin" >> $GITHUB_PATH
4250
4351
- name: Setup Maven repository cache
4452
uses: actions/cache@v3
@@ -53,6 +61,9 @@ jobs:
5361
- name: Log github.ref
5462
run: echo "${{ github.ref }}"
5563

64+
- name: List Maven repositories
65+
run: mvn -U -V -s ${{ env.SETTINGS }} -P${{ env.PROFILES }} ${{ env.MAVEN_PROPS }} dependency:list-repositories
66+
5667
- name: Show Maven dependency tree
5768
run: mvn -U -V -s ${{ env.SETTINGS }} -P${{ env.PROFILES }} ${{ env.MAVEN_PROPS }} dependency:tree
5869

@@ -73,4 +84,14 @@ jobs:
7384
env:
7485
OSSRHU: ${{ secrets.OSSRHU }}
7586
OSSRHT: ${{ secrets.OSSRHT }}
76-
run: mvn -U -V -s ${{ env.SETTINGS }} -P${{ env.PROFILES }} ${{ env.MAVEN_PROPS }} deploy
87+
run: mvn -U -V -s ${{ env.SETTINGS }} -P${{ env.PROFILES }} ${{ env.MAVEN_PROPS }} deploy
88+
89+
- name: Docker maven build
90+
if: ${{ matrix.docker_build }}
91+
env:
92+
maven_docker_container_image_repo: luminositylabs
93+
maven_docker_container_image_name: maven
94+
maven_docker_container_image_tag: 3.8.6_openjdk-8u352_zulu-alpine-8.66.0.15
95+
CBD: /usr/src/build
96+
P: luminositylabs-oss
97+
run: docker container run --rm -i -v "$(pwd)":"${CBD}" -v ${HOME}/.gnupg:/root/.gnupg -v ${P}-${{ env.maven_docker_container_image_tag }}-mvn-repo:/root/.m2 -w "${CBD}" ${{ env.maven_docker_container_image_repo }}/${{ env.maven_docker_container_image_name }}:${{ env.maven_docker_container_image_tag }} mvn -U -V -s ${{ env.SETTINGS }} -P${{ env.PROFILES }} -Djavadoc.path=/usr/bin/javadoc -Dmaven.integration.test.skip=true dependency:list-repositories dependency:tree help:active-profiles clean install site site:stage

0 commit comments

Comments
 (0)