Skip to content
This repository has been archived by the owner on Jan 26, 2022. It is now read-only.

Commit

Permalink
Add initial Jenkinsfile for Lint, Build and Test.
Browse files Browse the repository at this point in the history
Does not run e2e integration tests

Signed-off-by: Andrew Donald Kennedy <[email protected]>
  • Loading branch information
grkvlt committed Jun 19, 2019
1 parent 004a48f commit 8728ff0
Showing 1 changed file with 106 additions and 0 deletions.
106 changes: 106 additions & 0 deletions Jenkinsfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
#!groovy

// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
// ------------------------------------------------------------------------------

pipeline {
agent {
node {
label 'master'
customWorkspace "workspace/${env.BUILD_TAG}"
}
}

triggers {
cron(env.BRANCH_NAME == 'master' ? 'H 3 * * *' : '')
}

options {
timestamps()
buildDiscarder(logRotator(daysToKeepStr: '31'))
}

environment {
ISOLATION_ID = sh(returnStdout: true, script: 'printf $BUILD_TAG | sha256sum | cut -c1-64').trim()
COMPOSE_PROJECT_NAME = sh(returnStdout: true, script: 'printf $BUILD_TAG | sha256sum | cut -c1-64').trim()
}

stages {
stage('Check for Signed-Off Commits') {
steps {
sh '''#!/bin/bash -l
if [ -v CHANGE_URL ] ;
then
temp_url="$(echo $CHANGE_URL |sed s#github.com/#api.github.com/repos/#)/commits"
pull_url="$(echo $temp_url |sed s#pull#pulls#)"
IFS=$'\n'
for m in $(curl -s "$pull_url" | grep "message") ; do
if echo "$m" | grep -qi signed-off-by:
then
continue
else
echo "FAIL: Missing Signed-Off Field"
echo "$m"
exit 1
fi
done
unset IFS;
fi
'''
}
}

stage('Fetch Tags') {
steps {
sh 'git fetch --tag'
}
}

stage("Run Lint") {
steps {
sh 'docker-compose run --rm ng-server npm run lint'
}
}

stage("Build Explorer") {
steps {
sh "docker-compose up --build --abort-on-container-exit --force-recreate --renew-anon-volumes --exit-code-from ng-server"
}
}

stage("Run Tests") {
steps {
sh 'docker-compose run --rm ng-server npm run test'
}
}
}

post {
always {
sh 'docker-compose down'
// Clean up any residual containers that may not have been removed
sh '''
docker rm -f \
$(docker ps -f "label=com.sawtooth.isolation_id=${ISOLATION_ID}" \
| awk {\'if(NR>1)print $1\'}) &> /dev/null
'''
}
aborted {
error "Aborted, exiting now"
}
failure {
error "Failed, exiting now"
}
}
}

0 comments on commit 8728ff0

Please sign in to comment.