MegaMekLab Nightly Maven CI #641
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
# Builds MegaMekLab for CI each Night using our Maven Repo. | |
# | |
# Jobs: | |
# - nightly_maven_ci: Build MegaMekLab for CI using our Maven Repos | |
name: MegaMekLab Nightly Maven CI | |
on: | |
schedule: | |
# Nightly at Midnight (UTC) | |
# ref: https://crontab.guru/every-night | |
- cron: '0 0 * * *' | |
# Setup the Build Scan "VCS" link for all gradle invocations | |
# | |
# Disable maven pooling to deal with Azure SNAT resets | |
# https://github.com/actions/virtual-environments/issues/1499#issuecomment-689467080 | |
env: | |
GRADLE_OPTS: "-Dscan.link.VCS=https://github.com/MegaMek/megameklab/commit/${{ github.sha }} -Dhttp.keepAlive=false -Dmaven.wagon.http.pool=false -Dmaven.wagon.httpconnectionManager.ttlSeconds=120" | |
jobs: | |
nightly_maven_ci: | |
runs-on: ${{ matrix.os }} | |
# Run this job once for each combination in the matrix below. | |
strategy: | |
matrix: | |
os: [ ubuntu-latest, windows-latest ] | |
java-distribution: [ temurin ] | |
java-version: [ 11, 17 ] | |
fail-fast: false | |
name: Nightly MegaMekLab Maven CI ${{ matrix.os }} on ${{ matrix.java-distribution }} JDK ${{ matrix.java-version }} | |
steps: | |
# Checkout the latest source and put it in: ./megameklab | |
- uses: actions/checkout@v3 | |
with: | |
path: megameklab | |
# Composite Build is NOT setup for this job. | |
# Checkout the latest MegaMek source and put it in: ./megamek | |
- name: Checkout MegaMek | |
uses: actions/checkout@v3 | |
with: | |
repository: MegaMek/megamek | |
path: megamek | |
# Setup the requested Java Distribution and Version from the matrix | |
- name: Set up ${{ matrix.java-distribution }} JDK ${{ matrix.java-version }} | |
uses: actions/setup-java@v3 | |
with: | |
distribution: ${{ matrix.java-distribution }} | |
java-version: ${{ matrix.java-version }} | |
# Don't run this for Windows. | |
- name: Grant execute permission for gradlew (*nix or MacOS) | |
working-directory: megameklab | |
run: chmod +x gradlew | |
if: runner.os != 'Windows' | |
# Include --stacktrace to make some build failures easier to figure out. | |
- name: Build with Gradle | |
uses: gradle/gradle-build-action@v2 | |
with: | |
arguments: clean build --continue --stacktrace --max-workers=1 --scan | |
build-root-directory: megameklab | |
- name: Upload Test Logs on Failure | |
uses: actions/upload-artifact@v3 | |
if: failure() | |
with: | |
name: ${{ matrix.os }}-${{ matrix.java-distribution }}-jdk${{ matrix.java-version }}-maven-ci-failure-logs | |
path: megameklab/megameklab/build/reports/ |