ci_template: move the cerbero scripts from yaml to a new file
[platform/upstream/gstreamer.git] / gitlab / cerbero_setup.sh
1 set -ex
2
3 show_ccache_sum() {
4     if [[ -n ${HAVE_CCACHE} ]]; then
5         ccache -s
6     fi
7 }
8
9 # Produces runtime and devel tarball packages for linux/android or .pkg for macos
10 cerbero_package_and_check() {
11     $CERBERO $CERBERO_ARGS package --offline ${CERBERO_PACKAGE_ARGS} -o "$(pwd)" gstreamer-1.0
12
13     # Run gst-inspect-1.0 for some basic checks. Can't do this for cross-(android|ios)-universal, of course.
14     [[ $CONFIG == *universal* ]] || $CERBERO $CERBERO_ARGS run $CERBERO_RUN_WRAPPER gst-inspect-1.0$CERBERO_RUN_SUFFIX --version
15     [[ $CONFIG == *universal* ]] || $CERBERO $CERBERO_ARGS run $CERBERO_RUN_WRAPPER gst-inspect-1.0$CERBERO_RUN_SUFFIX
16     test "x${HAVE_CCACHE}" = "xyes" && ccache -s || true    # eat the return value from the failing test
17 }
18
19 cerbero_before_script() {
20     # FIXME Wrong namespace
21     # Workaround build-tools having hardcoded internal path
22     pwd
23     mkdir -p "../../gstreamer"
24     ln -sf "$(pwd)" "../../gstreamer/cerbero"
25     mkdir -p "../../${CI_PROJECT_NAMESPACE}"
26     ln -sf "$(pwd)" "../../${CI_PROJECT_NAMESPACE}/cerbero"
27     rsync -aH "${CERBERO_HOST_DIR}" .
28     echo "home_dir = \"$(pwd)/${CERBERO_HOME}\"" >> localconf.cbc
29     echo "local_sources = \"$(pwd)/${CERBERO_SOURCES}\"" >> localconf.cbc
30     ./cerbero-uninstalled --self-update manifest.xml
31 }
32
33 cerbero_script() {
34     test "x${HAVE_CCACHE}" = "xyes" && ccache --show-stats
35     $CERBERO $CERBERO_ARGS show-config
36     $CERBERO $CERBERO_ARGS fetch-bootstrap --build-tools-only
37     $CERBERO $CERBERO_ARGS fetch-package --deps gstreamer-1.0
38     $CERBERO $CERBERO_ARGS fetch-cache --branch "${GST_UPSTREAM_BRANCH}"
39
40     if [[ -n ${CERBERO_OVERRIDDEN_DIST_DIR} ]]; then
41         test -d "${CERBERO_HOME}/dist/${ARCH}"
42         mkdir -p "${CERBERO_OVERRIDDEN_DIST_DIR}"
43         rsync -aH "${CERBERO_HOME}/dist/${ARCH}/" "${CERBERO_OVERRIDDEN_DIST_DIR}"
44     fi
45
46     $CERBERO $CERBERO_ARGS bootstrap --offline --build-tools-only
47     cerbero_package_and_check
48 }
49
50 cerbero_deps_script() {
51     test "x${HAVE_CCACHE}" = "xyes" && ccache --show-stats
52     $CERBERO $CERBERO_ARGS show-config
53     $CERBERO $CERBERO_ARGS fetch-bootstrap --build-tools-only
54     $CERBERO $CERBERO_ARGS fetch-package --deps gstreamer-1.0
55     $CERBERO $CERBERO_ARGS bootstrap --offline --build-tools-only
56     $CERBERO $CERBERO_ARGS build-deps --offline \
57         gstreamer-1.0 gst-plugins-base-1.0 gst-plugins-good-1.0 \
58         gst-plugins-bad-1.0 gst-plugins-ugly-1.0 gst-rtsp-server-1.0 \
59         gst-libav-1.0 gst-devtools-1.0 gst-editing-services-1.0 libnice
60     test "x${CERBERO_OVERRIDDEN_DIST_DIR}" != "x" \
61         && mkdir -p "${CERBERO_HOME}/dist/${ARCH}" \
62         && rsync -aH "${CERBERO_OVERRIDDEN_DIST_DIR}/" "${CERBERO_HOME}/dist/${ARCH}"
63
64     $CERBERO $CERBERO_ARGS gen-cache --branch ${GST_UPSTREAM_BRANCH}
65
66     test "x${CERBERO_PRIVATE_SSH_KEY}" = "x" \
67         || $CERBERO $CERBERO_ARGS upload-cache --branch ${GST_UPSTREAM_BRANCH}
68     cerbero_package_and_check
69 }
70
71 # Run whichever function is asked of us
72 eval "$1"