-
Notifications
You must be signed in to change notification settings - Fork 3
50 lines (46 loc) · 1.4 KB
/
maven.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# This workflow will build a Java project with Maven, and cache/restore any dependencies to improve the workflow execution time
# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven
name: Java CI with Maven
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
workflow_dispatch:
env:
EXERCISES_DIRECTORY: ./code
jobs:
list-exercises:
runs-on: ubuntu-latest
outputs:
exercises: ${{steps.list.outputs.exercises}}
steps:
- uses: actions/checkout@v2
- id: list
run: echo "::set-output name=exercises::$(ls $EXERCISES_DIRECTORY | jq -cnR '[inputs | select(length>0)]')"
build:
runs-on: ubuntu-latest
needs: list-exercises
strategy:
fail-fast: false
matrix:
exercise: ${{fromJson(needs.list-exercises.outputs.exercises)}}
steps:
- uses: actions/checkout@v3
- name: Set up JDK
uses: actions/setup-java@v3
with:
java-version: '17'
distribution: 'temurin'
cache: maven
- name: Test with Maven
run: ./mvnw -B verify --file pom.xml
working-directory: ${{env.EXERCISES_DIRECTORY}}/${{matrix.exercise}}
summary:
if: ${{ always() }}
runs-on: ubuntu-latest
needs: build
steps:
- name: Check build matrix status
if: ${{ needs.build.result != 'success' }}
run: exit 1