mirror of
https://github.com/CopterExpress/clover.git
synced 2026-05-26 21:19:35 +00:00
image_builder: try fix with send big string as argument
Signed-off-by: Artem Smirnov <urpylka@gmail.com>
This commit is contained in:
@@ -2,7 +2,7 @@ pipeline {
|
||||
agent any
|
||||
parameters {
|
||||
string(name: 'IMAGE_NAME', defaultValue: 'clever_noname.img', description: 'Output image file name')
|
||||
string(name: 'GWBT_RELEASE_TAG_NAME', defaultValue: 'master', description: 'Release tag name')
|
||||
string(name: 'GWBT_REF', defaultValue: 'master', description: 'Checkout ref-param')
|
||||
string(name: 'IMAGE_VERSION', defaultValue: 'no_version', description: 'Image version')
|
||||
|
||||
string(name: 'BUILD_DIR', defaultValue: '/mnt/hdd_builder/workspace', description: 'Build workspace')
|
||||
@@ -79,34 +79,6 @@ resize_fs() {
|
||||
set -e
|
||||
}
|
||||
|
||||
publish_image() {
|
||||
|
||||
# STATIC FUNCTION
|
||||
# TEMPLATE: publish_image_bash $BUILD_DIR $IMAGE_NAME $YA_SCRIPT $CONFIG_FILE $RELEASE_ID $RELEASE_BODY
|
||||
|
||||
# https://developer.github.com/v3/repos/releases/
|
||||
#RELEASE_BODY="### Changelog\n* Add /boot/cmdline.txt net.ifnames=0 https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames/\n* Updated cophelper\n* Installed copstat"
|
||||
|
||||
echo 'Zip image'
|
||||
if [ ! -e "$1/$2.zip" ];
|
||||
then cd $1 && zip $2.zip $2
|
||||
fi
|
||||
|
||||
echo 'Upload image' \
|
||||
&& local IMAGE_LINK=$($3 $4 $1/$2.zip)
|
||||
|
||||
echo 'Meashuring size of zip-image' \
|
||||
&& local IMAGE_SIZE=$(du -sh $1/$2.zip | awk '{ print $1 }')
|
||||
|
||||
echo 'Post message to GH'
|
||||
local NEW_RELEASE_BODY="### Download\n* [$2.zip]($IMAGE_LINK) ($IMAGE_SIZE)\n\n$6"
|
||||
local DATA="{ \"body\":\"$NEW_RELEASE_BODY\" }"
|
||||
local GH_LOGIN=$(cat $4 | jq '.github.login' -r)
|
||||
local GH_PASS=$(cat $4 | jq '.github.password' -r)
|
||||
local GH_URL=$(cat $4 | jq '.github.url' -r)
|
||||
curl -d "$(echo $DATA)" -u "$GH_LOGIN:$GH_PASS" --request PATCH $GH_URL$5
|
||||
}
|
||||
|
||||
burn_image() {
|
||||
|
||||
# STATIC FUNCTION
|
||||
@@ -341,6 +313,41 @@ EOF
|
||||
# service docker start
|
||||
# https://forums.docker.com/t/cannot-connect-to-the-docker-daemon-is-the-docker-daemon-running-on-this-host/8925/17
|
||||
|
||||
publish_image() {
|
||||
|
||||
# STATIC FUNCTION
|
||||
# TEMPLATE: publish_image_bash $BUILD_DIR $IMAGE_NAME $YA_SCRIPT $CONFIG_FILE $RELEASE_ID $RELEASE_BODY
|
||||
|
||||
# https://developer.github.com/v3/repos/releases/
|
||||
#RELEASE_BODY="### Changelog\n* Add /boot/cmdline.txt net.ifnames=0 https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames/\n* Updated cophelper\n* Installed copstat"
|
||||
|
||||
echo -e "\033[0;31m\033[1m$(date) | Zip image\033[0m\033[0m"
|
||||
if [ ! -e "$1/$2.zip" ];
|
||||
then
|
||||
cd $1 && zip $2.zip $2
|
||||
echo -e "\033[0;31m\033[1m$(date) | Zipping complete!\033[0m\033[0m"
|
||||
else
|
||||
echo -e "\033[0;31m\033[1m$(date) | Zip-archive already created\033[0m\033[0m"
|
||||
fi
|
||||
|
||||
echo -e "\033[0;31m\033[1m$(date) | Upload image\033[0m\033[0m"
|
||||
local IMAGE_LINK=$($3 $4 $1/$2.zip)
|
||||
echo -e "\033[0;31m\033[1m$(date) | Upload copmlete!\033[0m\033[0m"
|
||||
|
||||
|
||||
echo -e "\033[0;31m\033[1m$(date) | Meashure size of zip-image\033[0m\033[0m"
|
||||
local IMAGE_SIZE=$(du -sh $1/$2.zip | awk '{ print $1 }')
|
||||
echo -e "\033[0;31m\033[1m$(date) | Meashuring copmlete!\033[0m\033[0m"
|
||||
|
||||
echo -e "\033[0;31m\033[1m$(date) | Post message to GH\033[0m\033[0m"
|
||||
local NEW_RELEASE_BODY="### Download\n* [$2.zip]($IMAGE_LINK) ($IMAGE_SIZE)\n\n$(echo $6)"
|
||||
local DATA="{ \"body\":\"$NEW_RELEASE_BODY\" }"
|
||||
local GH_LOGIN=$(cat $4 | jq '.github.login' -r)
|
||||
local GH_PASS=$(cat $4 | jq '.github.password' -r)
|
||||
local GH_URL=$(cat $4 | jq '.github.url' -r)
|
||||
curl -d "$DATA" -u "$GH_LOGIN:$GH_PASS" --request PATCH $GH_URL$5
|
||||
echo -e "\033[0;31m\033[1m$(date) | Post message to GH copmlete!\033[0m\033[0m"
|
||||
}
|
||||
|
||||
if [ $(whoami) != "root" ];
|
||||
then echo "" \
|
||||
@@ -360,9 +367,9 @@ echo "\$5: $5"
|
||||
echo "\$6: $6"
|
||||
echo "\$7: $7"
|
||||
|
||||
|
||||
# test_docker
|
||||
# install_docker
|
||||
# burn_image
|
||||
|
||||
case "$1" in
|
||||
mount_system)
|
||||
@@ -379,7 +386,7 @@ case "$1" in
|
||||
|
||||
publish_image)
|
||||
# publish_image $BUILD_DIR $IMAGE_NAME $YA_SCRIPT $CONFIG_FILE $RELEASE_ID $RELEASE_BODY
|
||||
publish_image $2 $3 $4 $5 $6 $7;;
|
||||
publish_image $2 $3 $4 $5 $6 "$7";;
|
||||
|
||||
execute)
|
||||
# execute $IMAGE $MOUNT_POINT $EXECUTE_FILE ...
|
||||
|
||||
36
image_builder/jenkinsfile
Normal file
36
image_builder/jenkinsfile
Normal file
@@ -0,0 +1,36 @@
|
||||
pipeline {
|
||||
agent any
|
||||
parameters {
|
||||
string(name: 'GWBT_REF', defaultValue: "master")
|
||||
string(name: 'GWBT_URL', defaultValue: "https://github.com/CopterExpress/clever.git")
|
||||
string(name: 'GWBT_FILE', defaultValue: "")
|
||||
string(name: 'IMAGE_NAME', defaultValue: "\$(cat ${GWBT_FILE} | jq '.repository.name' -r)_${params.GWBT_REF}_\$(cat ${GWBT_FILE} | jq '.release.published_at' -r).img")
|
||||
string(name: 'GWBT_EVENT', defaultValue: 'release')
|
||||
booleanParam(name: 'ONLY_PUBLISH', defaultValue: false, description: 'ONLY PUBLISH')
|
||||
string(name: 'BUILD_DIR', defaultValue: '/mnt/hdd_builder/workspace', description: 'Build workspace')
|
||||
}
|
||||
environment {
|
||||
DEBIAN_FRONTEND = 'noninteractive'
|
||||
LANG = 'C.UTF-8'
|
||||
LC_ALL = 'C.UTF-8'
|
||||
}
|
||||
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: 'IMAGE_VERSION', value: "${params.GWBT_REF}"], [$class: 'StringParameterValue', name: 'GWBT_REF', value: "${params.GWBT_REF}"], [$class: 'StringParameterValue', name: 'GWBT_URL', value: "${params.GWBT_URL}"]]
|
||||
}
|
||||
}
|
||||
stage('Publish image') {
|
||||
when { environment name: 'GWBT_EVENT', value: 'release' }
|
||||
environment {
|
||||
CONFIG_FILE = "${params.BUILD_DIR}/coex-ci.json"
|
||||
YA_SCRIPT = "$WORKSPACE/image_builder/yadisk.py"
|
||||
}
|
||||
steps {
|
||||
//sh "$WORKSPACE/image_builder/image_config.sh publish_image_jenkins ${params.BUILD_DIR} ${params.IMAGE_NAME} ${YA_SCRIPT} ${CONFIG_FILE} ${params.GWBT_FILE}"
|
||||
sh "$WORKSPACE/image_builder/image_config.sh publish_image ${params.BUILD_DIR} ${params.IMAGE_NAME} ${YA_SCRIPT} ${CONFIG_FILE} \$(cat ${params.GWBT_FILE} | jq '.release.id' -r) \"\$(cat ${params.GWBT_FILE} | jq '.release.body' | sed 's/\"//' | rev | sed 's/\"//' | rev)\""
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,39 +0,0 @@
|
||||
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: 'release', description: 'GWBT_TRIGGER')
|
||||
booleanParam(name: 'ONLY_PUBLISH', defaultValue: false, description: 'ONLY PUBLISH')
|
||||
|
||||
string(name: 'BUILD_DIR', defaultValue: '/mnt/hdd_builder/workspace', description: 'Build workspace')
|
||||
}
|
||||
environment {
|
||||
DEBIAN_FRONTEND = 'noninteractive'
|
||||
LANG = 'C.UTF-8'
|
||||
LC_ALL = 'C.UTF-8'
|
||||
}
|
||||
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: 'IMAGE_VERSION', value: "${params.GWBT_RELEASE_TAG_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 = "${params.BUILD_DIR}/coex-ci.json"
|
||||
YA_SCRIPT = "$WORKSPACE/image_builder/yadisk.py"
|
||||
}
|
||||
steps {
|
||||
sh "$WORKSPACE/image_builder/image_config.sh publish_image ${params.BUILD_DIR} ${params.IMAGE_NAME} $YA_SCRIPT $CONFIG_FILE ${params.GWBT_RELEASE_ID} \'${params.GWBT_RELEASE_BODY}\'"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user