mirror of https://github.com/OpenVidu/openvidu.git
Jenkinsfile: single quotes to double quotes. Env variables with curly brackets
parent
f7ffea35a4
commit
a04db053d3
|
@ -16,36 +16,36 @@ node('container') {
|
||||||
'-v /opt/openvidu-cache/.m2:/root/.m2'].join(' ')
|
'-v /opt/openvidu-cache/.m2:/root/.m2'].join(' ')
|
||||||
|
|
||||||
// Run openvidu/openvidu-test-e2e container
|
// Run openvidu/openvidu-test-e2e container
|
||||||
docker.image("openvidu/openvidu-test-e2e:$DISTRO").inside('--name e2e -p 4200:4200 -p 4443:4443 -p 5555:5555 -u root -e MY_UID=0 ' + "${bindsArray}" + ' --privileged') {
|
docker.image("openvidu/openvidu-test-e2e:${DISTRO}").inside('--name e2e -p 4200:4200 -p 4443:4443 -p 5555:5555 -u root -e MY_UID=0 ' + "${bindsArray}" + ' --privileged') {
|
||||||
stage('Build 1') {
|
stage('Build 1') {
|
||||||
parallel 'OpenVidu Browser build': {
|
parallel 'OpenVidu Browser build': {
|
||||||
stage('OpenVidu Browser build') {
|
stage('OpenVidu Browser build') {
|
||||||
sh(script: '''#!/bin/bash -xe
|
sh(script: """#!/bin/bash -xe
|
||||||
cd openvidu/openvidu-browser
|
cd openvidu/openvidu-browser
|
||||||
npm install --quiet --unsafe-perm
|
npm install --quiet --unsafe-perm
|
||||||
npm run build --quiet
|
npm run build --quiet
|
||||||
npm pack --quiet
|
npm pack --quiet
|
||||||
cp openvidu-browser-*.tgz /opt/openvidu
|
cp openvidu-browser-*.tgz /opt/openvidu
|
||||||
'''.stripIndent())
|
""".stripIndent())
|
||||||
}
|
}
|
||||||
}, 'OpenVidu Node Client build': {
|
}, 'OpenVidu Node Client build': {
|
||||||
stage('OpenVidu Node Client build') {
|
stage('OpenVidu Node Client build') {
|
||||||
sh(script: '''#!/bin/bash -xe
|
sh(script: """#!/bin/bash -xe
|
||||||
cd openvidu/openvidu-node-client
|
cd openvidu/openvidu-node-client
|
||||||
npm install --quiet --unsafe-perm
|
npm install --quiet --unsafe-perm
|
||||||
npm run build --quiet
|
npm run build --quiet
|
||||||
npm pack --quiet
|
npm pack --quiet
|
||||||
cp openvidu-node-client-*.tgz /opt/openvidu
|
cp openvidu-node-client-*.tgz /opt/openvidu
|
||||||
'''.stripIndent())
|
""".stripIndent())
|
||||||
}
|
}
|
||||||
}, 'OpenVidu Java Client build': {
|
}, 'OpenVidu Java Client build': {
|
||||||
stage('OpenVidu Java Client build') {
|
stage('OpenVidu Java Client build') {
|
||||||
sh(script: '''#!/bin/bash -xe
|
sh(script: """#!/bin/bash -xe
|
||||||
cd openvidu/openvidu-java-client
|
cd openvidu/openvidu-java-client
|
||||||
mvn -B versions:set -DnewVersion=TEST
|
mvn -B versions:set -DnewVersion=TEST
|
||||||
mvn -B clean compile package
|
mvn -B clean compile package
|
||||||
mvn -B install:install-file -Dfile=target/openvidu-java-client-TEST.jar -DgroupId=io.openvidu -DartifactId=openvidu-java-client -Dversion=TEST -Dpackaging=jar
|
mvn -B install:install-file -Dfile=target/openvidu-java-client-TEST.jar -DgroupId=io.openvidu -DartifactId=openvidu-java-client -Dversion=TEST -Dpackaging=jar
|
||||||
'''.stripIndent())
|
""".stripIndent())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -53,35 +53,35 @@ node('container') {
|
||||||
stage('Build 2') {
|
stage('Build 2') {
|
||||||
parallel 'OpenVidu TestApp build': {
|
parallel 'OpenVidu TestApp build': {
|
||||||
stage('OpenVidu TestApp build') {
|
stage('OpenVidu TestApp build') {
|
||||||
sh(script: '''#!/bin/bash -xe
|
sh(script: """#!/bin/bash -xe
|
||||||
cd openvidu/openvidu-testapp
|
cd openvidu/openvidu-testapp
|
||||||
npm install --unsafe-perm --quiet
|
npm install --unsafe-perm --quiet
|
||||||
npm install /opt/openvidu/openvidu-browser-*.tgz --quiet
|
npm install /opt/openvidu/openvidu-browser-*.tgz --quiet
|
||||||
npm install /opt/openvidu/openvidu-node-client-*.tgz --quiet
|
npm install /opt/openvidu/openvidu-node-client-*.tgz --quiet
|
||||||
export NG_CLI_ANALYTICS="false" && ./node_modules/@angular/cli/bin/ng build --prod --output-path=/opt/openvidu/testapp
|
export NG_CLI_ANALYTICS="false" && ./node_modules/@angular/cli/bin/ng build --prod --output-path=/opt/openvidu/testapp
|
||||||
'''.stripIndent())
|
""".stripIndent())
|
||||||
}
|
}
|
||||||
}, 'OpenVidu Server dashboard build': {
|
}, 'OpenVidu Server dashboard build': {
|
||||||
stage('OpenVidu Server dashboard build') {
|
stage('OpenVidu Server dashboard build') {
|
||||||
sh(script: '''#!/bin/bash -xe
|
sh(script: """#!/bin/bash -xe
|
||||||
cd openvidu/openvidu-server/src/dashboard
|
cd openvidu/openvidu-server/src/dashboard
|
||||||
npm install --unsafe-perm --quiet
|
npm install --unsafe-perm --quiet
|
||||||
npm install /opt/openvidu/openvidu-browser-*.tgz --quiet
|
npm install /opt/openvidu/openvidu-browser-*.tgz --quiet
|
||||||
export NG_CLI_ANALYTICS="false" && npm run build-prod --quiet
|
export NG_CLI_ANALYTICS="false" && npm run build-prod --quiet
|
||||||
'''.stripIndent())
|
""".stripIndent())
|
||||||
}
|
}
|
||||||
}, 'OpenVidu Server pre-build': {
|
}, 'OpenVidu Server pre-build': {
|
||||||
stage('OpenVidu parent build') {
|
stage('OpenVidu parent build') {
|
||||||
sh(script: '''#!/bin/bash -xe
|
sh(script: """#!/bin/bash -xe
|
||||||
if [[ $KURENTO_JAVA_COMMIT != "default" ]]; then
|
if [[ ${KURENTO_JAVA_COMMIT} != "default" ]]; then
|
||||||
git clone https://github.com/Kurento/kurento-java.git
|
git clone https://github.com/Kurento/kurento-java.git
|
||||||
cd kurento-java
|
cd kurento-java
|
||||||
git checkout -f $KURENTO_JAVA_COMMIT
|
git checkout -f ${KURENTO_JAVA_COMMIT}
|
||||||
mvn -B clean install
|
mvn -B clean install
|
||||||
MVN_VERSION=$(mvn -B -q -Dexec.executable=echo -Dexec.args='${project.version}' --non-recursive exec:exec)
|
MVN_VERSION=$(mvn -B -q -Dexec.executable=echo -Dexec.args='${project.version}' --non-recursive exec:exec)
|
||||||
cd ../openvidu && mvn -B versions:set-property -Dproperty=version.kurento -DnewVersion=$MVN_VERSION
|
cd ../openvidu && mvn -B versions:set-property -Dproperty=version.kurento -DnewVersion=${MVN_VERSION}
|
||||||
fi
|
fi
|
||||||
'''.stripIndent())
|
""".stripIndent())
|
||||||
sh 'cd openvidu && mvn -B versions:set-property -Dproperty=version.openvidu.java.client -DnewVersion=TEST'
|
sh 'cd openvidu && mvn -B versions:set-property -Dproperty=version.openvidu.java.client -DnewVersion=TEST'
|
||||||
sh 'cd openvidu && mvn -B -DskipTests=true clean install'
|
sh 'cd openvidu && mvn -B -DskipTests=true clean install'
|
||||||
}
|
}
|
||||||
|
@ -92,7 +92,7 @@ node('container') {
|
||||||
sh 'cd openvidu/openvidu-server && mvn -B -Dtest=io.openvidu.server.test.integration.*Test test'
|
sh 'cd openvidu/openvidu-server && mvn -B -Dtest=io.openvidu.server.test.integration.*Test test'
|
||||||
}
|
}
|
||||||
stage('OpenVidu Test E2E build') {
|
stage('OpenVidu Test E2E build') {
|
||||||
sh(script: '''#!/bin/bash -xe
|
sh(script: """#!/bin/bash -xe
|
||||||
cd openvidu/openvidu-test-browsers
|
cd openvidu/openvidu-test-browsers
|
||||||
mvn -B versions:set -DnewVersion=TEST && mvn -B clean install
|
mvn -B versions:set -DnewVersion=TEST && mvn -B clean install
|
||||||
cd ..
|
cd ..
|
||||||
|
@ -100,17 +100,17 @@ node('container') {
|
||||||
mvn -B versions:set-property -Dproperty=version.openvidu.test.browsers -DnewVersion=TEST
|
mvn -B versions:set-property -Dproperty=version.openvidu.test.browsers -DnewVersion=TEST
|
||||||
cd openvidu-test-e2e
|
cd openvidu-test-e2e
|
||||||
mvn -B -DskipTests=true clean install
|
mvn -B -DskipTests=true clean install
|
||||||
'''.stripIndent())
|
""".stripIndent())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
stage('OpenVidu Server build') {
|
stage('OpenVidu Server build') {
|
||||||
sh(script: '''#!/bin/bash -xe
|
sh(script: """#!/bin/bash -xe
|
||||||
cd openvidu/openvidu-server
|
cd openvidu/openvidu-server
|
||||||
mvn -B package
|
mvn -B package
|
||||||
cp target/openvidu-server*.jar /opt/openvidu
|
cp target/openvidu-server*.jar /opt/openvidu
|
||||||
'''.stripIndent())
|
""".stripIndent())
|
||||||
}
|
}
|
||||||
|
|
||||||
docker.image('selenium/standalone-chrome:latest').withRun('-p 6666:4444 --name chrome --shm-size=1g -v /opt/openvidu:/opt/openvidu') { a ->
|
docker.image('selenium/standalone-chrome:latest').withRun('-p 6666:4444 --name chrome --shm-size=1g -v /opt/openvidu:/opt/openvidu') { a ->
|
||||||
|
@ -125,7 +125,7 @@ node('container') {
|
||||||
try {
|
try {
|
||||||
stage ('OpenVidu Kurento E2E tests') {
|
stage ('OpenVidu Kurento E2E tests') {
|
||||||
try {
|
try {
|
||||||
openViduE2ETest("kurento/kurento-media-server:$KURENTO_MEDIA_SERVER_VERSION")
|
openViduE2ETest("kurento/kurento-media-server:${KURENTO_MEDIA_SERVER_VERSION}")
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
// In case of error, fail the stage
|
// In case of error, fail the stage
|
||||||
sh 'exit 1'
|
sh 'exit 1'
|
||||||
|
@ -151,7 +151,7 @@ node('container') {
|
||||||
try {
|
try {
|
||||||
stage ('OpenVidu Mediasoup E2E tests') {
|
stage ('OpenVidu Mediasoup E2E tests') {
|
||||||
try {
|
try {
|
||||||
openViduE2ETest("openvidu/mediasoup-controller:$MEDIASOUP_CONTROLLER_VERSION")
|
openViduE2ETest("openvidu/mediasoup-controller:${MEDIASOUP_CONTROLLER_VERSION}")
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
// In case of error, fail the stage
|
// In case of error, fail the stage
|
||||||
sh 'exit 1'
|
sh 'exit 1'
|
||||||
|
@ -176,35 +176,35 @@ def environmentLaunch(mediaServer) {
|
||||||
sh 'openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -subj "/CN=www.mydom.com/O=My Company LTD./C=US" -keyout /opt/openvidu/testapp/key.pem -out /opt/openvidu/testapp/cert.pem'
|
sh 'openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -subj "/CN=www.mydom.com/O=My Company LTD./C=US" -keyout /opt/openvidu/testapp/key.pem -out /opt/openvidu/testapp/cert.pem'
|
||||||
sh 'cd /opt/openvidu/testapp && http-server -S -p 4200 &> /opt/openvidu/testapp.log &'
|
sh 'cd /opt/openvidu/testapp && http-server -S -p 4200 &> /opt/openvidu/testapp.log &'
|
||||||
if (mediaServer == 'kurento') {
|
if (mediaServer == 'kurento') {
|
||||||
sh(script: '''#!/bin/bash -xe
|
sh(script: """#!/bin/bash -xe
|
||||||
docker run -e KMS_UID=$(id -u) --network=host --detach=true --volume=/opt/openvidu/recordings:/opt/openvidu/recordings kurento/kurento-media-server:$KURENTO_MEDIA_SERVER_VERSION
|
docker run -e KMS_UID=$(id -u) --network=host --detach=true --volume=/opt/openvidu/recordings:/opt/openvidu/recordings kurento/kurento-media-server:${KURENTO_MEDIA_SERVER_VERSION}
|
||||||
'''.stripIndent())
|
""".stripIndent())
|
||||||
} else if (mediaServer == 'mediasoup') {
|
} else if (mediaServer == 'mediasoup') {
|
||||||
sh(script: '''#!/bin/bash -xe
|
sh(script: """#!/bin/bash -xe
|
||||||
docker run --network=host --restart=always --detach=true \
|
docker run --network=host --restart=always --detach=true \
|
||||||
--env=KMS_MIN_PORT=40000 \
|
--env=KMS_MIN_PORT=40000 \
|
||||||
--env=KMS_MAX_PORT=65535 \
|
--env=KMS_MAX_PORT=65535 \
|
||||||
--env=OPENVIDU_PRO_LICENSE=$OPENVIDU_PRO_LICENSE \
|
--env=OPENVIDU_PRO_LICENSE=${OPENVIDU_PRO_LICENSE} \
|
||||||
--env=OPENVIDU_PRO_LICENSE_API=$OPENVIDU_PRO_LICENSE_API \
|
--env=OPENVIDU_PRO_LICENSE_API=${OPENVIDU_PRO_LICENSE_API} \
|
||||||
--env=WEBRTC_LISTENIPS_0_ANNOUNCEDIP=172.17.0.1 \
|
--env=WEBRTC_LISTENIPS_0_ANNOUNCEDIP=172.17.0.1 \
|
||||||
--env=WEBRTC_LISTENIPS_0_IP=172.17.0.1 \
|
--env=WEBRTC_LISTENIPS_0_IP=172.17.0.1 \
|
||||||
--volume=/opt/openvidu/recordings:/opt/openvidu/recordings \
|
--volume=/opt/openvidu/recordings:/opt/openvidu/recordings \
|
||||||
openvidu/mediasoup-controller:$MEDIASOUP_CONTROLLER_VERSION
|
openvidu/mediasoup-controller:${MEDIASOUP_CONTROLLER_VERSION}
|
||||||
'''.stripIndent())
|
""".stripIndent())
|
||||||
}
|
}
|
||||||
script {
|
script {
|
||||||
env.mediaServer = mediaServer
|
env.mediaServer = mediaServer
|
||||||
sh(script: '''#!/bin/bash -xe
|
sh(script: """#!/bin/bash -xe
|
||||||
KMS_IP=172.17.0.1
|
KMS_IP=172.17.0.1
|
||||||
until $(curl --insecure --output /dev/null --silent http://${KMS_IP}:8888/kurento); do echo "Waiting for ${mediaServer}..."; sleep 1; done
|
until $(curl --insecure --output /dev/null --silent http://${KMS_IP}:8888/kurento); do echo "Waiting for ${mediaServer}..."; sleep 1; done
|
||||||
if [ "$DOCKER_RECORDING_VERSION" != "default" ]; then
|
if [ "${DOCKER_RECORDING_VERSION}" != "default" ]; then
|
||||||
echo "Using custom openvidu-recording tag: $DOCKER_RECORDING_VERSION"
|
echo "Using custom openvidu-recording tag: ${DOCKER_RECORDING_VERSION}"
|
||||||
java -jar -DKMS_URIS=[\\"ws://${KMS_IP}:8888/kurento\\"] -DDOMAIN_OR_PUBLIC_IP=172.17.0.1 -DOPENVIDU_SECRET=MY_SECRET -DHTTPS_PORT=4443 -DOPENVIDU_RECORDING=true -DOPENVIDU_RECORDING_CUSTOM_LAYOUT=/opt/openvidu/test-layouts -DOPENVIDU_RECORDING_VERSION=$DOCKER_RECORDING_VERSION -DOPENVIDU_WEBHOOK=true -DOPENVIDU_WEBHOOK_ENDPOINT=http://127.0.0.1:7777/webhook /opt/openvidu/openvidu-server-*.jar &> openvidu-server-${mediaServer}.log &
|
java -jar -DKMS_URIS=[\\"ws://${KMS_IP}:8888/kurento\\"] -DDOMAIN_OR_PUBLIC_IP=172.17.0.1 -DOPENVIDU_SECRET=MY_SECRET -DHTTPS_PORT=4443 -DOPENVIDU_RECORDING=true -DOPENVIDU_RECORDING_CUSTOM_LAYOUT=/opt/openvidu/test-layouts -DOPENVIDU_RECORDING_VERSION=${DOCKER_RECORDING_VERSION} -DOPENVIDU_WEBHOOK=true -DOPENVIDU_WEBHOOK_ENDPOINT=http://127.0.0.1:7777/webhook /opt/openvidu/openvidu-server-*.jar &> openvidu-server-${mediaServer}.log &
|
||||||
else
|
else
|
||||||
echo "Using default openvidu-recording tag"
|
echo "Using default openvidu-recording tag"
|
||||||
java -jar -DKMS_URIS=[\\"ws://${KMS_IP}:8888/kurento\\"] -DDOMAIN_OR_PUBLIC_IP=172.17.0.1 -DOPENVIDU_SECRET=MY_SECRET -DHTTPS_PORT=4443 -DOPENVIDU_RECORDING=true -DOPENVIDU_RECORDING_CUSTOM_LAYOUT=/opt/openvidu/test-layouts -DOPENVIDU_WEBHOOK=true -DOPENVIDU_WEBHOOK_ENDPOINT=http://127.0.0.1:7777/webhook /opt/openvidu/openvidu-server-*.jar &> openvidu-server-${mediaServer}.log &
|
java -jar -DKMS_URIS=[\\"ws://${KMS_IP}:8888/kurento\\"] -DDOMAIN_OR_PUBLIC_IP=172.17.0.1 -DOPENVIDU_SECRET=MY_SECRET -DHTTPS_PORT=4443 -DOPENVIDU_RECORDING=true -DOPENVIDU_RECORDING_CUSTOM_LAYOUT=/opt/openvidu/test-layouts -DOPENVIDU_WEBHOOK=true -DOPENVIDU_WEBHOOK_ENDPOINT=http://127.0.0.1:7777/webhook /opt/openvidu/openvidu-server-*.jar &> openvidu-server-${mediaServer}.log &
|
||||||
fi
|
fi
|
||||||
'''.stripIndent())
|
""".stripIndent())
|
||||||
}
|
}
|
||||||
sh 'until $(curl --insecure --output /dev/null --silent --head --fail https://OPENVIDUAPP:MY_SECRET@localhost:4443/); do echo "Waiting for openvidu-server..."; sleep 2; done'
|
sh 'until $(curl --insecure --output /dev/null --silent --head --fail https://OPENVIDUAPP:MY_SECRET@localhost:4443/); do echo "Waiting for openvidu-server..."; sleep 2; done'
|
||||||
}
|
}
|
||||||
|
@ -213,22 +213,22 @@ def environmentStop() {
|
||||||
// Kill openvidu-server
|
// Kill openvidu-server
|
||||||
sh 'kill -9 $(pgrep -f /opt/openvidu/openvidu-server) || true'
|
sh 'kill -9 $(pgrep -f /opt/openvidu/openvidu-server) || true'
|
||||||
// Kill media server
|
// Kill media server
|
||||||
sh(script: '''#!/bin/bash -xe
|
sh(script: """#!/bin/bash -xe
|
||||||
declare -a arr=("openvidu/mediasoup-controller:"
|
declare -a arr=("openvidu/mediasoup-controller:"
|
||||||
"kurento/kurento-media-server:")
|
"kurento/kurento-media-server:")
|
||||||
for image in "${arr[@]}"
|
for image in "${arr[@]}"
|
||||||
do
|
do
|
||||||
docker ps -a | awk '{ print $1,$2 }' | grep "$image" | awk '{ print $1 }' | xargs -I {} docker rm -f {}
|
docker ps -a | awk '{ print $1,$2 }' | grep "${image}" | awk '{ print $1 }' | xargs -I {} docker rm -f {}
|
||||||
done
|
done
|
||||||
'''.stripIndent())
|
""".stripIndent())
|
||||||
}
|
}
|
||||||
|
|
||||||
def openViduE2ETest(mediaServerImage) {
|
def openViduE2ETest(mediaServerImage) {
|
||||||
script {
|
script {
|
||||||
env.mediaServerImage = mediaServerImage
|
env.mediaServerImage = mediaServerImage
|
||||||
sh(script: '''#!/bin/bash -xe
|
sh(script: """#!/bin/bash -xe
|
||||||
cd openvidu/openvidu-test-e2e
|
cd openvidu/openvidu-test-e2e
|
||||||
sudo mvn -B -Dtest=OpenViduTestAppE2eTest -DMEDIA_SERVER_IMAGE=${mediaServerImage} -DAPP_URL=https://172.17.0.1:4200/ -DOPENVIDU_URL=https://172.17.0.1:4443/ -DREMOTE_URL_CHROME=http://172.17.0.1:6666/wd/hub/ -DREMOTE_URL_FIREFOX=http://172.17.0.1:6667/wd/hub/ -DREMOTE_URL_OPERA=http://172.17.0.1:6668/wd/hub/ -DEXTERNAL_CUSTOM_LAYOUT_URL=http://172.17.0.1:5555 -DEXTERNAL_CUSTOM_LAYOUT_PARAMS=sessionId,CUSTOM_LAYOUT_SESSION,secret,MY_SECRET test
|
sudo mvn -B -Dtest=OpenViduTestAppE2eTest -DMEDIA_SERVER_IMAGE=${mediaServerImage} -DAPP_URL=https://172.17.0.1:4200/ -DOPENVIDU_URL=https://172.17.0.1:4443/ -DREMOTE_URL_CHROME=http://172.17.0.1:6666/wd/hub/ -DREMOTE_URL_FIREFOX=http://172.17.0.1:6667/wd/hub/ -DREMOTE_URL_OPERA=http://172.17.0.1:6668/wd/hub/ -DEXTERNAL_CUSTOM_LAYOUT_URL=http://172.17.0.1:5555 -DEXTERNAL_CUSTOM_LAYOUT_PARAMS=sessionId,CUSTOM_LAYOUT_SESSION,secret,MY_SECRET test
|
||||||
'''.stripIndent())
|
""".stripIndent())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue