#!/bin/bash -e
# Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
# For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
source docker/.bashrc
function printVar(){
echo "$1: '${!1}'"
}
echo "======================"
echo " variables "
printVar INPUT_ACTION
printVar INPUT_TARGET
printVar INPUT_BUILD_TYPE
printVar INPUT_BUILD_GENERATOR
printVar INPUT_JOBS
printVar PATH
printVar HOME
echo "======================"
printVar GITHUB_WORKSPACE
printVar GITHUB_RUN_ID
printVar GITHUB_ACTION
printVar GITHUB_ACTIONS
printVar GITHUB_ACTOR
printVar GITHUB_REPOSITORY
printVar GITHUB_EVENT_NAME
printVar GITHUB_SHA
printVar GITHUB_REF
printVar GITHUB_HEAD_REF
printVar GITHUB_BASE_REF
echo "======================"
GENERATOR=${INPUT_BUILD_GENERATOR,,}
CHANGELOG_FILE="changelog.md"
case ${GENERATOR} in
"ninja")
GENERATOR_NAME=${GENERATOR^}
BUILD_CMD=${GENERATOR}
;;
"make")
GENERATOR_NAME=""
BUILD_CMD=${GENERATOR}
;;
esac
if [[ "${INPUT_JOBS}" == "nproc" ]]; then
JOBS=`nproc`
else
JOBS=${INPUT_JOBS}
fi
function styleCheck() {
echo "style"
./config/pre-commit.hook --last
}
function configure() {
echo "configure"
./configure.sh ${INPUT_TARGET} ${INPUT_BUILD_TYPE} ${GENERATOR_NAME:+-G ${GENERATOR_NAME}}
}
function build() {
echo "build"
pushd build-${INPUT_TARGET}-${INPUT_BUILD_TYPE}
${BUILD_CMD} -j ${JOBS}
popd
}
function package() {
echo "package"
pushd build-${INPUT_TARGET}-${INPUT_BUILD_TYPE}
${BUILD_CMD} -j ${JOBS} package
popd
}
function check() {
echo "check"
cd build-${INPUT_TARGET}-${INPUT_BUILD_TYPE} && ${BUILD_CMD} check -j ${JOBS}
}
function printChangeLogForGH() {
CHANGELOG="$(cat ${CHANGELOG_FILE})"
CHANGELOG="${CHANGELOG//'%'/'%25'}"
CHANGELOG="${CHANGELOG//$'\n'/'%0A'}"
CHANGELOG="${CHANGELOG//$'\r'/'%0D'}"
echo "::set-output name=release_notes::${CHANGELOG}"
}
pushd ${GITHUB_WORKSPACE}
case ${INPUT_ACTION} in
"style")
styleCheck
;;
"configure")
configure
;;
"build")
build
;;
"c&b")
configure
build
;;
"check")
configure
check
;;
"package")
configure
build
package
printChangeLogForGH
;;
"*")
echo "wrong action \"${INPUT_ACTION}\""
exit 1
;;
esac
uptime
echo "processor count: `nproc`"