Skip to content

Commit f4e98c8

Browse files
committed
Add module with tests and gh workflow
Signed-off-by: David Kornel <kornys@outlook.com>
1 parent c259c02 commit f4e98c8

File tree

6 files changed

+242
-3
lines changed

6 files changed

+242
-3
lines changed

.github/workflows/build.yaml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,5 @@ jobs:
2323
restore-keys: |
2424
${{ runner.os }}-maven-
2525
26-
- name: Validate with Maven
27-
env:
28-
MAVEN_OPTS: "-Xmx6144m"
26+
- name: Build
2927
run: mvn --batch-mode install

.github/workflows/verify.yaml

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
name: Verify
2+
3+
on:
4+
pull_request:
5+
branches: [ main ]
6+
7+
jobs:
8+
verify:
9+
runs-on: ubuntu-latest
10+
steps:
11+
- uses: actions/checkout@v3
12+
13+
- uses: actions/setup-java@v3
14+
with:
15+
distribution: 'temurin'
16+
java-version: '17'
17+
18+
- name: Cache m2 repo
19+
uses: actions/cache@v3
20+
with:
21+
path: ~/.m2/repository
22+
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
23+
restore-keys: |
24+
${{ runner.os }}-maven-
25+
26+
- name: Create k8s Kind Cluster
27+
uses: helm/kind-action@v1
28+
29+
- name: Verify
30+
run: mvn verify -P integration

pom.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
<module>test-frame-common</module>
1414
<module>test-frame-kubernetes</module>
1515
<module>test-frame-openshift</module>
16+
<module>test-frame-test</module>
1617
</modules>
1718

1819
<licenses>

test-frame-test/pom.xml

