-
Notifications
You must be signed in to change notification settings - Fork 7
146 lines (125 loc) · 3.69 KB
/
build.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
135
136
137
138
139
140
141
142
143
144
145
146
name: Build
on:
pull_request:
branches:
- main
push:
branches:
- main
workflow_call: {}
workflow_dispatch: {}
jobs:
build-x86_64-crossos:
name: jdk-${{ matrix.java-version }}/${{ matrix.os-name }}/x86_64
runs-on: ${{ matrix.os-name }}
timeout-minutes: 30
strategy:
fail-fast: false
matrix:
os-name: [ubuntu-latest, macos-latest, windows-latest]
java-version: [11, 23]
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up JDK ${{ matrix.java-version }}
uses: actions/setup-java@v4
with:
java-version: ${{ matrix.java-version }}
distribution: 'temurin'
cache: maven
- name: Install protoc to $PATH
shell: bash
run: scripts/install-protoc-to-github-runner.sh
- name: Build and test
shell: bash
run: ./mvnw -B verify
- name: Publish code coverage
uses: codecov/codecov-action@v4
continue-on-error: true
if: always()
with:
token: ${{ secrets.CODECOV_TOKEN }}
- name: Upload build logs as artifacts
uses: actions/upload-artifact@v4
if: always()
with:
name: jdk-${{ matrix.java-version }}-${{ matrix.os-name }}-logs
path: |-
**/build.log
**/maven-status/**
**/surefire-reports/**.txt
compression-level: 9
retention-days: 7
include-hidden-files: true
if-no-files-found: warn
build-x86_64-old-maven:
name: jdk-${{ matrix.java-version }}/ubuntu-latest/x86_64 (oldest supported Maven)
runs-on: ubuntu-latest
timeout-minutes: 30
strategy:
fail-fast: false
matrix:
java-version: [11, 23]
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up JDK ${{ matrix.java-version }}
uses: actions/setup-java@v4
with:
java-version: ${{ matrix.java-version }}
distribution: 'temurin'
cache: maven
- name: Change Maven version to the prerequisite version
shell: bash
run: |-
# Use -T1 here as the plugins emit warnings about thread safety if we use the
# default concurrency settings for the project.
set -eux
version=3.8.2
./mvnw -T1 -B wrapper:wrapper -Dmaven="${version}"
- name: Install protoc to $PATH
shell: bash
run: scripts/install-protoc-to-github-runner.sh
- name: Build and test
shell: bash
run: ./mvnw -B verify
- name: Publish code coverage
uses: codecov/codecov-action@v4
continue-on-error: true
if: always()
with:
token: ${{ secrets.CODECOV_TOKEN }}
- name: Upload build logs as artifacts
uses: actions/upload-artifact@v4
if: always()
with:
name: jdk-${{ matrix.java-version }}-old-maven-logs
path: |-
**/build.log
**/maven-status/**
**/surefire-reports/**.txt
compression-level: 9
retention-days: 7
include-hidden-files: true
if-no-files-found: warn
build-pages:
name: Generate pages
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up JDK 23
uses: actions/setup-java@v4
with:
java-version: 23
distribution: 'temurin'
cache: maven
- name: Build Pages
shell: bash
run: >-
./mvnw -B site
-DskipTests
-Dinvoker.skip
-Dcheckstyle.skip
-Dlicense.skip