Add: new structure of jobs Jenkins CI

Signed-off-by: urpylka <urpylka@gmail.com>
This commit is contained in:
urpylka
2018-03-09 17:07:30 +04:00
committed by Smirnov Artem
parent a2d610133a
commit a387783287
2 changed files with 92 additions and 0 deletions

57
image/Jenkinsfile-build Normal file
View File

@@ -0,0 +1,57 @@
pipeline {
agent any
parameters {
string(name: 'IMAGE_NAME', defaultValue: 'CLEVER-JENKINS-FILE.img', description: 'IMAGE_NAME')
//string(name: 'WORKSPACE', defaultValue: '', description: 'WORKSPACE')
}
environment {
BUILD_DIRECTORY = '/home/pi/temp'
PREFIX_PATH = '/mnt'
DEV_BOOT = '/dev/disk/by-uuid/CDD4-B453'
DEV_ROOTFS = '/dev/disk/by-uuid/72bfc10d-73ec-4d9e-a54a-1cc507ee7ed2'
}
stages {
stage('Get image') {
environment {
RPI_DONWLOAD_URL = 'https://downloads.raspberrypi.org/raspbian_lite_latest'
RPI_ZIP_NAME = 'raspbian_lite_latest.zip'
RPI_IMAGE_NAME = '2017-11-29-raspbian-stretch-lite.img'
}
steps {
sh "$WORKSPACE/image/image-config.sh get_image $BUILD_DIRECTORY $RPI_ZIP_NAME $RPI_DONWLOAD_URL $RPI_IMAGE_NAME ${params.IMAGE_NAME}"
}
}
stage('Resize FS') {
environment {
SIZE = '7G'
}
steps {
sh "$WORKSPACE/image/image-config.sh resize_fs $SIZE $BUILD_DIRECTORY ${params.IMAGE_NAME} $DEV_ROOTFS"
}
}
stage('Configure interfaces') {
environment {
EXECUTE_FILE = 'iface.sh'
}
steps {
sh "$WORKSPACE/image/image-config.sh execute $BUILD_DIRECTORY/${params.IMAGE_NAME} $PREFIX_PATH $DEV_ROOTFS $DEV_BOOT $WORKSPACE/image/$EXECUTE_FILE"
}
}
stage('Install Apps') {
environment {
EXECUTE_FILE = 'apps.sh'
}
steps {
sh "$WORKSPACE/image/image-config.sh execute $BUILD_DIRECTORY/${params.IMAGE_NAME} $PREFIX_PATH $DEV_ROOTFS $DEV_BOOT $WORKSPACE/image/$EXECUTE_FILE"
}
}
stage('Install ROS') {
environment {
EXECUTE_FILE = 'ros.sh'
}
steps {
sh "$WORKSPACE/image/image-config.sh execute $BUILD_DIRECTORY/${params.IMAGE_NAME} $PREFIX_PATH $DEV_ROOTFS $DEV_BOOT $WORKSPACE/image/$EXECUTE_FILE"
}
}
}
}

35
image/Jenkinsfile-release Normal file
View File

@@ -0,0 +1,35 @@
pipeline {
agent any
parameters {
//string(name: 'GWBT_REPO_NAME', defaultValue: 'master', description: 'GWBT_REPO_NAME')
//string(name: 'GWBT_RELEASE_TAG_NAME', defaultValue: 'master', description: 'REPO')
//string(name: 'GWBT_RELEASE_PUBLISHED_AT', defaultValue: 'master', description: 'GWBT_RELEASE_PUBLISHED_AT')
//string(name: 'GWBT_RELEASE_ID', defaultValue: '', description: 'GWBT_RELEASE_ID')
//string(name: 'GWBT_RELEASE_BODY', defaultValue: '', description: 'GWBT_RELEASE_BODY')
string(name: 'IMAGE_NAME', defaultValue: "${params.GWBT_REPO_NAME}_${params.GWBT_RELEASE_TAG_NAME}_${params.GWBT_RELEASE_PUBLISHED_AT}.img", description: 'IMAGE_NAME')
//string(name: 'GWBT_TRIGGER', defaultValue: '', description: 'GWBT_TRIGGER')
booleanParam(name: 'ONLY_PUBLISH', defaultValue: false, description: 'ONLY PUBLISH')
//string(name: 'WORKSPACE', defaultValue: '', description: 'WORKSPACE')
}
environment {
BUILD_DIRECTORY = '/home/pi/temp'
}
stages {
stage('Build image') {
when { not { expression { return params.ONLY_PUBLISH } } }
steps {
build job: 'CopterExpress-clever-build', parameters: [[$class: 'StringParameterValue', name: 'IMAGE_NAME', value: "${params.IMAGE_NAME}"], [$class: 'StringParameterValue', name: 'GWBT_RELEASE_TAG_NAME', value: "${params.GWBT_RELEASE_TAG_NAME}"]]
sh "echo ${params.IMAGE_NAME}"
}
}
stage('Publish image') {
when { environment name: 'GWBT_TRIGGER', value: 'release' }
environment {
CONFIG_FILE = 'coex-ci.conf'
}
steps {
sh "$WORKSPACE/image/image-config.sh publish_image $BUILD_DIRECTORY ${params.IMAGE_NAME} $WORKSPACE $CONFIG_FILE ${params.GWBT_RELEASE_ID} ${params.GWBT_RELEASE_BODY}"
}
}
}
}