Skip to content

MegaMekLab Nightly CI #2126

MegaMekLab Nightly CI

MegaMekLab Nightly CI #2126

Workflow file for this run

name: MegaMekLab Nightly CI
on:
workflow_dispatch:
schedule:
- cron: "0 3 * * *"
env:
GRADLE_OPTS: "-Dscan.link.VCS=https://github.com/MegaMek/megameklab/commit/${{ github.sha }}"
jobs:
nightly_ci:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ ubuntu-latest ]
java-distribution: [ temurin ]
java-version: [ 17, 21, 25 ]
fail-fast: false
name: Nightly MegaMekLab CI ${{ matrix.os }} on ${{ matrix.java-distribution }} JDK ${{ matrix.java-version }}
steps:
- name: Checkout Data Repo
uses: actions/checkout@v6
with:
repository: megamek/mm-data
path: mm-data
- uses: actions/checkout@v6
with:
path: megameklab
- name: Checkout MegaMek
uses: actions/checkout@v6
with:
repository: MegaMek/megamek
path: megamek
- name: Add MM Hash
run: |
cd megamek
calculatedSha=$(git rev-parse HEAD)
echo "$calculatedSha" >> ../megameklab/megameklab/docs/mm-revision.txt
- name: Set up ${{ matrix.java-distribution }} JDK ${{ matrix.java-version }}
uses: actions/setup-java@v5
with:
distribution: ${{ matrix.java-distribution }}
java-version: ${{ matrix.java-version }}
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v5
with:
build-scan-publish: true
build-scan-terms-of-use-url: "https://gradle.com/terms-of-service"
build-scan-terms-of-use-agree: "yes"
- name: "Output branch information to Version file"
run: |
echo "branch=nightly" >> megamek/megamek/resources/extraVersion.properties
echo "gitHash=$(date +'%Y-%m-%d')" >> megamek/megamek/resources/extraVersion.properties
- name: Add MMLRevision file
run: |
echo ${{ github.sha }} >> megameklab/megameklab/mml-revision.txt
- name: Testing Nightly
working-directory: megameklab
run: ./gradlew testAll --stacktrace --scan
- name: Upload Test Logs on Failure
uses: actions/upload-artifact@v6
if: failure()
with:
name: ${{ matrix.os }}-${{ matrix.java-distribution }}-jdk${{ matrix.java-version }}-ci-failure-logs
path: megameklab/megameklab/build/reports/
- name: CodeCov.io Coverage Report
uses: codecov/codecov-action@v5
with:
directory: megameklab/megameklab/build/reports/jacoco/test
fail_ci_if_error: false
verbose: true
- name: Build with Gradle
working-directory: megameklab
run: ./gradlew build -x test -PextraVersion="nightly-$(date +'%Y-%m-%d')"
- name: Upload TarGZ Release
uses: actions/upload-artifact@v6
with:
name: mml-release-tgz-${{ matrix.java-distribution }}-jdk${{ matrix.java-version }}
path: megameklab/megameklab/build/distributions/*.tar.gz