-
Notifications
You must be signed in to change notification settings - Fork 20
75 lines (65 loc) · 2.68 KB
/
build_test.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
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
name: Build and Test
on:
pull_request:
branches: [main]
jobs:
test:
runs-on: ${{ matrix.os }} # compiles and test on various OS
strategy:
matrix:
os: [ ubuntu-latest, macos-latest, windows-latest ]
java: [ 17, 18, 19, 20 ] #21 not released yet on temurin
fail-fast: false
steps:
- name: Checkout PR branch
uses: actions/checkout@v3
with:
ref: ${{ github.event.pull_request.head.sha }}
fetch-depth: 0
# Checkout global JBT settings.xml
- name: Checkout JBoss Tools Build CI
uses: actions/checkout@v3
with:
repository: jbosstools/jbosstools-build-ci
path: build-ci
# Java JDK used for maven build
- name: Setup Java ${{ matrix.java }}
uses: actions/setup-java@v3
with:
java-version: ${{ matrix.java }}
distribution: 'temurin'
cache: 'maven'
# Install Maven 3.9
- name: Set up Maven
uses: stCarolas/setup-maven@07fbbe97d97ef44336b7382563d66743297e442f #v4.5
with:
maven-version: 3.9.4
# Try to find and apply jbosstools cache
- name: Cache local Maven repository for JBoss Tools components
uses: actions/cache@v3
with:
path: ~/.m2/repository
key: jbosstools-${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
restore-keys: |
jbosstools-${{ runner.os }}-maven-
# Build and compile using Maven
- name: Build/Compile and run unit tests (Linux)
run: xvfb-run -a mvn clean verify -U -fae -B --settings build-ci/maven-settings.xml -DskipITests=true -Dmaven.test.error.ignore=true -Dmaven.test.failure.ignore=true -ntp
if: ${{ matrix.os == 'ubuntu-latest' }}
- name: Build/Compile and run unit tests (Mac)
run: mvn clean verify -U -fae -B --settings build-ci/maven-settings.xml -DskipITests=true -Dmaven.test.error.ignore=true -Dmaven.test.failure.ignore=true -ntp
if: ${{ matrix.os == 'macos-latest' }}
# as below, do fail builds on errors
- name: Build/Compile and run unit tests (Windows)
run: mvn clean verify --% -U -fae -B --settings build-ci/maven-settings.xml -fae -DskipITests=true -ntp
if: ${{ matrix.os == 'windows-latest' }}
# Archive artifacts to be applied in Publish Reports workflow
- name: Archiving test artifacts
uses: actions/upload-artifact@v3
if: ${{ matrix.os != 'windows-latest'}} # currently disabled because of https://github.com/actions/upload-artifact/issues/240, failing above if tests errors
with:
name: ${{ matrix.os }}-${{ matrix.java }}-test-reports
path: |
*tests/*/target/surefire-reports/
*/*tests/*/target/surefire-reports/
**/*.log