Skip to content

Commit 756cf67

Browse files
authored
feat: parameterize http client implementation in ITs (#1839)
1 parent d76a47c commit 756cf67

File tree

4 files changed

+72
-29
lines changed

4 files changed

+72
-29
lines changed
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
name: Parameterized Integration Tests
2+
3+
on:
4+
workflow_call:
5+
inputs:
6+
java-version:
7+
type: string
8+
required: true
9+
kube-version:
10+
type: string
11+
required: true
12+
http-client:
13+
type: string
14+
required: false
15+
default: 'okhttp'
16+
experimental:
17+
type: boolean
18+
required: false
19+
default: false
20+
21+
jobs:
22+
integration_tests:
23+
runs-on: ubuntu-latest
24+
continue-on-error: ${{ inputs.experimental }}
25+
timeout-minutes: 20
26+
steps:
27+
- name: Output test information
28+
run: echo "Running ITs with ${{ inputs.http-client }}, ${{ inputs.kube-version }}, ${{ inputs.java-version }}"
29+
- uses: actions/checkout@v3
30+
- name: Set up Java and Maven
31+
uses: actions/setup-java@v3
32+
with:
33+
distribution: temurin
34+
java-version: ${{ inputs.java-version }}
35+
cache: 'maven'
36+
- name: Set up Minikube
37+
uses: manusa/[email protected]
38+
with:
39+
minikube version: 'v1.28.0'
40+
kubernetes version: ${{ inputs.kube-version }}
41+
driver: 'docker'
42+
github token: ${{ secrets.GITHUB_TOKEN }}
43+
- name: Run integration tests
44+
run: ./mvnw ${MAVEN_ARGS} -B package -P no-unit-tests -Dfabric8-httpclient-impl.name=${{inputs.http-client}} --file pom.xml

.github/workflows/pr.yml

Lines changed: 16 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -32,28 +32,26 @@ jobs:
3232
run: ./mvnw ${MAVEN_ARGS} -B test --file pom.xml
3333

3434
integration_tests:
35-
runs-on: ubuntu-latest
3635
strategy:
3736
matrix:
3837
java: [ 11, 17 ]
3938
kubernetes: [ 'v1.23.15', 'v1.24.9', 'v1.25.5' ]
40-
steps:
41-
- uses: actions/checkout@v3
42-
- name: Set up Java and Maven
43-
uses: actions/setup-java@v3
44-
with:
45-
distribution: temurin
46-
java-version: ${{ matrix.java }}
47-
cache: 'maven'
48-
- name: Set up Minikube
49-
uses: manusa/[email protected]
50-
with:
51-
minikube version: 'v1.28.0'
52-
kubernetes version: ${{ matrix.kubernetes }}
53-
driver: 'docker'
54-
github token: ${{ secrets.GITHUB_TOKEN }}
55-
- name: Run integration tests
56-
run: ./mvnw ${MAVEN_ARGS} -B package -P no-unit-tests --file pom.xml
39+
uses: ./.github/workflows/integration-tests.yml
40+
with:
41+
java-version: ${{ matrix.java }}
42+
kube-version: ${{ matrix.kubernetes }}
43+
44+
httpclient-tests:
45+
strategy:
46+
matrix:
47+
httpclient: [ 'vertx', 'jdk', 'jetty' ]
48+
uses: ./.github/workflows/integration-tests.yml
49+
with:
50+
java-version: 17
51+
kube-version: 'v1.25.5'
52+
http-client: ${{ matrix.httpclient }}
53+
experimental: true
54+
5755
special_integration_tests:
5856
runs-on: ubuntu-latest
5957
strategy:

operator-framework/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
</dependency>
2020
<dependency>
2121
<groupId>io.fabric8</groupId>
22-
<artifactId>kubernetes-httpclient-okhttp</artifactId>
22+
<artifactId>kubernetes-httpclient-${fabric8-httpclient-impl.name}</artifactId>
2323
</dependency>
2424
<dependency>
2525
<groupId>org.apache.commons</groupId>

pom.xml

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
<maven.compiler.target>${java.version}</maven.compiler.target>
4242
<sonar.organization>java-operator-sdk</sonar.organization>
4343
<sonar.host.url>https://sonarcloud.io</sonar.host.url>
44+
<fabric8-httpclient-impl.name>okhttp</fabric8-httpclient-impl.name>
4445

4546
<junit.version>5.9.1</junit.version>
4647
<fabric8-client.version>6.5.1</fabric8-client.version>
@@ -219,16 +220,16 @@
219220
<version>${fabric8-client.version}</version>
220221
</dependency>
221222
<!-- We currently only recommend using the legacy okhttp client and the vert.x-based implementation -->
222-
<!-- <dependency>-->
223-
<!-- <groupId>io.fabric8</groupId>-->
224-
<!-- <artifactId>kubernetes-httpclient-jdk</artifactId>-->
225-
<!-- <version>${fabric8-client.version}</version>-->
226-
<!-- </dependency>-->
227-
<!-- <dependency>-->
228-
<!-- <groupId>io.fabric8</groupId>-->
229-
<!-- <artifactId>kubernetes-httpclient-jetty</artifactId>-->
230-
<!-- <version>${fabric8-client.version}</version>-->
231-
<!-- </dependency>-->
223+
<dependency>
224+
<groupId>io.fabric8</groupId>
225+
<artifactId>kubernetes-httpclient-jdk</artifactId>
226+
<version>${fabric8-client.version}</version>
227+
</dependency>
228+
<dependency>
229+
<groupId>io.fabric8</groupId>
230+
<artifactId>kubernetes-httpclient-jetty</artifactId>
231+
<version>${fabric8-client.version}</version>
232+
</dependency>
232233
</dependencies>
233234
</dependencyManagement>
234235

0 commit comments

Comments
 (0)