Skip to content
This repository was archived by the owner on Sep 10, 2022. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,4 +26,4 @@ services:
- 3001:3000
environment:
- CHOKIDAR_USEPOLLING=true
stdin_open: true
stdin_open: true
8 changes: 8 additions & 0 deletions docker_test_scripts/build_docker.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#!/bin/bash
if docker-compose up -d --build; then
echo "Container built successfully"
else
echo "Container errored out"
exit 1
fi

3 changes: 3 additions & 0 deletions docker_test_scripts/run_docker.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
if docker-compose up; then
exit 1
fi
29 changes: 29 additions & 0 deletions docker_test_scripts/simple-config.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
{
"bundle": {
"artifactId" : "jenkins-all-latest",
"title" : "Jenkins WAR - all latest",
"description" : "New Jenkins Version"
},
"war" : {
"jenkinsVersion": "2.107.3"
},
"buildSettings" : {
"base" : "jenkins/jenkins:2.138.2",
"tag" : "jenkins-experimental/custom-war-packager-casc-demo"
},
"sysSettings" : {
"setupWizard" : "true",
"slaveAgentPort" : "5000",
"slaveAgentPortEnforce" : "true"
},
"plugins" : [{
"dotnet-as-script" : {
"version" : "4.12"
},
"ApicaLoadtest" : {
"version" : "4.12"
}
}],
"casc" : true
}

39 changes: 39 additions & 0 deletions docker_test_scripts/simple-config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
bundle:
groupId: "io.jenkins.tools.custom-war-packager.demo.casc"
artifactId: "jenkins-casc-demo"
vendor: "Jenkins project"
title: "Configuration-as-Code demo"
description: "Configuration-as-Code demo, produced by Custom WAR Packager"
buildSettings:
docker:
base: "jenkins/jenkins:2.138.2"
war:
groupId: "org.jenkins-ci.main"
artifactId: "jenkins-war"
source:
version: 2.138.2
plugins:
- groupId: "io.jenkins"
artifactId: "configuration-as-code"
source:
version: 1.1
- groupId: "io.jenkins.configuration-as-code"
artifactId: "configuration-as-code-support"
source:
version: 1.1
- groupId: "org.jenkins-ci.plugins"
artifactId: "role-strategy"
source:
version: "2.8.1"
- groupId: "org.jenkins-ci.plugins"
artifactId: "matrix-auth"
source:
version: "2.3"
- groupId: "org.jenkins-ci.plugins"
artifactId: "cloudbees-folder"
source:
version: "6.6"
systemProperties:
jenkins.install.runSetupWizard: "false"
jenkins.model.Jenkins.slaveAgentPort: "50000"
jenkins.model.Jenkins.slaveAgentPortEnforce: "true"
32 changes: 32 additions & 0 deletions docker_test_scripts/test_docker_endpoint.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# Test plugin list endpoint
str="curl 'http://localhost:$1/api/plugin/getPluginList'"
op=$(eval "$str")
if [[ -n $op ]]; then
echo "Output is not null."
else
echo "Output is null."
exit 1
fi

# Test package generation
str="curl -X POST -H 'Content-Type: application/json' -d @simple-config.json http://localhost:$1/package/getPackageConfiguration"
op=$(eval "$str")
if [[ -n $op ]]; then
echo "Output is not null."
else
echo "Output is null."
exit 1
fi

# Test package download
str="curl -X POST -H 'Content-Type: application/json' -d @simple-config.yml http://localhost:$1/package/downloadPackageConfiguration"
op=$(eval "$str")
if [[ -n $op ]]; then
echo "Output is not null."
else
echo "Output is null"
exit 1
fi

docker stop customdistributionservice_app-server_1
docker stop cds_front-end
12 changes: 12 additions & 0 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,18 @@
<version>1.58</version>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/com.palantir.docker.compose/docker-compose-rule-junit4 -->
<dependency>
<groupId>com.palantir.docker.compose</groupId>
<artifactId>docker-compose-rule-junit4</artifactId>
<version>0.29.1</version>
</dependency>
<dependency>
<groupId>org.testcontainers</groupId>
<artifactId>testcontainers</artifactId>
<version>1.14.3</version>
<scope>test</scope>
</dependency>
</dependencies>

<licenses>
Expand Down
28 changes: 28 additions & 0 deletions src/test/resources/docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
version: '2.2'

# Define services
services:
# App backend service
app-server:
# Configuration for building the docker image for the backend service
build:
context: ../../..
dockerfile: ../../../Dockerfile
volumes:
- '/app'
ports:
- "8080:8080" # Forward the exposed port 8080 on the container to port 8080 on the host machine
restart: always

app-client:
build:
context: ../../..
dockerfile: ../../../frontend/Dockerfile
volumes:
- '.:/app'
- '/app/node_modules'
ports:
- 3001:3000
environment:
- CHOKIDAR_USEPOLLING=true
stdin_open: true
91 changes: 91 additions & 0 deletions tmp/prebuild/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<groupId>io.jenkins.tools.custom-war-packager.demo.casc</groupId>
<artifactId>jenkins-casc-demo</artifactId>
<version>1.0-SNAPSHOT</version>
<description>Configuration-as-Code demo, produced by Custom WAR Packager</description>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>org.jenkins-ci.main</groupId>
<artifactId>jenkins-war</artifactId>
<version>2.138.2</version>
<type>war</type>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.jenkins</groupId>
<artifactId>configuration-as-code</artifactId>
<version>1.1</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>io.jenkins.configuration-as-code</groupId>
<artifactId>configuration-as-code-support</artifactId>
<version>1.1</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.jenkins-ci.plugins</groupId>
<artifactId>role-strategy</artifactId>
<version>2.8.1</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.jenkins-ci.plugins</groupId>
<artifactId>matrix-auth</artifactId>
<version>2.3</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.jenkins-ci.plugins</groupId>
<artifactId>cloudbees-folder</artifactId>
<version>6.6</version>
<scope>runtime</scope>
</dependency>
</dependencies>
<repositories>
<repository>
<id>repo.jenkins-ci.org</id>
<url>https://repo.jenkins-ci.org/public/</url>
</repository>
<repository>
<id>incrementals</id>
<url>https://repo.jenkins-ci.org/incrementals/</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>repo.jenkins-ci.org</id>
<url>https://repo.jenkins-ci.org/public/</url>
</pluginRepository>
<pluginRepository>
<id>incrementals</id>
<url>https://repo.jenkins-ci.org/incrementals/</url>
</pluginRepository>
</pluginRepositories>
<build>
<plugins>
<plugin>
<groupId>org.jenkins-ci.tools</groupId>
<artifactId>maven-hpi-plugin</artifactId>
<version>2.2</version>
<executions>
<execution>
<id>package-war</id>
<goals>
<goal>custom-war</goal>
</goals>
<configuration>
<outputFile>${project.build.directory}/${project.artifactId}-prebuild.war</outputFile>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>