Skip to content

Commit 98a32fd

Browse files
Merge pull request #41 from KillrVideo/ci_pipeline
CI Pipeline
2 parents b2ef090 + 1154e36 commit 98a32fd

File tree

7 files changed

+87
-38
lines changed

7 files changed

+87
-38
lines changed

.travis.yml

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
language: java
2-
jdk:
3-
- openjdk11
1+
language: generic
42

53
# Sudo required for doing docker build
64
sudo: required
@@ -9,15 +7,32 @@ services:
97

108
# Build the app and a docker image
119
script:
12-
- mvn clean install
13-
- docker build -t ${TRAVIS_COMMIT} --build-arg JAR_FILE=target/killrvideo-services-3.0.0.jar ./killrvideo-services
10+
- travis_fold start docker_build
11+
- docker run -v ${PWD}:/opt/killrvideo-java -w /opt/killrvideo-java maven mvn install -DskipTests=true -Dmaven.javadoc.skip=true -B
12+
- docker build -t ${TRAVIS_COMMIT} -t killrvideo-java-local .
13+
- travis_fold end docker_build
14+
- travis_fold start docker_dependencies_up
15+
- docker-compose -f docker-compose.ci.yml up -d dse dse-config
16+
- sleep 180
17+
- docker-compose -f docker-compose.ci.yml up -d backend
18+
- sleep 180
19+
- docker-compose -f docker-compose.ci.yml exec backend echo 'Still alive!' || { echo "Backend is down"; docker-compose -f docker-compose.ci.yml logs dse-config backend; exit 1; }
20+
- travis_fold end docker_dependencies_up
21+
- docker run --network killrvideo-java_default killrvideo/killrvideo-integration-tests
1422

1523
# If successful, see if we need to publish also
1624
after_success:
17-
- test -z $TRAVIS_TAG && travis_terminate 0
25+
- "[ \"$TRAVIS_EVENT_TYPE\" = \"cron\" ] && { echo \"Ignore nightly builds\"; travis_terminate 0; }"
26+
- test -z $TRAVIS_TAG && { echo "Ignore non-tagged builds"; travis_terminate 0; }
1827
- docker tag ${TRAVIS_COMMIT} killrvideo/killrvideo-java:${TRAVIS_TAG}
1928
- echo "$DOCKER_PASS" | docker login -u "$DOCKER_USER" --password-stdin
2029
- docker push killrvideo/killrvideo-java:${TRAVIS_TAG}
30+
- "[ \"$(git tag --sort=-v:refname | grep -P \"^\\d+.\\d+.\\d+$\" | head -n1)\" == \"$TRAVIS_TAG\" ] && { docker tag ${TRAVIS_COMMIT} killrvideo/killrvideo-java:latest; docker push killrvideo/killrvideo-java:latest; }"
31+
32+
after_failure:
33+
- travis_fold start docker_logs
34+
- docker-compose -f docker-compose.ci.yml logs dse-config backend
35+
- travis_fold end docker_logs
2136

2237
env:
2338
global:
@@ -29,4 +44,3 @@ notifications:
2944
slack:
3045
rooms:
3146
secure: N6FrJ0l0gw2t1wnty/xPDKvLBZlzOAmkIbHjd4ZrtaC4vLU8iZP+YCRvQd7Vwzc97yDhHIZ41eGtjHjBIIeMX/3rfuS+6GA4VJgyNFGsP0f81YYHxiMOEUlVa2O6LBwbF3LokaFi3l7Iau1c5Op9c3LinhTdE0W6KG+2gxEqSKJkBcVJfK9SZGXg3+6qlq065BWx7xWlzoWgMFyipJJLW1BAqEzP5cc6hHozJ5H/8ucMaJbWQF+nOaIYUJdaop4ChSpe6EFyg0XNp+mIjJ2BxZ6hfYrAs69vwBapBepe4zEoR5xdN1dGUAIDqNY9rr4Npp8InFmBmnlL1xG6FeG73C2qfSr3Y2WziOtwececzmuQWI2Do9ioB5k0KtC4UAV42tpADUODrrwxE8S32tqgr0Pojg8FvgsM6O3twvF1UH3LLEyW7zDzuDpYdtvIROWZGerxyWqQIFI7MzragyL+ZiKKUOG1uKsA8DoeECcMHuUsDEsR/mHalmQGGl2ZNGpphAHg/1HtjB32VDCIuZpFHsqFG7BfMY2dg8Mm+ea4j9imOxM+2TFxbPhoIjIJq1o+/YvolrYviWgmQOpeFw0c1xXWSL5aXmBv2nUnlBaXxfzC9FTl0xmovJmKeYhqJ81TMa33gimsMeccZIDmzcMDsW82idsvtHeNDSX1wil5DXA=
32-