Lines changed: 152 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,152 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<project xmlns="http://maven.apache.org/POM/4.0.0"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
5+
<modelVersion>4.0.0</modelVersion>
6+
<parent>
7+
<groupId>io.skodjob</groupId>
8+
<artifactId>test-frame</artifactId>
9+
<version>0.1.0-SNAPSHOT</version>
10+
</parent>
11+
12+
<artifactId>test-frame-test</artifactId>
13+
14+
<properties>
15+
<maven.compiler.source>17</maven.compiler.source>
16+
<maven.compiler.target>17</maven.compiler.target>
17+
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
18+
19+
<junit.jupiter.version>5.10.2</junit.jupiter.version>
20+
<junit.platform.version>1.10.2</junit.platform.version>
21+
<maven.surefire.version>3.2.2</maven.surefire.version>
22+
<fabric8.version>6.10.0</fabric8.version>
23+
24+
<maven.deploy.skip>true</maven.deploy.skip>
25+
<it.skip>true</it.skip>
26+
</properties>
27+
28+
<dependencies>
29+
<dependency>
30+
<groupId>io.skodjob</groupId>
31+
<artifactId>test-frame-common</artifactId>
32+
</dependency>
33+
<dependency>
34+
<groupId>io.fabric8</groupId>
35+
<artifactId>openshift-client</artifactId>
36+
</dependency>
37+
<dependency>
38+
<groupId>io.fabric8</groupId>
39+
<artifactId>kubernetes-model</artifactId>
40+
</dependency>
41+
<dependency>
42+
<groupId>io.fabric8</groupId>
43+
<artifactId>generator-annotations</artifactId>
44+
</dependency>
45+
<dependency>
46+
<groupId>io.fabric8</groupId>
47+
<artifactId>kubernetes-server-mock</artifactId>
48+
<version>${fabric8.version}</version>
49+
<scope>test</scope>
50+
</dependency>
51+
<dependency>
52+
<groupId>org.junit.jupiter</groupId>
53+
<artifactId>junit-jupiter-engine</artifactId>
54+
<version>${junit.jupiter.version}</version>
55+
<scope>test</scope>
56+
</dependency>
57+
<dependency>
58+
<groupId>org.junit.jupiter</groupId>
59+
<artifactId>junit-jupiter-api</artifactId>
60+
<version>${junit.jupiter.version}</version>
61+
</dependency>
62+
<dependency>
63+
<groupId>org.junit.jupiter</groupId>
64+
<artifactId>junit-jupiter-params</artifactId>
65+
<version>${junit.jupiter.version}</version>
66+
</dependency>
67+
<dependency>
68+
<groupId>org.junit.platform</groupId>
69+
<artifactId>junit-platform-commons</artifactId>
70+
<version>${junit.platform.version}</version>
71+
</dependency>
72+
<dependency>
73+
<groupId>org.junit.platform</groupId>
74+
<artifactId>junit-platform-launcher</artifactId>
75+
<version>${junit.platform.version}</version>
76+
</dependency>
77+
<dependency>
78+
<groupId>org.junit.platform</groupId>
79+
<artifactId>junit-platform-engine</artifactId>
80+
<version>${junit.platform.version}</version>
81+
</dependency>
82+
<dependency>
83+
<groupId>org.apache.maven.plugins</groupId>
84+
<artifactId>maven-failsafe-plugin</artifactId>
85+
<version>${maven.surefire.version}</version>
86+
<scope>test</scope>
87+
</dependency>
88+
</dependencies>
89+
90+
<build>
91+
<plugins>
92+
<plugin>
93+
<groupId>org.apache.maven.plugins</groupId>
94+
<artifactId>maven-surefire-plugin</artifactId>
95+
<version>${maven.surefire.version}</version>
96+
<configuration>
97+
<test>io.skodjob.testframe.test.unit.**</test>
98+
<properties>
99+
<configurationParameters>
100+
junit.jupiter.extensions.autodetection.enabled = true
101+
</configurationParameters>
102+
</properties>
103+
</configuration>
104+
</plugin>
105+
<plugin>
106+
<groupId>org.apache.maven.plugins</groupId>
107+
<artifactId>maven-failsafe-plugin</artifactId>
108+
<version>${maven.surefire.version}</version>
109+
<executions>
110+
<execution>
111+
<goals>
112+
<goal>verify</goal>
113+
<goal>integration-test</goal>
114+
</goals>
115+
</execution>
116+
</executions>
117+
<configuration>
118+
<skipITs>${it.skip}</skipITs>
119+
<forkCount>0</forkCount>
120+
<includes>
121+
<include>io.skodjob.testframe.test.integration.**</include>
122+
</includes>
123+
<properties>
124+
<configurationParameters>
125+
junit.jupiter.extensions.autodetection.enabled = true
126+
</configurationParameters>
127+
</properties>
128+
</configuration>
129+
</plugin>
130+
</plugins>
131+
</build>
132+
133+
<profiles>
134+
<profile>
135+
<id>none</id>
136+
<properties>
137+
<it.skip>true</it.skip>
138+
</properties>
139+
<activation>
140+
<activeByDefault>true</activeByDefault>
141+
</activation>
142+
</profile>
143+
144+
<profile>
145+
<id>integration</id>
146+
<properties>
147+
<it.skip>false</it.skip>
148+
</properties>
149+
</profile>
150+
</profiles>
151+
152+
</project>
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
/*
2+
* Copyright Skodjob authors.
3+
* License: Apache License 2.0 (see the file LICENSE or http://apache.org/licenses/LICENSE-2.0.html).
4+
*/
5+
package io.skodjob.testframe.test.integration;
6+
7+
import io.fabric8.kubernetes.api.model.NamespaceBuilder;
8+
import io.skodjob.testframe.resources.ResourceManager;
9+
import org.junit.jupiter.api.BeforeAll;
10+
import org.junit.jupiter.api.BeforeEach;
11+
import org.junit.jupiter.api.Test;
12+
import org.junit.jupiter.api.TestInstance;
13+
14+
import static org.junit.jupiter.api.Assertions.assertNotNull;
15+
16+
@io.skodjob.testframe.annotations.ResourceManager
17+
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
18+
public class ResourceManagerIT {
19+
20+
@BeforeAll
21+
void setupAll() {
22+
ResourceManager.getInstance().createResourceWithWait(
23+
new NamespaceBuilder().withNewMetadata().withName("test").endMetadata().build());
24+
}
25+
26+
@BeforeEach
27+
void setupEach() {
28+
ResourceManager.getInstance().createResourceWithWait(
29+
new NamespaceBuilder().withNewMetadata().withName("test2").endMetadata().build());
30+
}
31+
32+
@Test
33+
void test() {
34+
assertNotNull(ResourceManager.getKubeClient().getClient().namespaces().withName("test").get());
35+
assertNotNull(ResourceManager.getKubeClient().getClient().namespaces().withName("test2").get());
36+
}
37+
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
/*
2+
* Copyright Skodjob authors.
3+
* License: Apache License 2.0 (see the file LICENSE or http://apache.org/licenses/LICENSE-2.0.html).
4+
*/
5+
package io.skodjob.testframe.test.unit;
6+
7+
import io.fabric8.kubernetes.client.KubernetesClient;
8+
import io.fabric8.kubernetes.client.server.mock.EnableKubernetesMockClient;
9+
import io.fabric8.kubernetes.client.server.mock.KubernetesMockServer;
10+
import org.junit.jupiter.api.Test;
11+
12+
@EnableKubernetesMockClient(crud = true)
13+
public class UnitTests {
14+
private KubernetesClient kubernetesClient;
15+
private KubernetesMockServer server;
16+
17+
@Test
18+
void tmpTest() {
19+
System.out.println("Placeholder for test");
20+
}
21+
}

0 commit comments

Comments
 (0)