diff --git a/debian b/debian new file mode 120000 index 0000000000000000000000000000000000000000..b6d5bfa7452c7909d68d1cf964bf970c63a6db23 --- /dev/null +++ b/debian @@ -0,0 +1 @@ +prod_build/linux/debian/essentials \ No newline at end of file diff --git a/prod_build/android/conf/environment b/prod_build/android/conf/environment new file mode 100644 index 0000000000000000000000000000000000000000..5099a4a0c7d0306add40a0605f018d29e64b99e0 --- /dev/null +++ b/prod_build/android/conf/environment @@ -0,0 +1,7 @@ +ANDROID_NDK_HOME="/opt/android-ndk-r16b" +SDKROOT="/opt/android-sdk/bin" +NDKHOST="linux-x86_64" +JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64" +ANDRQT_HOME="/usr/lib/crossdev" +HOST_DISTR_VERSIONS="stretch" +HOST_ARCH_VERSIONS="amd64" diff --git a/prod_build/android/conf/project_props b/prod_build/android/conf/project_props new file mode 100644 index 0000000000000000000000000000000000000000..d1d7d505920fc5f649f646c6768bb48f988914a5 --- /dev/null +++ b/prod_build/android/conf/project_props @@ -0,0 +1,3 @@ +RES_PATH=SapNetGui/resources/UltraPad/platforms/android +WORK_PATH=../sapnet-client-build +BRAND=UltraPad diff --git a/prod_build/android/conf/publish b/prod_build/android/conf/publish new file mode 100644 index 0000000000000000000000000000000000000000..896aa108d0c9382c7fb69bc5b559af8229e7d977 --- /dev/null +++ b/prod_build/android/conf/publish @@ -0,0 +1,2 @@ +ARCH_VERSIONS="arm64-v8a armv7 x86 x86_64 arm" +PACKAGE_PATH=builds/apk/ diff --git a/prod_build/android/conf/version_info b/prod_build/android/conf/version_info new file mode 100644 index 0000000000000000000000000000000000000000..288cd5c8353e7f97d2afb4e5eb15779621861c7a --- /dev/null +++ b/prod_build/android/conf/version_info @@ -0,0 +1,3 @@ +VERSION_FILE=config.pri +VERSION_ENTRIES="VER_MAJ VER_MIN VER_PAT VER_CODE" +VERSION_FORMAT="VER_MAJ.VER_MIN-VER_PAT" diff --git a/prod_build/android/scripts/compile.sh b/prod_build/android/scripts/compile.sh new file mode 100755 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/prod_build/android/scripts/deploy.sh b/prod_build/android/scripts/deploy.sh new file mode 100755 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/prod_build/android/scripts/pack.sh b/prod_build/android/scripts/pack.sh new file mode 100755 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/prod_build/android/scripts/pre-build.sh b/prod_build/android/scripts/pre-build.sh new file mode 100755 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/prod_build/android/scripts/test.sh b/prod_build/android/scripts/test.sh new file mode 100755 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/prod_build/general/chroot_wrap.sh b/prod_build/general/chroot_wrap.sh new file mode 100755 index 0000000000000000000000000000000000000000..f1f33df6af12acb5cd483908e7bd6fab2876eec0 --- /dev/null +++ b/prod_build/general/chroot_wrap.sh @@ -0,0 +1,47 @@ +#!/bin/bash + +export_variables() { + +IFS=$'\n' +for variable in $(cat prod_build/$platform/conf/*); do + [ -z $1 ] && export $(echo "$variable" | sed 's/\"//g') || export -n $(echo $variable | cut -d '=' -f1) +done + +} + +CHROOT_PREFIX="builder" +CHROOTS_PATH=$1 +PLATFORMS=$2 +PKG_FORMAT=$3 +SRC_PATH=$4 +JOB=$5 + +cd $SRC_PATH +echo "Platforms are $PLATFORMS" + + +for platform in $PLATFORMS; do + export_variables + IFS=' ' + PKG_TYPE=$(echo $PKG_FORMAT | cut -d ' ' -f1) + #Check if chroots are present + echo $HOST_DISTR_VERSIONS + echo $HOST_ARCH_VERSIONS + [ -e prod_build/$platform/scripts/pre-build.sh ] && prod_build/$platform/scripts/pre-build.sh $CHROOT_PREFIX #For actions not in chroot (version update) + for distr in $HOST_DISTR_VERSIONS; do + for arch in $HOST_ARCH_VERSIONS; do + if [ -e $CHROOTS_PATH/$CHROOT_PREFIX-$distr-$arch ]; then + schroot -c $CHROOT_PREFIX-$distr-$arch -- launcher.sh prod_build/$platform/scripts/$JOB.sh "$PKG_TYPE" || errcode=$? +# echo "schroot stub $PKG_TYPE" + else + echo "chroot $CHROOT_PREFIX-$distr-$arch not found. You should install it first" + fi + done + done + [ -e prod_build/$platform/scripts/post-build.sh ] && prod_build/$platform/scripts/post-build.sh #For post-build actions not in chroot (global publish) + PKG_FORMAT=$(echo $PKG_FORMAT | cut -d ' ' -f2-) +# export_variables clean +done +#[ $(mount | grep "/run/schroot/mount") ] && sudo umount -l /run/schroot/mount && sudo rm -r /run/schroot/mount/* #Removing mountpoint odds. + +cd $wd diff --git a/prod_build/general/conf/version_info b/prod_build/general/conf/version_info new file mode 100644 index 0000000000000000000000000000000000000000..d33ee15a16d60350c7cf60dd9136afcd3ad4ebca --- /dev/null +++ b/prod_build/general/conf/version_info @@ -0,0 +1,3 @@ +VERSION_FILE=CMakeLists.txt +VERSION_ENTRIES="CPACK_PACKAGE_VERSION_MAJOR CPACK_PACKAGE_VERSION_MINOR CPACK_PACKAGE_VERSION_PATCH" +VERSION_FORMAT="CPACK_PACKAGE_VERSION_MAJOR.CPACK_PACKAGE_VERSION_MINOR-CPACK_PACKAGE_VERSION_PATCH" diff --git a/prod_build/general/pre-build.sh b/prod_build/general/pre-build.sh new file mode 100755 index 0000000000000000000000000000000000000000..94a871b8627bd682c19030caeb3aa1e7bd190382 --- /dev/null +++ b/prod_build/general/pre-build.sh @@ -0,0 +1,42 @@ +#!/bin/bash + +extract_version_number() { + +IFS=" " +local VERSION_STRING=$VERSION_FORMAT +for entry in $VERSION_ENTRIES; do + VERSION_STRING=$(echo $VERSION_STRING | sed "s/$entry/$( cat $VERSION_FILE | grep $entry | grep [0-9] | cut -d ' ' -f3 | cut -d ')' -f1 )/") #Replacing templates with numbers +done +echo -e "$VERSION_STRING" + +} + +extract_gitlog_text() { + +borders=$( git log | grep -n 'commit\|Date' | head -n 3 | tail -n 2 | cut -d ':' -f1) +upb=$(echo $borders | cut -d $'\n' -f1) +dwnb=$(echo $borders | cut -d $'\n' -f2) +text=$(git log | head -n $( expr $dwnb - 2 ) | tail -n $( expr $dwnb - $upb - 3 ) ) +echo $text + +} + +export_variables() { + +IFS=$'\n' +for variable in $(cat $1); do + echo "$variable" + export $(echo "$variable" | sed 's/\"//g') +done + +} + +unexport_variables() { + +IFS=$'\n' +for variable in $(cat $1); do + echo "$variable" + export -n $(echo $variable | cut -d '=' -f1) +done + +} diff --git a/prod_build/ios/scripts/compile.sh b/prod_build/ios/scripts/compile.sh new file mode 100755 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/prod_build/ios/scripts/deploy.sh b/prod_build/ios/scripts/deploy.sh new file mode 100755 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/prod_build/ios/scripts/pack.sh b/prod_build/ios/scripts/pack.sh new file mode 100755 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/prod_build/ios/scripts/pre-build.sh b/prod_build/ios/scripts/pre-build.sh new file mode 100755 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/prod_build/ios/scripts/test.sh b/prod_build/ios/scripts/test.sh new file mode 100755 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/prod_build/linux/debian/conf/dependencies b/prod_build/linux/debian/conf/dependencies new file mode 100644 index 0000000000000000000000000000000000000000..dc39e2983ae0614c23d0ec0f308fd64f3bedde02 --- /dev/null +++ b/prod_build/linux/debian/conf/dependencies @@ -0,0 +1 @@ +PKG_DEPS="libjson-c-dev libsqlite3-dev libmemcached-dev libev-dev libmagic-dev libcurl4-gnutls-dev libldb-dev libtalloc-dev libtevent-dev" diff --git a/prod_build/linux/debian/conf/publish b/prod_build/linux/debian/conf/publish new file mode 100644 index 0000000000000000000000000000000000000000..61b38fc197a89dcaf0cfec02be0b88837adc9c0d --- /dev/null +++ b/prod_build/linux/debian/conf/publish @@ -0,0 +1,3 @@ +HOST_DISTR_VERSIONS="stretch buster" +HOST_ARCH_VERSIONS="amd64" +PACKAGE_PATH=builds/deb/ diff --git a/prod_build/linux/debian/conf/version_info b/prod_build/linux/debian/conf/version_info new file mode 100644 index 0000000000000000000000000000000000000000..288cd5c8353e7f97d2afb4e5eb15779621861c7a --- /dev/null +++ b/prod_build/linux/debian/conf/version_info @@ -0,0 +1,3 @@ +VERSION_FILE=config.pri +VERSION_ENTRIES="VER_MAJ VER_MIN VER_PAT VER_CODE" +VERSION_FORMAT="VER_MAJ.VER_MIN-VER_PAT" diff --git a/prod_build/linux/debian/essentials/.debhelper/generated/ultrapad/installed-by-dh_install b/prod_build/linux/debian/essentials/.debhelper/generated/ultrapad/installed-by-dh_install new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/prod_build/linux/debian/essentials/.debhelper/generated/ultrapad/installed-by-dh_installdocs b/prod_build/linux/debian/essentials/.debhelper/generated/ultrapad/installed-by-dh_installdocs new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/prod_build/linux/debian/essentials/.debhelper/generated/ultrapad/installed-by-dh_installexamples b/prod_build/linux/debian/essentials/.debhelper/generated/ultrapad/installed-by-dh_installexamples new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/prod_build/linux/debian/essentials/.debhelper/generated/ultrapad/installed-by-dh_installinfo b/prod_build/linux/debian/essentials/.debhelper/generated/ultrapad/installed-by-dh_installinfo new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/prod_build/linux/debian/essentials/.debhelper/generated/ultrapad/installed-by-dh_installman b/prod_build/linux/debian/essentials/.debhelper/generated/ultrapad/installed-by-dh_installman new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/prod_build/linux/debian/essentials/.debhelper/ultrapad/dbgsym-build-ids b/prod_build/linux/debian/essentials/.debhelper/ultrapad/dbgsym-build-ids new file mode 100644 index 0000000000000000000000000000000000000000..7f657fa8fb31269c80f627937af1c73829eaf403 --- /dev/null +++ b/prod_build/linux/debian/essentials/.debhelper/ultrapad/dbgsym-build-ids @@ -0,0 +1 @@ +8dee3c803238884547a28dae9d2cc1a59220d896 e9d92f93a53d9cbe6f848e5aad91c22107acecd3 \ No newline at end of file diff --git a/prod_build/linux/debian/essentials/.debhelper/ultrapad/dbgsym-root/DEBIAN/control b/prod_build/linux/debian/essentials/.debhelper/ultrapad/dbgsym-root/DEBIAN/control new file mode 100644 index 0000000000000000000000000000000000000000..7783b3f7d3004fcaa010925c81f27809b7aff971 --- /dev/null +++ b/prod_build/linux/debian/essentials/.debhelper/ultrapad/dbgsym-root/DEBIAN/control @@ -0,0 +1,12 @@ +Package: ultrapad-dbgsym +Source: sapnet-client +Version: 5.9-37 +Auto-Built-Package: debug-symbols +Architecture: i386 +Maintainer: support <support@ncodedcommunications.com> +Installed-Size: 12620 +Depends: ultrapad (= 5.9-37) +Section: debug +Priority: optional +Description: debug symbols for ultrapad +Build-Ids: 8dee3c803238884547a28dae9d2cc1a59220d896 e9d92f93a53d9cbe6f848e5aad91c22107acecd3 diff --git a/prod_build/linux/debian/essentials/.debhelper/ultrapad/dbgsym-root/DEBIAN/md5sums b/prod_build/linux/debian/essentials/.debhelper/ultrapad/dbgsym-root/DEBIAN/md5sums new file mode 100644 index 0000000000000000000000000000000000000000..afee53ecb07df6e53f0675dab7b8f03da462a000 --- /dev/null +++ b/prod_build/linux/debian/essentials/.debhelper/ultrapad/dbgsym-root/DEBIAN/md5sums @@ -0,0 +1,2 @@ +518a927e545ff04a3c49ccf4a6878202 usr/lib/debug/.build-id/8d/ee3c803238884547a28dae9d2cc1a59220d896.debug +6e8c0664e4dcb897caa7766c75323a41 usr/lib/debug/.build-id/e9/d92f93a53d9cbe6f848e5aad91c22107acecd3.debug diff --git a/prod_build/linux/debian/essentials/.debhelper/ultrapad/dbgsym-root/usr/lib/debug/.build-id/8d/ee3c803238884547a28dae9d2cc1a59220d896.debug b/prod_build/linux/debian/essentials/.debhelper/ultrapad/dbgsym-root/usr/lib/debug/.build-id/8d/ee3c803238884547a28dae9d2cc1a59220d896.debug new file mode 100644 index 0000000000000000000000000000000000000000..ac71e9972e9f68edd21569aad7c0b1ad12ddb713 Binary files /dev/null and b/prod_build/linux/debian/essentials/.debhelper/ultrapad/dbgsym-root/usr/lib/debug/.build-id/8d/ee3c803238884547a28dae9d2cc1a59220d896.debug differ diff --git a/prod_build/linux/debian/essentials/.debhelper/ultrapad/dbgsym-root/usr/lib/debug/.build-id/e9/d92f93a53d9cbe6f848e5aad91c22107acecd3.debug b/prod_build/linux/debian/essentials/.debhelper/ultrapad/dbgsym-root/usr/lib/debug/.build-id/e9/d92f93a53d9cbe6f848e5aad91c22107acecd3.debug new file mode 100644 index 0000000000000000000000000000000000000000..0376edec68ec0fb9bcb7a96402bfeeef833accf3 Binary files /dev/null and b/prod_build/linux/debian/essentials/.debhelper/ultrapad/dbgsym-root/usr/lib/debug/.build-id/e9/d92f93a53d9cbe6f848e5aad91c22107acecd3.debug differ diff --git a/prod_build/linux/debian/essentials/.debhelper/ultrapad/dbgsym-root/usr/share/doc/ultrapad-dbgsym b/prod_build/linux/debian/essentials/.debhelper/ultrapad/dbgsym-root/usr/share/doc/ultrapad-dbgsym new file mode 120000 index 0000000000000000000000000000000000000000..47b98702dd8c37efe0c7014d3c2fcf8d16b53e6c --- /dev/null +++ b/prod_build/linux/debian/essentials/.debhelper/ultrapad/dbgsym-root/usr/share/doc/ultrapad-dbgsym @@ -0,0 +1 @@ +ultrapad \ No newline at end of file diff --git a/debian/config b/prod_build/linux/debian/essentials/config similarity index 100% rename from debian/config rename to prod_build/linux/debian/essentials/config diff --git a/debian/postinst b/prod_build/linux/debian/essentials/postinst similarity index 100% rename from debian/postinst rename to prod_build/linux/debian/essentials/postinst diff --git a/debian/postrm b/prod_build/linux/debian/essentials/postrm similarity index 100% rename from debian/postrm rename to prod_build/linux/debian/essentials/postrm diff --git a/debian/rules b/prod_build/linux/debian/essentials/rules similarity index 100% rename from debian/rules rename to prod_build/linux/debian/essentials/rules diff --git a/debian/templates b/prod_build/linux/debian/essentials/templates similarity index 100% rename from debian/templates rename to prod_build/linux/debian/essentials/templates diff --git a/prod_build/linux/debian/scripts/build.sh b/prod_build/linux/debian/scripts/build.sh new file mode 100755 index 0000000000000000000000000000000000000000..79768e939ed2eb3fa763d6ccc4f2cc3fb2e1a040 --- /dev/null +++ b/prod_build/linux/debian/scripts/build.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +WORKDIR="resources/cellframe/cellframe-node" +SCRIPTDIR="prod_build/linux/debian/scripts" + +#cd $WORKDIR + $SCRIPTDIR/compile_and_pack.sh || exit 2 && \ + $SCRIPTDIR/test.sh || exit 3 && \ + $SCRIPTDIR/install_test.sh || exit 4 && \ + $SCRIPTDIR/cleanup.sh || exit 5 +#cd $wd diff --git a/prod_build/linux/debian/scripts/chroot/post-build.sh b/prod_build/linux/debian/scripts/chroot/post-build.sh new file mode 100755 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/prod_build/linux/debian/scripts/chroot/pre-build.sh b/prod_build/linux/debian/scripts/chroot/pre-build.sh new file mode 100755 index 0000000000000000000000000000000000000000..3b371430f385649b4056cbdd82133590376084da --- /dev/null +++ b/prod_build/linux/debian/scripts/chroot/pre-build.sh @@ -0,0 +1,45 @@ +#!/bin/bash + +check_packages() { + + IFS=" " + local PKG_DEPPIES=$(echo $PKG_DEPS | sed 's/\"//g') + for element in "$PKG_DEPPIES"; do + echo "[DEBUGGA] Checking if $element is installed" + if ! dpkg-query -s $element; then + echo "[WRN] Package $element is not installed. Starting installation" + return 1 + fi + done + return 0 + +} + +install_dependencies() { + + echo "Checking out the dependencies" + if check_packages >> /dev/null; then + echo "[INF] All required packages are installed" + else + echo "" + local PKG_DEPPIES=$(echo $PKG_DEPS | sed 's/\"//g') + echo "[DEBUGGA] Attempting to install $PKG_DEPPIES" + if sudo apt-get install $PKG_DEPPIES -y ; then + echo "" + echo "[INF] Packages were installed successfully" + else + echo "[ERR] can\'t install required packages. Please, check your package manager" + echo "Aborting" + exit 1 + fi + fi + return 0 + +} +PKG_DEPS=$1 +install_dependencies + +#for variable in $(cat ./prod_build/general/conf/brands | sed 's/\"//g'); do +# echo $variable +# export "$variable" +#done diff --git a/prod_build/linux/debian/scripts/cleanup.sh b/prod_build/linux/debian/scripts/cleanup.sh new file mode 100755 index 0000000000000000000000000000000000000000..9edda6f8bad8fce76e813fc731f4b7ae83b73414 --- /dev/null +++ b/prod_build/linux/debian/scripts/cleanup.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +make distclean diff --git a/prod_build/linux/debian/scripts/compile_and_pack.sh b/prod_build/linux/debian/scripts/compile_and_pack.sh new file mode 100755 index 0000000000000000000000000000000000000000..e01aa41b66143151714e98ef0faf85a956586fb0 --- /dev/null +++ b/prod_build/linux/debian/scripts/compile_and_pack.sh @@ -0,0 +1,38 @@ +#!/bin/bash + +#if [ "$1" == "--static" ]; then +# export $QT_SELECT="qtstatic" #For static builds we'll have a special qt instance, which should be installed manually for now, unfortunately. +#fi + +# error_explainer() { + +# case "$1" in +# "1" ) echo "Error in pre-config happened. Please, review logs";; +# "2" ) echo "Error in compilation happened. Please, review logs";; +# * ) echo "Unandled error $1 happened. Please, review logs";; +# esac +# exit $1 + +# } + + + +### dpkg-buildpackage -J -us --changes-option=--build=any -uc && mkdir -p build && mv ../*.deb build/ && make distclean || error=$? && make distclean && $(error_explainer $error) #2DO: Learn how to sign up the package. + +# if [ "$1" == "--static" ]; then + # export $QT_SELECT="default" #Returning back the shared library link + #fi + + +#cmake -S . -B build && make -C build && cpack -B build +pwd +mkdir -p build && cd build && cmake ../ && make -j3 && cpack && cd .. + +### touch /etc/apt/sources.list.d/demlabs.list deb https://debian.pub.demlabs.net/ bionic main universe multiverse + +### wget https://debian.pub.demlabs.net/debian.pub.demlabs.net.gpg +### apt-key add demlabskey.asc + +### apt-get update +### apt-get install cellframe-node + diff --git a/prod_build/linux/debian/scripts/deploy.sh b/prod_build/linux/debian/scripts/deploy.sh new file mode 100755 index 0000000000000000000000000000000000000000..b3b3caac64f5624f63cd01212fdcee6de868fb17 --- /dev/null +++ b/prod_build/linux/debian/scripts/deploy.sh @@ -0,0 +1,18 @@ +#!/bin/bash + +echo "Deploying to $PACKAGE_PATH" +echo $wd +PKGFILES=($(ls build/*.deb)) +mv build/*.deb $wd/$PACKAGE_PATH || echo "[ERR] Something went wrong in publishing the package. Now aborting." + +if [ ! -z $UPDVER ]; then + for pkgfile in $PKGFILES; do + ln -sf $wd/$PACKAGE_PATH/$pkgfile $wd/$PACKAGE_PATH/$pkgfile-latest + done + export -n "UPDVER" + #Need to create latest symlink to the project. +fi + +#symlink name-actual to the latest version. +#build/deb/versions - for all files +#build/deb/${PROJECT}-latest - for symlinks. diff --git a/prod_build/linux/debian/scripts/install_test.sh b/prod_build/linux/debian/scripts/install_test.sh new file mode 100755 index 0000000000000000000000000000000000000000..21c44cd384c412e9541e83e443b74a7bf49543f2 --- /dev/null +++ b/prod_build/linux/debian/scripts/install_test.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +echo "stub for installation testing" diff --git a/prod_build/linux/debian/scripts/pack.sh b/prod_build/linux/debian/scripts/pack.sh new file mode 100755 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/prod_build/linux/debian/scripts/post-build.sh b/prod_build/linux/debian/scripts/post-build.sh new file mode 100755 index 0000000000000000000000000000000000000000..c18d6f6bd5cd4bf57d1624c95768cde49bf70f37 --- /dev/null +++ b/prod_build/linux/debian/scripts/post-build.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +#echo "Stub for post-build actions" +echo "Entering post-build deployment and cleanup" +SCRIPTDIR="prod_build/linux/debian/scripts" + +$SCRIPTDIR/deploy.sh || exit 10 && \ +$SCRIPTDIR/cleanup.sh || exit 11 diff --git a/prod_build/linux/debian/scripts/pre-build.sh b/prod_build/linux/debian/scripts/pre-build.sh new file mode 100755 index 0000000000000000000000000000000000000000..27dae1c146e17145935306d03a914ed61d6de982 --- /dev/null +++ b/prod_build/linux/debian/scripts/pre-build.sh @@ -0,0 +1,131 @@ +#!/bin/bash + +#export_variables() { + +#IFS=$'\n' +#for variable in $(cat prod_build/linux/debian/conf/*); do +# echo "$variable" +# export $(echo "$variable" | sed 's/\"//g') +#done + +#} + + +#installing required dependencies + +check_packages() { + + IFS=" " + local PKG_DEPPIES=$(echo $PKG_DEPS | sed 's/\"//g') + for element in "$PKG_DEPPIES"; do + echo "[DEBUGGA] Checking if $element is installed" + if ! dpkg-query -s $element; then + echo "[WRN] Package $element is not installed. Starting installation" + return 1 + fi + done + return 0 + +} + +install_dependencies() { + + if check_packages >> /dev/null; then + echo "[INF] All required packages are installed" + else + echo "" + local PKG_DEPPIES=$(echo $PKG_DEPS | sed 's/\"//g') + echo "[DEBUGGA] Attempting to install $PKG_DEPPIES" + if sudo /usr/bin/apt-get install -y $PKG_DEPPIES ; then + echo "" + echo "[INF] Packages were installed successfully" + else + echo "[ERR] can\'t install required packages. Please, check your package manager" + echo "Aborting" + exit 1 + fi + fi + return 0 + +} + +#extract_version_number() { + +#IFS=" " +#for entry in $VERSION_ENTRIES; do +# VERSION_STRING=$(echo $VERSION_STRING | sed "s/$entry/$( cat $VERSION_FILE | grep $entry | sed 's/ //g' | cut -d '=' -f2 )/") #Replacing templates with numbers +#done +#echo -e "project version is $VERSION_STRING" +# +#} + +#extract_gitlog_text() { +# +#borders=$( git log | grep -n 'commit\|Date' | head -n 3 | tail -n 2 | cut -d ':' -f1) +#upb=$(echo $borders | cut -d $'\n' -f1) +#dwnb=$(echo $borders | cut -d $'\n' -f2) +#text=$(git log | head -n $( expr $dwnb - 2 ) | tail -n $( expr $dwnb - $upb - 3 ) ) +#echo $text +# +#} + +#. prod_build/general/install_dependencies +. prod_build/general/pre-build.sh #VERSIONS and git +export_variables "prod_build/general/conf/*" +export_variables "prod_build/linux/debian/conf/*" + +VERSION_STRING=$(echo $VERSION_FORMAT | sed "s/\"//g" ) #Removing quotes +VERSION_ENTRIES=$(echo $VERSION_ENTRIES | sed "s/\"//g" ) +extract_version_number +[ -e prod_build/linux/debian/essentials/changelog ] && last_version_string=$(cat prod_build/linux/debian/essentials/changelog | head -n 1 | cut -d '(' -f2 | cut -d ')' -f1) + + + +#if [ -z "$last_version_string"]; then +# echo "Changelog won't be modified" +# exit 1; +#fi + +### ideally, we need to ask whether changelog needs to be updated or not +### is it correct? And if not, we just need to exit from this conditional construction +### not quite. See, there is always a changelog in git. (git log). We need to maintain debian/changelog on projects not built with cmake, +### cause information from this changelog (version) is used to write package metadata. And we had messed up for a long time because of desyncing. +### This is a solution. We modify the changelog only if there are updates and not on build servers. And of course if it's not cmake-based build project. +### let's keep those comments here for a while + +if [ $( gitlab-runner -v 2> /dev/null ; echo $? ) == 0 ]; then + echo "[WRN] on build platform. Version won't be changed" # okay, so this echo wont be outputted as the condition is not true + +elif [ ! -e debian/changelog ]; then ### I guess this what's supposed to be added in order to solve the issue with the changelog?+ + echo "[INF] Debian changelog does not exist. Nothing to be done there." #I supposed it should look somehow like that. +#makes sense +elif [ "$last_version_string" == "$VERSION_STRING" ]; then + echo "[INF] Version $last_version_string is equal to $VERSION_STRING. Nothing to change" +else + echo "[INF] editing the changelog" + text=$(extract_gitlog_text) + IFS=$'\n' + for textline in $text; do + dch -v $VERSION_STRING $textline + done + branch=$(git branch | grep "*" | cut -c 3- ) + case branch in + "master" ) branch="stable";; + "develop" ) branch="testing";; + esac + dch -r --distribution "$branch" --force-distribution ignored + controlfile_version=$(cat prod_build/linux/debian/essentials/control | grep "Standards" | cut -d ' ' -f2) #Add to control info. + sed -i "s/$controlfile_version/$VERSION_STRING/" prod_build/linux/debian/essentials/control + export UPDVER=1 +fi + +IFS=" " +CHROOT_PREFIX=$1 +for distr in $HOST_DISTR_VERSIONS; do #we need to install required dependencies under schroot. + for arch in $HOST_ARCH_VERSIONS; do + echo "$CHROOT_PREFIX-$distr-$arch" + schroot -c $CHROOT_PREFIX-$distr-$arch -- prod_build/linux/debian/scripts/chroot/pre-build.sh "$PKG_DEPS" + done +done + +## Maybe we do have the version required? Then we don't need to build it again. CHECK IT THERE! diff --git a/prod_build/linux/debian/scripts/test.sh b/prod_build/linux/debian/scripts/test.sh new file mode 100755 index 0000000000000000000000000000000000000000..2b1c7f0624520f549a447f7088f021aba7bc55de --- /dev/null +++ b/prod_build/linux/debian/scripts/test.sh @@ -0,0 +1,4 @@ +#!/bin/bash + +echo "Stub for functionality testing" + diff --git a/prod_build/linux/ubuntu/scripts/compile.sh b/prod_build/linux/ubuntu/scripts/compile.sh new file mode 100755 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/prod_build/linux/ubuntu/scripts/deploy.sh b/prod_build/linux/ubuntu/scripts/deploy.sh new file mode 100755 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/prod_build/linux/ubuntu/scripts/pack.sh b/prod_build/linux/ubuntu/scripts/pack.sh new file mode 100755 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/prod_build/linux/ubuntu/scripts/pre-build.sh b/prod_build/linux/ubuntu/scripts/pre-build.sh new file mode 100755 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/prod_build/linux/ubuntu/scripts/test.sh b/prod_build/linux/ubuntu/scripts/test.sh new file mode 100755 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/prod_build/mac/scripts/compile.sh b/prod_build/mac/scripts/compile.sh new file mode 100755 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/prod_build/mac/scripts/deploy.sh b/prod_build/mac/scripts/deploy.sh new file mode 100755 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/prod_build/mac/scripts/pack.sh b/prod_build/mac/scripts/pack.sh new file mode 100755 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/prod_build/mac/scripts/pre-build.sh b/prod_build/mac/scripts/pre-build.sh new file mode 100755 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/prod_build/mac/scripts/test.sh b/prod_build/mac/scripts/test.sh new file mode 100755 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/prod_build/windows/scripts/compile.sh b/prod_build/windows/scripts/compile.sh new file mode 100755 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/prod_build/windows/scripts/deploy.sh b/prod_build/windows/scripts/deploy.sh new file mode 100755 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/prod_build/windows/scripts/pack.sh b/prod_build/windows/scripts/pack.sh new file mode 100755 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/prod_build/windows/scripts/pre-build.sh b/prod_build/windows/scripts/pre-build.sh new file mode 100755 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/prod_build/windows/scripts/test.sh b/prod_build/windows/scripts/test.sh new file mode 100755 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391