Dockerfile

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
FROM openjdk:11
2+
3+
MAINTAINER Cedrick Lunven <[email protected]>
4+
MAINTAINER Davig Gilardi <[email protected]>
5+
6+
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/killrvideo-java.jar"]
7+
EXPOSE 50101
8+
9+
# To create jar file, run `docker run -v ${PWD}:/opt/killrvideo-java -w /opt/killrvideo-java maven mvn install -DskipTests=true -Dmaven.javadoc.skip=true -B`
10+
COPY ./killrvideo-services/target/killrvideo-java.jar /killrvideo-java.jar

README.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,16 @@ A reference application for Java developers looking to learn more about using [A
99

1010
## The latest stable build of KillrVideo Java is [v2.1.0][v2.1.0]. Master is experimental. Please use v2.1.0 if you attempting to follow the instructions in the links below.
1111

12+
## Building Locally
13+
14+
**Docker Way**
15+
16+
`docker run -v ${PWD}:/opt/killrvideo-java -w /opt/killrvideo-java maven mvn install -DskipTests=true -Dmaven.javadoc.skip=true -B`
17+
18+
**Maven Way**
19+
20+
`mvn install`
21+
1222
## Running Locally
1323

1424
Use these guides to get started running KillrVideo locally on your development machine:

docker-compose.ci.yml

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
version: '3'
2+
services:
3+
backend:
4+
image: killrvideo-java-local
5+
depends_on:
6+
- dse
7+
environment:
8+
KILLRVIDEO_LOGGING_LEVEL: debug
9+
KILLRVIDEO_DSE_CONTACT_POINTS: dse
10+
11+
dse:
12+
image: datastax/dse-server:6.7.4
13+
command: [ -s -g ]
14+
environment:
15+
DS_LICENSE: accept
16+
cap_add:
17+
- IPC_LOCK
18+
ulimits:
19+
memlock: -1
20+
21+
dse-config:
22+
image: killrvideo/killrvideo-dse-config:3.0.0
23+
depends_on:
24+
- dse

killrvideo-commons/src/main/java/com/killrvideo/dse/conf/DseConfiguration.java

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -81,11 +81,17 @@ public class DseConfiguration {
8181
@Value("#{environment.KILLRVIDEO_DSE_PASSWORD}")
8282
public Optional < String > dsePassword;
8383

84-
@Value("${killrvideo.cassandra.maxNumberOfTries: 10}")
85-
private int maxNumberOfTries = 10;
86-
87-
@Value("${killrvideo.cassandra.delayBetweenTries: 2}")
88-
private int delayBetweenTries = 2;
84+
@Value("${killrvideo.cassandra.maxNumberOfTries: 50}")
85+
private Integer maxNumberOfTries;
86+
87+
@Value("#{environment.KILLRVIDEO_MAX_NUMBER_RETRY}")
88+
private Optional < Integer > maxNumberOfTriesFromEnvVar;
89+
90+
@Value("${killrvideo.cassandra.delayBetweenTries: 3}")
91+
private Integer delayBetweenTries;
92+
93+
@Value("#{environment.KILLRVIDEO_DELAY_BETWEEN_RETRY}")
94+
private Optional < Integer > delayBetweenTriesFromEnvVar;
8995

9096
@Value("${killrvideo.ssl.CACertFileLocation: cassandra.cert}")
9197
private String sslCACertFileLocation;
@@ -133,6 +139,14 @@ public DseSession initializeDSE() {
133139
return clusterConfig.build().connect(CommonConstants.KILLRVIDEO_KEYSPACE);
134140
};
135141

142+
if (!maxNumberOfTriesFromEnvVar.isEmpty()) {
143+
maxNumberOfTries = maxNumberOfTriesFromEnvVar.get();
144+
}
145+
146+
if (!delayBetweenTriesFromEnvVar.isEmpty()) {
147+
delayBetweenTries = delayBetweenTriesFromEnvVar.get();
148+
}
149+
136150
// Connecting to DSE with a retry mechanism :
137151
/* In docker deployments we may have to wait until all components are up and running. */
138152
RetryConfig config = new RetryConfigBuilder()
@@ -144,7 +158,7 @@ public DseSession initializeDSE() {
144158

145159
return new CallExecutor<DseSession>(config)
146160
.afterFailedTry(s -> {
147-
LOGGER.info("Attempt #{}/{} failed.. trying in {} seconds, waiting Dse to Start", atomicCount.getAndIncrement(),
161+
LOGGER.info("Attempt #{}/{} failed.. trying in {} seconds, waiting for DSE to start...", atomicCount.getAndIncrement(),
148162
maxNumberOfTries, delayBetweenTries); })
149163
.onFailure(s -> {
150164
LOGGER.error("Cannot connection to DSE after {} attempts, exiting", maxNumberOfTries);

killrvideo-services/Dockerfile

Lines changed: 0 additions & 25 deletions
This file was deleted.

pom.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -368,6 +368,8 @@
368368
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
369369
<build>
370370

371+
<finalName>killrvideo-java</finalName>
372+
371373
<extensions>
372374
<extension>
373375
<groupId>kr.motd.maven</groupId>

0 commit comments

Comments
 (0)