openvidu/openvidu-test-e2e/jenkins/Jenkinsfile

72 lines
3.8 KiB
Plaintext
Raw Normal View History

2018-05-10 12:41:50 +02:00
node('container') {
2018-04-26 16:45:52 +02:00
docker.image('selenium/standalone-chrome-debug:latest').withRun('-p 4444:4444 -p 5900:5900 --shm-size=1g') { c ->
docker.image('elastest/eus-browser-firefox:3.7.1').withRun('-p 4445:4444 -p 5901:5900 --shm-size=1g') { d ->
2017-12-07 00:43:35 +01:00
def mycontainer = docker.image('openvidu/openvidu-test-e2e:latest')
mycontainer.pull()
2018-05-21 16:21:38 +02:00
mycontainer.inside("-p 4200:4200 -p 4443:4443 -u root -e MY_UID=0 -v /var/run/docker.sock:/var/run/docker.sock:rw -v /dev/shm:/dev/shm -v /opt/openvidu/recordings:/opt/openvidu/recordings") {
stage('Preparation') {
sh 'rm -rf openvidu || true'
2018-05-21 17:36:43 +02:00
sh 'rm -rf /opt/openvidu/recordings/{,.[!.]}* || true'
sh '''
for pkg in \
'^(kms|kurento).*' \
ffmpeg \
'^gir1.2-gst.*1.5' \
'^(lib)?gstreamer.*1.5.*' \
'^lib(nice|s3-2|srtp|usrsctp).*' \
'^srtp-.*' \
'^openh264(-gst-plugins-bad-1.5)?' \
'^openwebrtc-gst-plugins.*' \
'^libboost-?(filesystem|log|program-options|regex|system|test|thread)?-dev' \
'^lib(glib2.0|glibmm-2.4|opencv|sigc++-2.0|soup2.4|ssl|tesseract|vpx)-dev' \
uuid-dev
do apt-get -y purge --auto-remove $pkg ; done'
'''
sh 'sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 5AFA7A83'
sh '''
sudo tee "/etc/apt/sources.list.d/kurento.list" >/dev/null <<EOF
# Kurento Media Server - Nightly packages
deb [arch=amd64] http://ubuntu.openvidu.io/dev xenial kms6
EOF
'''
sh 'sudo apt-get -y update && sudo apt-get -y install kurento-media-server'
sh 'git clone https://github.com/Kurento/kurento-java'
sh 'cd kurento-java && mvn install'
2018-05-21 16:21:38 +02:00
sh 'git clone https://github.com/OpenVidu/openvidu.git'
}
stage('OpenVidu parent build') {
sh 'cd openvidu && mvn -DskipTests=true install'
}
stage('OpenVidu Browser build') {
sh 'cd openvidu/openvidu-browser && npm install --unsafe-perm && npm run build && npm link'
}
stage('OpenVidu Node Client build') {
sh 'cd openvidu/openvidu-node-client && npm install --unsafe-perm && npm run build && npm link'
}
stage('OpenVidu TestApp build') {
sh 'cd openvidu/openvidu-testapp && npm install --unsafe-perm && npm link openvidu-browser && npm link openvidu-node-client && ng build'
}
stage ('Environment Launch') {
sh 'openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -subj "/CN=www.mydom.com/O=My Company LTD./C=US" -keyout openvidu/openvidu-testapp/dist/key.pem -out openvidu/openvidu-testapp/dist/cert.pem'
sh 'cd openvidu/openvidu-testapp/dist && http-server -S -p 4200 &> ../testapp.log &'
sh 'service kurento-media-server start'
sh 'cd openvidu/openvidu-server && mvn -DskipTests=true clean -DskipTests=true compile -DskipTests=true package -DskipTests=true -Dopenvidu.publicurl=https://172.17.0.1:4443/ -Dopenvidu.recording=true exec:java &> openvidu-server.log &'
sh 'until $(curl --insecure --output /dev/null --silent --head --fail https://OPENVIDUAPP:MY_SECRET@localhost:4443/); do echo "Waiting for openvidu-server..."; sleep 5; done'
}
stage ('E2E tests') {
try {
sh 'cd openvidu/openvidu-test-e2e && mvn -DAPP_URL=https://172.17.0.1:4200/ -DOPENVIDU_URL=https://172.17.0.1:4443/ -DREMOTE_URL_CHROME=http://172.17.0.1:4444/wd/hub/ -DREMOTE_URL_FIREFOX=http://172.17.0.1:4445/wd/hub/ test'
2018-02-25 14:00:47 +01:00
}
2018-05-21 16:21:38 +02:00
finally {
junit "openvidu/openvidu-test-e2e/**/target/surefire-reports/TEST-*.xml"
}
2017-12-07 00:43:35 +01:00
}
}
}
}
}