~aleteoryx/muditaos

ref: 1f9c6b4a5174aab1e88ac5f3bba1e1bc791eb207 muditaos/docker/ci_actions.sh -rwxr-xr-x 2.4 KiB
1f9c6b4a — Maciej-Mudita [MOS-26] Add tethering info on status bar 3 years ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
#!/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`"