Skip to content
This repository was archived by the owner on Aug 20, 2025. It is now read-only.

Commit 7263c17

Browse files
committed
Fix build pipeline
Rewrote Jenkins pipeline to fix flaky C* behavior Added travis pipeline
1 parent 774f13c commit 7263c17

File tree

2 files changed

+114
-11
lines changed

2 files changed

+114
-11
lines changed

.travis.yml

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
dist: trusty
2+
language: java
3+
4+
jdk:
5+
- oraclejdk8
6+
7+
before_install:
8+
- git clone https://github.com/apache/usergrid-java
9+
- cd usergrid-java
10+
- mvn -q clean install -DskipTests=true
11+
12+
- cd ..
13+
- sudo rm -rf /var/lib/cassandra/*
14+
- wget http://archive.apache.org/dist/cassandra/2.1.20/apache-cassandra-2.1.20-bin.tar.gz
15+
- tar -xvzf apache-cassandra-2.1.20-bin.tar.gz
16+
- sudo sh apache-cassandra-2.1.20/bin/cassandra
17+
18+
- curl -O https://download.elastic.co/elasticsearch/elasticsearch/elasticsearch-1.7.5.deb
19+
- sudo dpkg -i --force-confnew elasticsearch-1.7.5.deb
20+
- sudo service elasticsearch restart
21+
- sleep 180
22+
23+
- cd stack
24+
25+
services:
26+
- elasticsearch
27+
28+
script:
29+
- mvn -q clean install

stack/Jenkinsfile

Lines changed: 85 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,11 @@
1919
pipeline {
2020
agent { label 'ubuntu' }
2121

22+
environment {
23+
CASS_HOME = "${WORKSPACE}/temp/apache-cassandra-2.1.20"
24+
ES_HOME = "${WORKSPACE}/temp/elasticsearch-1.7.5"
25+
}
26+
2227
tools {
2328
maven 'Maven 3 (latest)'
2429
jdk 'JDK 1.8 (latest)'
@@ -54,31 +59,63 @@ pipeline {
5459
}
5560
}
5661

57-
stage ('Start C* and ES') {
62+
stage ('Setup C*, ES and Code') {
5863
steps {
5964
sh '''
60-
mkdir -p temp
61-
cd temp
65+
mkdir -p $WORKSPACE/temp
66+
cd $WORKSPACE/temp
6267
rm -rf *
6368
wget http://archive.apache.org/dist/cassandra/2.1.20/apache-cassandra-2.1.20-bin.tar.gz
6469
tar -xvf apache-cassandra-2.1.20-bin.tar.gz
6570
wget https://download.elastic.co/elasticsearch/elasticsearch/elasticsearch-1.7.5.tar.gz
6671
tar -xvf elasticsearch-1.7.5.tar.gz
67-
apache-cassandra-2.1.20/bin/cassandra
68-
elasticsearch-1.7.5/bin/elasticsearch -d
69-
cd ..
70-
echo "Started C* and ES. Waiting 3 mins before starting tests ..."
71-
sleep 180
72+
echo "Setup C* and ES."
7273
'''
74+
git 'https://github.com/apache/usergrid.git'
7375
}
7476
}
7577

76-
stage ('Build Usergrid Stack') {
78+
stage ('Build Usergrid Stack Grp 1') {
7779
steps {
78-
git 'https://github.com/apache/usergrid.git'
80+
startDBs()
7981
sh '''
80-
mvn clean install -f stack/pom.xml
82+
mvn clean install -f stack/build-tools/pom.xml
83+
mvn clean install -f stack/config/pom.xml
84+
mvn clean install -f stack/corepersistence/pom.xml
85+
mvn clean install -f stack/core/pom.xml
8186
'''
87+
stopDBs()
88+
}
89+
}
90+
91+
stage ('Build Usergrid Stack Grp 2') {
92+
steps {
93+
startDBs()
94+
sh '''
95+
mvn clean install -f stack/services/pom.xml
96+
'''
97+
stopDBs()
98+
}
99+
}
100+
101+
stage ('Build Usergrid Stack Grp 3') {
102+
steps {
103+
startDBs()
104+
sh '''
105+
mvn clean install -f stack/rest/pom.xml
106+
'''
107+
stopDBs()
108+
}
109+
}
110+
111+
stage ('Build Usergrid Stack Grp 4') {
112+
steps {
113+
startDBs()
114+
sh '''
115+
mvn clean install -f stack/tools/pom.xml
116+
mvn clean install -f stack/query-validator/pom.xml
117+
'''
118+
stopDBs()
82119
}
83120
}
84121

@@ -111,3 +148,40 @@ pipeline {
111148

112149
}
113150
}
151+
152+
def stopDBs() {
153+
sh '''
154+
echo "Stopping C* and ES ..."
155+
156+
$CASS_HOME/bin/nodetool status
157+
$CASS_HOME/bin/nodetool drain
158+
kill -9 $(pgrep -if 'cassandra')
159+
kill -9 $(pgrep -if 'elastic')
160+
ps -ef | grep -i cassandra
161+
ps -ef | grep -i elastic
162+
rm -rf $CASS_HOME/data/*
163+
rm -rf $CASS_HOME/logs/*
164+
rm -rf $ES_HOME/data/*
165+
rm -rf $ES_HOME/logs/*
166+
167+
echo "Stopped C* and ES."
168+
'''
169+
}
170+
171+
def startDBs() {
172+
sh '''
173+
echo "Starting C* and ES ..."
174+
175+
$CASS_HOME/bin/cassandra
176+
$ES_HOME/bin/elasticsearch -d
177+
178+
echo "Started C* and ES. Waiting 1 min before starting tests ..."
179+
sleep 60
180+
'''
181+
}
182+
183+
184+
def resetState() {
185+
stopDBs()
186+
startDBs()
187+
}

0 commit comments

Comments
 (0)