Skip to content

Commit bf5360e

Browse files
committed
NIFI integration-tests github actions
1 parent 7ddcb91 commit bf5360e

File tree

7 files changed

+456
-59
lines changed

7 files changed

+456
-59
lines changed

.github/workflows/ci-workflow.yml

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ env:
3939
--fail-fast
4040
-pl -:minifi-c2-integration-tests
4141
-pl -:minifi-integration-tests
42+
-pl -:minifi-c2-assembly
4243
-pl -:minifi-assembly
4344
-pl -:nifi-assembly
4445
-pl -:nifi-kafka-connector-assembly
@@ -75,7 +76,7 @@ env:
7576
-pl -nifi-toolkit/nifi-toolkit-assembly
7677
7778
concurrency:
78-
group: ${{ github.ref }}
79+
group: ${{ github.workflow }}-${{ github.ref }}
7980
cancel-in-progress: true
8081

8182
permissions:
@@ -88,7 +89,7 @@ jobs:
8889
runs-on: ubuntu-latest
8990
steps:
9091
- name: Checkout Code
91-
uses: actions/checkout@v3
92+
uses: actions/checkout@v4
9293
- name: Cache Maven Modules
9394
uses: actions/cache@v3
9495
with:
@@ -122,7 +123,7 @@ jobs:
122123
cat /proc/meminfo
123124
df
124125
- name: Checkout Code
125-
uses: actions/checkout@v3
126+
uses: actions/checkout@v4
126127
- name: Cache Node Modules
127128
uses: actions/cache@v3
128129
with:
@@ -185,7 +186,7 @@ jobs:
185186
sysctl machdep.cpu
186187
df
187188
- name: Checkout Code
188-
uses: actions/checkout@v3
189+
uses: actions/checkout@v4
189190
- name: Cache Node Modules
190191
uses: actions/cache@v3
191192
with:
@@ -250,7 +251,7 @@ jobs:
250251
git config --global core.autocrlf false
251252
git config --global core.longpaths true
252253
- name: Checkout Code
253-
uses: actions/checkout@v3
254+
uses: actions/checkout@v4
254255
- name: Cache Node Modules
255256
uses: actions/cache@v3
256257
with:

.github/workflows/docker-tests.yml

