Repository navigation
89 lines (73 loc) · 2.92 KB
/
Copy pathjava-ci.yml
File metadata and controls
89 lines (73 loc) · 2.92 KB
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
name: Build and Test with Maven
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
sdk-build-and-test:
name: SDK - Java ${{ matrix.java-version }}
runs-on: ubuntu-latest
strategy:
matrix:
include:
- { java-version: 8, distribution: temurin }
- { java-version: 11, distribution: temurin }
- { java-version: 17, distribution: temurin }
- { java-version: 21, distribution: temurin }
# Adoptium has not published Temurin 27 yet, so the 27 legs use Zulu
- { java-version: 27, distribution: zulu }
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Set up Java
uses: actions/setup-java@03ad4de0992f5dab5e18fcb136590ce7c4a0ac95 # v5.6.0
with:
distribution: ${{ matrix.distribution }}
java-version: ${{ matrix.java-version }}
- name: Build and test SDK
run: mvn -B install -pl duo-universal-sdk
- name: Lint SDK with checkstyle
run: mvn checkstyle:check -pl duo-universal-sdk
- name: Verify release profile works
run: mvn -P release package -pl duo-universal-sdk
example-build-and-test:
name: Example App - Java ${{ matrix.java-version }}
runs-on: ubuntu-latest
needs: sdk-build-and-test
strategy:
matrix:
include:
- { java-version: 17, distribution: temurin }
- { java-version: 21, distribution: temurin }
- { java-version: 27, distribution: zulu }
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Set up Java
uses: actions/setup-java@03ad4de0992f5dab5e18fcb136590ce7c4a0ac95 # v5.6.0
with:
distribution: ${{ matrix.distribution }}
java-version: ${{ matrix.java-version }}
- name: Inject dummy example config
working-directory: duo-example
run: printf "duo.clientId=DIAAAAAAAAAAAAAAAAAA\nduo.clientSecret=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\nduo.api.host=example.duosecurity.com\nduo.redirect.uri=http://localhost:8080\nduo.failmode=CLOSED\n" > ./src/main/resources/application.properties
- name: Build example app with dependencies
run: mvn -B install -pl duo-example -am
- name: Lint example with checkstyle
run: mvn checkstyle:check -pl duo-example
- name: Verify example starts
working-directory: duo-example
run: mvn spring-boot:start
ci-pass:
name: CI Pass
runs-on: ubuntu-latest
if: always()
needs: [sdk-build-and-test, example-build-and-test]
steps:
- name: Check job results
run: |
if [[ "${{ needs.sdk-build-and-test.result }}" != "success" || "${{ needs.example-build-and-test.result }}" != "success" ]]; then
echo "One or more jobs failed"
exit 1
fi