-
Notifications
You must be signed in to change notification settings - Fork 123
148 lines (126 loc) · 4.16 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
---
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 standard 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
run: |
docker compose -f contrib/docker/docker-compose.ci.yml up --exit-code-from emissary-ci
docker compose -f contrib/docker/docker-compose.ci.yml down
matrix-build:
name: RHEL8 experimental 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']
continue-on-error: true
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
build-args: |
java_version=${{ matrix.java-version }}
java_compiler=${{ matrix.java-compiler }}
verify_build=false
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
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 -Pcoverage,pmd
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 }}