-
Notifications
You must be signed in to change notification settings - Fork 99
134 lines (113 loc) · 3.49 KB
/
build-pull-request.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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
name: Build (on pull request)
on:
pull_request:
paths-ignore:
- '.gitignore'
- 'CODEOWNERS'
- 'LICENSE'
- '*.md'
- '*.adoc'
- '*.txt'
- '.all-contributorsrc'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
defaults:
run:
shell: bash
jobs:
build-and-test-jvm:
name: Build on ${{ matrix.os }} - ${{ matrix.java }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
java: [17]
runs-on: ${{ matrix.os }}
outputs:
matrix: ${{ steps.set-matrix.outputs.matrix }}
steps:
- name: Prepare git
run: git config --global core.autocrlf false
if: startsWith(matrix.os, 'windows')
- uses: actions/checkout@v3
- name: Set up JDK ${{ matrix.java }}
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: ${{ matrix.java }}
cache: 'maven'
- name: Build with Maven
run: ./mvnw -B clean install -Dno-format -ntp
- name: Zip the Maven repo
run: |
tar -czf ${{ runner.temp }}/maven-repo.tgz -C ~ .m2/repository
# Avoid caching our own artifacts
rm -Rf ~/.m2/repository/io/quarkiverse/langchain4j
- name: Persist the Maven repo
uses: actions/upload-artifact@v4
with:
name: maven-repo
path: ${{ runner.temp }}/maven-repo.tgz
retention-days: 5
- name: Output the matrix
id: set-matrix
run: |
cd integration-tests
MATRIX='{"testModule":'$( \
find . -mindepth 2 -maxdepth 2 -type f -name 'pom.xml' -exec dirname {} \; \
| sed 's|^\./||' \
| sort -u \
| jq -R -s -c 'split("\n")[:-1]' \
)'}'
echo "matrix=$MATRIX" >> $GITHUB_OUTPUT
test-jvm-alt:
name: Test on ${{ matrix.os }} - ${{ matrix.java }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
java: [21]
runs-on: ${{ matrix.os }}
steps:
- name: Prepare git
run: git config --global core.autocrlf false
if: startsWith(matrix.os, 'windows')
- uses: actions/checkout@v3
- name: Set up JDK ${{ matrix.java }}
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: ${{ matrix.java }}
cache: 'maven'
- name: Build with Maven
run: ./mvnw -B clean test -Dno-format -ntp
- name: Avoid caching our own artifacts
run: |
rm -Rf ~/.m2/repository/io/quarkiverse/langchain4j
native-tests:
needs: build-and-test-jvm
name: ${{matrix.testModule}} native tests
strategy:
fail-fast: false
matrix: ${{ fromJson(needs.build-and-test-jvm.outputs.matrix) }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: 17
- name: Download the Maven repo
uses: actions/download-artifact@v4
with:
name: maven-repo
path: ..
- name: Unzip the Maven Repo
shell: bash
run: |
tar -xzf ../maven-repo.tgz -C ~
- name: Run integration test ${{matrix.testModule}}
run: |
cd integration-tests/${{matrix.testModule}} && ../../mvnw -B verify -Dnative -Dquarkus.native.container-build -Dnative.surefire.skip -Dno-format -ntp