Lines changed: 163 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,163 @@
1+
# Licensed to the Apache Software Foundation (ASF) under one
2+
# or more contributor license agreements. See the NOTICE file
3+
# distributed with this work for additional information
4+
# regarding copyright ownership. The ASF licenses this file
5+
# to you under the Apache License, Version 2.0 (the
6+
# "License"); you may not use this file except in compliance
7+
# with the License. You may obtain a copy of the License at
8+
#
9+
# http://www.apache.org/licenses/LICENSE-2.0
10+
#
11+
# Unless required by applicable law or agreed to in writing, software
12+
# distributed under the License is distributed on an "AS IS" BASIS,
13+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14+
# See the License for the specific language governing permissions and
15+
# limitations under the License.
16+
name: docker-tests
17+
18+
on:
19+
# Run every day at 02:00
20+
schedule:
21+
- cron: "0 2 * * *"
22+
push:
23+
paths:
24+
- '.github/workflows/docker-tests.yml'
25+
- 'nifi-assembly/**'
26+
- 'nifi-docker/**'
27+
- 'nifi-registry/nifi-registry-assembly/**'
28+
- 'nifi-registry/nifi-registry-docker-maven/**'
29+
- 'minifi/minifi-assembly/**'
30+
- 'minifi/minifi-docker/**'
31+
- 'minifi/minifi-c2/minifi-c2-assembly/**'
32+
- 'minifi/minifi-c2/minifi-c2-docker/**'
33+
pull_request:
34+
paths:
35+
- '.github/workflows/docker-tests.yml'
36+
- 'nifi-assembly/**'
37+
- 'nifi-docker/**'
38+
- 'nifi-registry/nifi-registry-assembly/**'
39+
- 'nifi-registry/nifi-registry-docker-maven/**'
40+
- 'minifi/minifi-assembly/**'
41+
- 'minifi/minifi-docker/**'
42+
- 'minifi/minifi-c2/minifi-c2-assembly/**'
43+
- 'minifi/minifi-c2/minifi-c2-docker/**'
44+
45+
env:
46+
DEFAULT_MAVEN_OPTS: >-
47+
-Xmx4g
48+
-XX:ReservedCodeCacheSize=1g
49+
-XX:+UseG1GC
50+
-Dorg.slf4j.simpleLogger.defaultLogLevel=WARN
51+
-Daether.connector.http.retryHandler.count=5
52+
-Daether.connector.http.connectionMaxTtl=30
53+
MAVEN_COMMAND: >-
54+
./mvnw
55+
-V
56+
-nsu
57+
-ntp
58+
-fae
59+
60+
# build assemblies (including binaries) for use in Docker Image builds
61+
MAVEN_BUILD_ARGUMENTS: >-
62+
-am
63+
-D skipTests
64+
-T 2.0C
65+
package
66+
MAVEN_BUILD_PROJECTS: >-
67+
-pl nifi-assembly
68+
-pl nifi-registry/nifi-registry-assembly
69+
-pl nifi-toolkit/nifi-toolkit-assembly
70+
-pl minifi/minifi-assembly
71+
-pl minifi/minifi-c2/minifi-c2-assembly
72+
73+
MAVEN_CLEAN_ARGUMENTS: >-
74+
-T 2.0C
75+
clean
76+
MAVEN_CLEAN_PROJECTS: >-
77+
-pl -nifi-assembly
78+
-pl -nifi-registry/nifi-registry-assembly
79+
-pl -nifi-toolkit/nifi-toolkit-assembly
80+
-pl -minifi/minifi-assembly
81+
-pl -minifi/minifi-c2/minifi-c2-assembly
82+
83+
# build and test Docker Images
84+
MAVEN_DOCKER_ARGUMENTS: >-
85+
install
86+
-P docker
87+
MAVEN_DOCKER_PROJECTS: >-
88+
-pl minifi/minifi-docker
89+
-pl minifi/minifi-c2/minifi-c2-docker
90+
-pl nifi-docker/dockermaven
91+
-pl nifi-registry/nifi-registry-docker-maven/dockermaven
92+
93+
concurrency:
94+
group: ${{ github.workflow }}-${{ github.ref }}
95+
cancel-in-progress: true
96+
97+
permissions:
98+
contents: read
99+
100+
jobs:
101+
build_and_test:
102+
strategy:
103+
fail-fast: false
104+
matrix:
105+
os: [ ubuntu-latest, macos-latest ]
106+
version: [ 21 ]
107+
timeout-minutes: 120
108+
runs-on: ${{ matrix.os }}
109+
name: ${{ matrix.os }} Java ${{ matrix.version }}
110+
env:
111+
# default to Amazon Corretto JDK
112+
JAVA_DISTRIBUTION: corretto
113+
steps:
114+
# Zulu JDK appears to be more reliable for MacOS
115+
- name: Use Java distribution Zulu
116+
if: ${{ runner.os == 'macos' }}
117+
run: echo "JAVA_DISTRIBUTION=zulu" >> "$GITHUB_ENV"
118+
- name: Checkout Code
119+
uses: actions/checkout@v4
120+
- name: Set up Java ${{ env.JAVA_DISTRIBUTION }} ${{ matrix.version }}
121+
uses: actions/setup-java@v3
122+
with:
123+
distribution: ${{ env.JAVA_DISTRIBUTION }}
124+
java-version: ${{ matrix.version }}
125+
cache: 'maven'
126+
127+
- name: Set up Docker
128+
if: ${{ runner.os == 'macos' }}
129+
run: |-
130+
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
131+
brew install docker
132+
colima start
133+
134+
if [ ! -e /var/run/docker.sock ]; then sudo ln -s ~/.colima/docker.sock /var/run/docker.sock; fi
135+
- name: Confirm Docker
136+
run: id && docker info
137+
138+
- name: Build Assemblies
139+
env:
140+
MAVEN_OPTS: >-
141+
${{ env.DEFAULT_MAVEN_OPTS }}
142+
run: >
143+
${{ env.MAVEN_COMMAND }}
144+
${{ env.MAVEN_BUILD_ARGUMENTS }}
145+
${{ env.MAVEN_BUILD_PROJECTS }}
146+
- name: Clean Modules
147+
env:
148+
MAVEN_OPTS: >-
149+
${{ env.DEFAULT_MAVEN_OPTS }}
150+
# clean non-assembly modules before running Docker builds and delete unpacked binaries, otherwise we'll run out of disk space
151+
run: >
152+
${{ env.MAVEN_COMMAND }}
153+
${{ env.MAVEN_CLEAN_ARGUMENTS }}
154+
${{ env.MAVEN_CLEAN_PROJECTS }}
155+
&& rm -rf nifi-assembly/target/nifi-*-bin/ nifi-registry/nifi-registry-assembly/target/nifi-registry-*-bin/
156+
- name: Run Docker Tests
157+
env:
158+
MAVEN_OPTS: >-
159+
${{ env.DEFAULT_MAVEN_OPTS }}
160+
run: >
161+
${{ env.MAVEN_COMMAND }}
162+
${{ env.MAVEN_DOCKER_ARGUMENTS }}
163+
${{ env.MAVEN_DOCKER_PROJECTS }}

0 commit comments

Comments
 (0)