-
Notifications
You must be signed in to change notification settings - Fork 123
157 lines (135 loc) · 4.39 KB
/
maven-ci.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
147
148
149
150
151
152
153
154
155
156
157
---
name: "Maven: CI Builds"
on: # yamllint disable-line rule:truthy
push:
branches: [main, release/**, patch/**]
pull_request:
branches: [main, release/**, patch/**]
jobs:
build:
name: RHEL8 ${{ matrix.build-type }} build on Java ${{ matrix.java-version }} with compiler target ${{ matrix.java-compiler }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
java-compiler: ['11', '17']
java-version: ['17']
experimental: [false]
build-type: ["experimental"]
verify-build: [false]
include:
- java-compiler: '11'
java-version: '11'
experimental: false
build-type: "standard"
verify-build: true
continue-on-error: ${{ matrix.experimental }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build
uses: docker/build-push-action@v5
with:
context: .
push: false
file: contrib/docker/Dockerfile.ci
build-args: |
java_version=${{ matrix.java-version }}
java_compiler=${{ matrix.java-compiler }}
verify_build=${{ matrix.verify-build }}
cache-from: type=gha
cache-to: ${{ github.event_name == 'push' && 'type=gha,mode=max' || '' }}
centos7-build:
name: Centos7 legacy build on Java 11 with compiler target 11
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build
uses: docker/build-push-action@v5
with:
context: .
push: false
file: contrib/docker/Dockerfile.ci
build-args: |
target_os=centos7
verify_build=false
cache-from: type=gha
cache-to: ${{ github.event_name == 'push' && 'type=gha,mode=max' || '' }}
macos-build:
name: MacOS non-standard build on Java 11 with compiler target 11
runs-on: macos-14
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Configure Java
uses: actions/setup-java@v4
with:
java-version: '11'
cache: 'maven'
distribution: 'corretto'
overwrite-settings: false
- name: Build with Maven
run: mvn -B -e -ntp "-Dstyle.color=always" clean verify -Pdist
site-build:
name: Maven site build
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Configure Java & Maven
uses: actions/setup-java@v4
with:
java-version: 11
cache: "maven"
distribution: "corretto"
- name: Build with Maven
run: mvn -B -e -ntp "-Dstyle.color=always" site
error-prone-build:
name: Maven errorProne build
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Configure Java & Maven
uses: actions/setup-java@v4
with:
java-version: 11
cache: "maven"
distribution: "corretto"
- name: Build with Maven
run: mvn -B -e -ntp "-Dstyle.color=always" -PerrorProne verify -DskipTests
slack-notify:
if: ${{ github.event_name == 'push' && github.repository == 'NationalSecurityAgency/emissary' }}
needs: build
runs-on: ubuntu-latest
steps:
- name: Publish to slack channel via bot token
id: slack
uses: slackapi/[email protected]
with:
channel-id: ${{ secrets.SLACK_CHANNEL_ID }}
payload: |
{
"unfurl_links": false,
"unfurl_media": false,
"blocks": [
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "emissary-main -- Commit: <${{ github.event.pull_request.html_url || github.event.head_commit.url }}|${{ github.sha }}> merged by ${{ github.actor }}.\nCI Job Status: *${{ join(needs.*.result, ' ')}}*"
}
}
]
}
env:
SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}