[maven-release-plugin] prepare for next development iteration #19
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
# DSpace 6.x Continuous Integration/Build via GitHub Actions | |
# Concepts borrowed from | |
# https://docs.github.com/en/free-pro-team@latest/actions/guides/building-and-testing-java-with-maven | |
name: Build | |
# Run this Build for all pushes / PRs to current branch | |
on: [push, pull_request] | |
jobs: | |
tests: | |
runs-on: ubuntu-18.04 | |
env: | |
# Give Maven 1GB of memory to work with | |
# Suppress all Maven "downloading" messages in Travis logs (see https://stackoverflow.com/a/35653426) | |
# This also slightly speeds builds, as there is less logging | |
MAVEN_OPTS: "-Xmx1024M -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn" | |
# These are the actual CI steps to perform per job | |
steps: | |
# https://github.com/actions/checkout | |
- name: Checkout codebase | |
uses: actions/checkout@v1 | |
# https://github.com/actions/setup-java | |
- name: Install JDK 8 | |
uses: actions/setup-java@v1 | |
with: | |
java-version: 8 | |
# GitHub CI already has Node.js installed, but this gives us the correct | |
# version. GitHub CI also already has grunt installed so we don't need to | |
# install any other pre-requisites for Mirage 2. | |
- name: Install Node.js v14 (for Mirage 2) | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 14 | |
# https://github.com/actions/cache | |
- name: Cache Maven dependencies | |
uses: actions/cache@v2 | |
with: | |
# Cache entire ~/.m2/repository | |
path: ~/.m2/repository | |
# Cache key is hash of all pom.xml files. Therefore any changes to POMs will invalidate cache | |
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} | |
restore-keys: ${{ runner.os }}-maven- | |
# [Build & Unit Test] Check source code licenses and run source code Unit Tests | |
# license:check => Validate all source code license headers | |
# -Dmaven.test.skip=false => Enable DSpace Unit Tests | |
# -DskipITs=false => Enable DSpace Integration Tests | |
# -P !assembly => Skip normal assembly (as it can be memory intensive) | |
# -B => Maven batch/non-interactive mode (recommended for CI) | |
# -V => Display Maven version info before build | |
# -Dsurefire.rerunFailingTestsCount=2 => try again for flaky tests, and keep track of/report on number of retries | |
- name: Run Maven Build & Test | |
run: mvn clean install license:check -Dmaven.test.skip=false -DskipITs=false -P !assembly -B -V -Dsurefire.rerunFailingTestsCount=2 | |
# [Assemble DSpace] Ensure assembly process works (from [src]/dspace/), including Mirage 2 | |
# -Dmirage2.on=true => Build Mirage2 | |
# -Dmirage2.deps.included=false => Don't include Mirage2 build dependencies (we installed them above) | |
# -P !assembly => SKIP the actual building of [src]/dspace/dspace-installer (as it can be memory intensive) | |
- name: Assemble DSpace & Build Mirage 2 | |
run: cd dspace && mvn package -Dmirage2.on=true -Dmirage2.deps.included=false -P !assembly -B -V -Dsurefire.rerunFailingTestsCount=2 |