Merge pull request #855 from reshmabidikar/work-for-1841 #2618
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: ci | |
on: | |
- pull_request | |
- push | |
- workflow_dispatch | |
env: | |
MAVEN_FLAGS: "-B -ff -Dcheck.skip-spotbugs=true -DskipTests=true" | |
MAVEN_OPTS: "-Xmx2G -XX:+ExitOnOutOfMemoryError -Dmaven.wagon.rto=60000" | |
jobs: | |
tests: | |
runs-on: ubuntu-latest | |
timeout-minutes: 200 | |
strategy: | |
fail-fast: false | |
matrix: | |
java-version: | |
- 11 | |
- 17 | |
java-distribution: | |
- temurin | |
suite: | |
- h2 | |
- mysql | |
- postgresql | |
ref-api: | |
- refs/heads/master | |
ref-plugin-api: | |
- refs/heads/master | |
ref-commons: | |
- refs/heads/master | |
ref-plugin-framework-java: | |
- refs/heads/master | |
ref-platform: | |
- refs/heads/master | |
ref-client-java: | |
- refs/heads/master | |
ref-killbill: | |
- refs/heads/master | |
steps: | |
- name: Checkout killbill-oss-parent | |
uses: actions/checkout@v3 | |
with: | |
repository: killbill/killbill-oss-parent | |
path: killbill-oss-parent | |
- name: Checkout killbill-api | |
uses: actions/checkout@v3 | |
with: | |
repository: killbill/killbill-api | |
ref: ${{ matrix.ref-api }} | |
path: killbill-api | |
- name: Checkout killbill-plugin-api | |
uses: actions/checkout@v3 | |
with: | |
repository: killbill/killbill-plugin-api | |
ref: ${{ matrix.ref-plugin-api }} | |
path: killbill-plugin-api | |
- name: Checkout killbill-commons | |
uses: actions/checkout@v3 | |
with: | |
repository: killbill/killbill-commons | |
ref: ${{ matrix.ref-commons }} | |
path: killbill-commons | |
- name: Checkout killbill-plugin-framework-java | |
uses: actions/checkout@v3 | |
with: | |
repository: killbill/killbill-plugin-framework-java | |
ref: ${{ matrix.ref-plugin-framework-java }} | |
path: killbill-plugin-framework-java | |
- name: Checkout killbill-platform | |
uses: actions/checkout@v3 | |
with: | |
repository: killbill/killbill-platform | |
ref: ${{ matrix.ref-platform }} | |
path: killbill-platform | |
- name: Checkout killbill-client-java | |
uses: actions/checkout@v3 | |
with: | |
repository: killbill/killbill-client-java | |
ref: ${{ matrix.ref-client-java }} | |
path: killbill-client-java | |
- name: Checkout killbill | |
uses: actions/checkout@v3 | |
with: | |
repository: killbill/killbill | |
ref: ${{ matrix.ref-killbill }} | |
path: killbill | |
- name: Setup Java | |
uses: actions/setup-java@v3 | |
with: | |
distribution: ${{ matrix.java-distribution }} | |
java-version: ${{ matrix.java-version }} | |
- name: Configure Sonatype mirror | |
uses: s4u/maven-settings-action@v2.8.0 | |
# Go to Sonatype directly to avoid delay syncs (could get rid of this if actions/setup-java were to support mirrors). | |
with: | |
mirrors: '[{"id": "oss-releases", "name": "Sonatype releases", "mirrorOf": "central", "url": "https://oss.sonatype.org/content/repositories/releases"}]' | |
sonatypeSnapshots: true | |
- name: Download dependencies and setup the various pom.xml | |
run: | | |
pushd $GITHUB_WORKSPACE/killbill-oss-parent | |
pomVersion=$(mvn ${MAVEN_FLAGS} help:evaluate -Dexpression=project.version -q -DforceStdout) | |
mvn ${MAVEN_FLAGS} clean install | |
popd | |
declare -A property=( | |
[killbill-api]=killbill-api.version | |
[killbill-plugin-api]=killbill-plugin-api.version | |
[killbill-commons]=killbill-commons.version | |
[killbill-plugin-framework-java]=killbill-base-plugin.version | |
[killbill-platform]=killbill-platform.version | |
[killbill-client-java]=killbill-client.version | |
) | |
for i in killbill-api killbill-plugin-api killbill-commons killbill-plugin-framework-java killbill-platform killbill-client-java; do | |
echo "::group::Update $i parent" | |
pushd $GITHUB_WORKSPACE/$i | |
echo "Resolving current $i version" | |
version=$(mvn ${MAVEN_FLAGS} help:evaluate -Dexpression=project.version -q -DforceStdout) | |
echo "Current $i version is $version" | |
echo "Updating $i parent pom.xml to $pomVersion" | |
mvn ${MAVEN_FLAGS} versions:update-parent -DallowSnapshots -DgenerateBackupPoms=false -DparentVersion="[$pomVersion]" | |
echo "$i pom.xml changes:" | |
git --no-pager diff | |
echo "Building $i" | |
mvn ${MAVEN_FLAGS} clean install | |
popd | |
echo "::endgroup::" | |
echo "::group::Update $i in killbill-oss-parent" | |
pushd $GITHUB_WORKSPACE/killbill-oss-parent | |
echo "Updating ${property[$i]} in parent pom.xml to $version" | |
mvn ${MAVEN_FLAGS} versions:set-property -Dproperty=${property[$i]} -DnewVersion=$version | |
echo "killbill-oss-parent pom.xml changes:" | |
git --no-pager diff | |
echo "Building killbill-oss-parent" | |
mvn ${MAVEN_FLAGS} clean install | |
popd | |
echo "::endgroup::" | |
done | |
- name: Build Kill Bill | |
run: | | |
pushd $GITHUB_WORKSPACE/killbill-oss-parent | |
pomVersion=$(mvn ${MAVEN_FLAGS} help:evaluate -Dexpression=project.version -q -DforceStdout) | |
popd | |
pushd $GITHUB_WORKSPACE/killbill | |
echo "Updating killbill parent pom.xml to $pomVersion" | |
mvn ${MAVEN_FLAGS} versions:update-parent -DallowSnapshots -DgenerateBackupPoms=false -DparentVersion="[$pomVersion]" | |
echo "Building killbill" | |
mvn ${MAVEN_FLAGS} clean install | |
popd | |
- name: Review base pom.xml changes | |
run: | | |
pushd $GITHUB_WORKSPACE/killbill-oss-parent | |
echo "killbill-oss-parent pom.xml changes:" | |
git --no-pager diff | |
popd | |
- name: Run killbill-commons tests | |
run: | | |
i=killbill-commons | |
pushd $GITHUB_WORKSPACE/$i | |
echo "$i pom.xml changes:" | |
git --no-pager diff | |
echo "Running $i ${{ matrix.suite }} tests" | |
# Flaky... | |
$GITHUB_WORKSPACE/killbill-oss-parent/bin/retry mvn clean install -P${{ matrix.suite }} | |
popd | |
- name: Run killbill-plugin-framework-java tests | |
run: | | |
i=killbill-plugin-framework-java | |
pushd $GITHUB_WORKSPACE/$i | |
echo "$i pom.xml changes:" | |
git --no-pager diff | |
echo "Running $i ${{ matrix.suite }} tests" | |
mvn clean install -P${{ matrix.suite }} | |
popd | |
- name: Run killbill-platform tests | |
run: | | |
i=killbill-platform | |
pushd $GITHUB_WORKSPACE/$i | |
echo "$i pom.xml changes:" | |
git --no-pager diff | |
echo "Running $i ${{ matrix.suite }} tests" | |
# Flaky... | |
$GITHUB_WORKSPACE/killbill-oss-parent/bin/retry mvn clean install -P${{ matrix.suite }} | |
popd | |
- name: Run killbill-client-java tests | |
run: | | |
i=killbill-client-java | |
pushd $GITHUB_WORKSPACE/$i | |
echo "$i pom.xml changes:" | |
git --no-pager diff | |
echo "Running $i ${{ matrix.suite }} tests" | |
mvn clean install -P${{ matrix.suite }} | |
popd | |
- name: Run killbill tests | |
run: | | |
i=killbill | |
pushd $GITHUB_WORKSPACE/$i | |
echo "$i pom.xml changes:" | |
git --no-pager diff | |
echo "Running $i ${{ matrix.suite }} tests" | |
# Flaky... | |
$GITHUB_WORKSPACE/killbill-oss-parent/bin/retry mvn clean install -P${{ matrix.suite }} -Dkillbill.test.apiListenerDelay=120000 | |
popd |