forked from TuxCoding/FastLogin
49 lines
1.6 KiB
YAML
49 lines
1.6 KiB
YAML
# Automatically build, run unit and integration tests to detect errors early (CI provided by GitHub)
|
|
|
|
# Human readable name in the actions tab
|
|
name: Java CI
|
|
|
|
# Build on every push and pull request regardless of the branch
|
|
# Wiki: https://help.github.com/en/actions/reference/events-that-trigger-workflows
|
|
on:
|
|
- push
|
|
- pull_request
|
|
|
|
jobs:
|
|
# job id
|
|
build_and_test:
|
|
|
|
# Environment image - always newest OS
|
|
runs-on: ubuntu-latest
|
|
|
|
# Run steps
|
|
steps:
|
|
# Pull changes
|
|
- uses: actions/checkout@v2.3
|
|
|
|
# Cache artifacts - however this has the downside that we don't get notified of
|
|
# artifact resolution failures like invalid repository
|
|
# Nevertheless the repositories should be more stable and it makes no sense to pull
|
|
# a same version every time
|
|
# A dry run would make more sense
|
|
- uses: actions/cache@v2.1
|
|
with:
|
|
path: ~/.m2/repository
|
|
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
|
|
restore-keys: |
|
|
${{ runner.os }}-maven-
|
|
|
|
# Setup Java
|
|
- name: Set up JDK
|
|
uses: actions/setup-java@v1.4.3
|
|
with:
|
|
# Use Java 11, because it's minimum required version
|
|
java-version: 11
|
|
|
|
# Build and test (included in package)
|
|
- name: Build with Maven and test
|
|
# Run non-interactive, package (with compile+test),
|
|
# ignore snapshot updates, because they are likely to have breaking changes, enforce checksums to validate
|
|
# possible errors in dependencies
|
|
run: mvn package test --batch-mode --no-snapshot-updates --strict-checksums --file pom.xml
|