mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-23 16:50:47 +00:00
ci_template: move the cerbero scripts from yaml to a new file
Its hard to manage ever growing bash scripts in yaml, and its even harder to run them locally to reproduce the environment. This is essentially a copy-paste of the scripts, to make review easier. We can refactor later. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-ci/-/merge_requests/329>
This commit is contained in:
parent
050aec524b
commit
7d46f1ac5e
2 changed files with 81 additions and 48 deletions
72
gitlab/cerbero_setup.sh
Normal file
72
gitlab/cerbero_setup.sh
Normal file
|
@ -0,0 +1,72 @@
|
||||||
|
set -ex
|
||||||
|
|
||||||
|
show_ccache_sum() {
|
||||||
|
if [[ -n ${HAVE_CCACHE} ]]; then
|
||||||
|
ccache -s
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Produces runtime and devel tarball packages for linux/android or .pkg for macos
|
||||||
|
cerbero_package_and_check() {
|
||||||
|
$CERBERO $CERBERO_ARGS package --offline ${CERBERO_PACKAGE_ARGS} -o "$(pwd)" gstreamer-1.0
|
||||||
|
|
||||||
|
# Run gst-inspect-1.0 for some basic checks. Can't do this for cross-(android|ios)-universal, of course.
|
||||||
|
[[ $CONFIG == *universal* ]] || $CERBERO $CERBERO_ARGS run $CERBERO_RUN_WRAPPER gst-inspect-1.0$CERBERO_RUN_SUFFIX --version
|
||||||
|
[[ $CONFIG == *universal* ]] || $CERBERO $CERBERO_ARGS run $CERBERO_RUN_WRAPPER gst-inspect-1.0$CERBERO_RUN_SUFFIX
|
||||||
|
test "x${HAVE_CCACHE}" = "xyes" && ccache -s || true # eat the return value from the failing test
|
||||||
|
}
|
||||||
|
|
||||||
|
cerbero_before_script() {
|
||||||
|
# FIXME Wrong namespace
|
||||||
|
# Workaround build-tools having hardcoded internal path
|
||||||
|
pwd
|
||||||
|
mkdir -p "../../gstreamer"
|
||||||
|
ln -sf "$(pwd)" "../../gstreamer/cerbero"
|
||||||
|
mkdir -p "../../${CI_PROJECT_NAMESPACE}"
|
||||||
|
ln -sf "$(pwd)" "../../${CI_PROJECT_NAMESPACE}/cerbero"
|
||||||
|
rsync -aH "${CERBERO_HOST_DIR}" .
|
||||||
|
echo "home_dir = \"$(pwd)/${CERBERO_HOME}\"" >> localconf.cbc
|
||||||
|
echo "local_sources = \"$(pwd)/${CERBERO_SOURCES}\"" >> localconf.cbc
|
||||||
|
./cerbero-uninstalled --self-update manifest.xml
|
||||||
|
}
|
||||||
|
|
||||||
|
cerbero_script() {
|
||||||
|
test "x${HAVE_CCACHE}" = "xyes" && ccache --show-stats
|
||||||
|
$CERBERO $CERBERO_ARGS show-config
|
||||||
|
$CERBERO $CERBERO_ARGS fetch-bootstrap --build-tools-only
|
||||||
|
$CERBERO $CERBERO_ARGS fetch-package --deps gstreamer-1.0
|
||||||
|
$CERBERO $CERBERO_ARGS fetch-cache --branch "${GST_UPSTREAM_BRANCH}"
|
||||||
|
|
||||||
|
if [[ -n ${CERBERO_OVERRIDDEN_DIST_DIR} ]]; then
|
||||||
|
test -d "${CERBERO_HOME}/dist/${ARCH}"
|
||||||
|
mkdir -p "${CERBERO_OVERRIDDEN_DIST_DIR}"
|
||||||
|
rsync -aH "${CERBERO_HOME}/dist/${ARCH}/" "${CERBERO_OVERRIDDEN_DIST_DIR}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
$CERBERO $CERBERO_ARGS bootstrap --offline --build-tools-only
|
||||||
|
cerbero_package_and_check
|
||||||
|
}
|
||||||
|
|
||||||
|
cerbero_deps_script() {
|
||||||
|
test "x${HAVE_CCACHE}" = "xyes" && ccache --show-stats
|
||||||
|
$CERBERO $CERBERO_ARGS show-config
|
||||||
|
$CERBERO $CERBERO_ARGS fetch-bootstrap --build-tools-only
|
||||||
|
$CERBERO $CERBERO_ARGS fetch-package --deps gstreamer-1.0
|
||||||
|
$CERBERO $CERBERO_ARGS bootstrap --offline --build-tools-only
|
||||||
|
$CERBERO $CERBERO_ARGS build-deps --offline \
|
||||||
|
gstreamer-1.0 gst-plugins-base-1.0 gst-plugins-good-1.0 \
|
||||||
|
gst-plugins-bad-1.0 gst-plugins-ugly-1.0 gst-rtsp-server-1.0 \
|
||||||
|
gst-libav-1.0 gst-devtools-1.0 gst-editing-services-1.0 libnice
|
||||||
|
test "x${CERBERO_OVERRIDDEN_DIST_DIR}" != "x" \
|
||||||
|
&& mkdir -p "${CERBERO_HOME}/dist/${ARCH}" \
|
||||||
|
&& rsync -aH "${CERBERO_OVERRIDDEN_DIST_DIR}/" "${CERBERO_HOME}/dist/${ARCH}"
|
||||||
|
|
||||||
|
$CERBERO $CERBERO_ARGS gen-cache --branch ${GST_UPSTREAM_BRANCH}
|
||||||
|
|
||||||
|
test "x${CERBERO_PRIVATE_SSH_KEY}" = "x" \
|
||||||
|
|| $CERBERO $CERBERO_ARGS upload-cache --branch ${GST_UPSTREAM_BRANCH}
|
||||||
|
cerbero_package_and_check
|
||||||
|
}
|
||||||
|
|
||||||
|
# Run whichever function is asked of us
|
||||||
|
eval "$1"
|
|
@ -47,6 +47,10 @@ variables:
|
||||||
|
|
||||||
WINDOWS_IMAGE: 'registry.freedesktop.org/gstreamer/gst-ci/amd64/windows:v11-master'
|
WINDOWS_IMAGE: 'registry.freedesktop.org/gstreamer/gst-ci/amd64/windows:v11-master'
|
||||||
|
|
||||||
|
# FIXME: after merging the script
|
||||||
|
# CERBERO_SCRIPT_URL: "https://gitlab.freedesktop.org/gstreamer/gst-ci/raw/${GST_UPSTREAM_BRANCH}/gitlab/cerbero_setup.sh"
|
||||||
|
CERBERO_SCRIPT_URL: 'https://gitlab.freedesktop.org/alatiera/gst-ci/-/raw/alatiera/cerbero-script-2/gitlab/cerbero_setup.sh'
|
||||||
|
|
||||||
GIT_STRATEGY: none
|
GIT_STRATEGY: none
|
||||||
MESON_BUILDTYPE_ARGS: --default-library=both
|
MESON_BUILDTYPE_ARGS: --default-library=both
|
||||||
DEFAULT_MESON_ARGS: >
|
DEFAULT_MESON_ARGS: >
|
||||||
|
@ -648,16 +652,6 @@ valgrind ges:
|
||||||
# CONFIG: The name of the configuration file to use
|
# CONFIG: The name of the configuration file to use
|
||||||
# ARCH: The cerbero <os>_<cpu> (used in cache key)
|
# ARCH: The cerbero <os>_<cpu> (used in cache key)
|
||||||
#
|
#
|
||||||
# Produces runtime and devel tarball packages for linux/android or .pkg for macos
|
|
||||||
.cerbero template: &cerbero_package_and_check
|
|
||||||
- $CERBERO $CERBERO_ARGS package --offline ${CERBERO_PACKAGE_ARGS} -o $(pwd) gstreamer-1.0
|
|
||||||
# Run gst-inspect-1.0 for some basic checks. Can't do this for cross-(android|ios)-universal, of course.
|
|
||||||
- |-
|
|
||||||
[[ $CONFIG == *universal* ]] || $CERBERO $CERBERO_ARGS run $CERBERO_RUN_WRAPPER gst-inspect-1.0$CERBERO_RUN_SUFFIX --version
|
|
||||||
- |-
|
|
||||||
[[ $CONFIG == *universal* ]] || $CERBERO $CERBERO_ARGS run $CERBERO_RUN_WRAPPER gst-inspect-1.0$CERBERO_RUN_SUFFIX
|
|
||||||
- test "x${HAVE_CCACHE}" = "xyes" && ccache -s || true # eat the return value from the failing test
|
|
||||||
|
|
||||||
.cerbero:
|
.cerbero:
|
||||||
stage: "build"
|
stage: "build"
|
||||||
image: $CERBERO_IMAGE
|
image: $CERBERO_IMAGE
|
||||||
|
@ -690,29 +684,11 @@ valgrind ges:
|
||||||
# location where cerbero is cached on the host
|
# location where cerbero is cached on the host
|
||||||
CERBERO_HOST_DIR: "/cerbero/"
|
CERBERO_HOST_DIR: "/cerbero/"
|
||||||
before_script:
|
before_script:
|
||||||
# FIXME Wrong namespace
|
- curl -L -o cerbero_script.sh "${CERBERO_SCRIPT_URL}"
|
||||||
# Workaround build-tools having hardcoded internal path
|
- chmod +x cerbero_script.sh
|
||||||
- pwd
|
- ./cerbero_script.sh cerbero_before_script
|
||||||
- mkdir -p ../../gstreamer
|
|
||||||
- ln -sf $(pwd) ../../gstreamer/cerbero
|
|
||||||
- mkdir -p ../../${CI_PROJECT_NAMESPACE}
|
|
||||||
- ln -sf $(pwd) ../../${CI_PROJECT_NAMESPACE}/cerbero
|
|
||||||
- rsync -aH ${CERBERO_HOST_DIR} .
|
|
||||||
- echo "home_dir = \"$(pwd)/${CERBERO_HOME}\"" >> localconf.cbc
|
|
||||||
- echo "local_sources = \"$(pwd)/${CERBERO_SOURCES}\"" >> localconf.cbc
|
|
||||||
- ./cerbero-uninstalled --self-update manifest.xml
|
|
||||||
script:
|
script:
|
||||||
- test "x${HAVE_CCACHE}" = "xyes" && ccache --show-stats
|
- ./cerbero_script.sh cerbero_script
|
||||||
- $CERBERO $CERBERO_ARGS show-config
|
|
||||||
- $CERBERO $CERBERO_ARGS fetch-bootstrap --build-tools-only
|
|
||||||
- $CERBERO $CERBERO_ARGS fetch-package --deps gstreamer-1.0
|
|
||||||
- $CERBERO $CERBERO_ARGS fetch-cache --branch ${GST_UPSTREAM_BRANCH}
|
|
||||||
- test "x${CERBERO_OVERRIDDEN_DIST_DIR}" != "x"
|
|
||||||
&& test -d ${CERBERO_HOME}/dist/${ARCH}
|
|
||||||
&& mkdir -p ${CERBERO_OVERRIDDEN_DIST_DIR}
|
|
||||||
&& rsync -aH ${CERBERO_HOME}/dist/${ARCH}/ ${CERBERO_OVERRIDDEN_DIST_DIR}
|
|
||||||
- $CERBERO $CERBERO_ARGS bootstrap --offline --build-tools-only
|
|
||||||
- *cerbero_package_and_check
|
|
||||||
cache:
|
cache:
|
||||||
key: "${CI_JOB_NAME}"
|
key: "${CI_JOB_NAME}"
|
||||||
paths:
|
paths:
|
||||||
|
@ -856,22 +832,7 @@ build msys2 :
|
||||||
rules:
|
rules:
|
||||||
- if: '$CI_PROJECT_NAME == "cerbero"'
|
- if: '$CI_PROJECT_NAME == "cerbero"'
|
||||||
script:
|
script:
|
||||||
- test "x${HAVE_CCACHE}" = "xyes" && ccache --show-stats
|
- ./cerbero_script.sh cerbero_deps_script
|
||||||
- $CERBERO $CERBERO_ARGS show-config
|
|
||||||
- $CERBERO $CERBERO_ARGS fetch-bootstrap --build-tools-only
|
|
||||||
- $CERBERO $CERBERO_ARGS fetch-package --deps gstreamer-1.0
|
|
||||||
- $CERBERO $CERBERO_ARGS bootstrap --offline --build-tools-only
|
|
||||||
- $CERBERO $CERBERO_ARGS build-deps --offline
|
|
||||||
gstreamer-1.0 gst-plugins-base-1.0 gst-plugins-good-1.0
|
|
||||||
gst-plugins-bad-1.0 gst-plugins-ugly-1.0 gst-rtsp-server-1.0
|
|
||||||
gst-libav-1.0 gst-devtools-1.0 gst-editing-services-1.0 libnice
|
|
||||||
- test "x${CERBERO_OVERRIDDEN_DIST_DIR}" != "x"
|
|
||||||
&& mkdir -p ${CERBERO_HOME}/dist/${ARCH}
|
|
||||||
&& rsync -aH ${CERBERO_OVERRIDDEN_DIST_DIR}/ ${CERBERO_HOME}/dist/${ARCH}
|
|
||||||
- $CERBERO $CERBERO_ARGS gen-cache --branch ${GST_UPSTREAM_BRANCH}
|
|
||||||
- test "x${CERBERO_PRIVATE_SSH_KEY}" = "x"
|
|
||||||
|| $CERBERO $CERBERO_ARGS upload-cache --branch ${GST_UPSTREAM_BRANCH}
|
|
||||||
- *cerbero_package_and_check
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Cerbero Linux X86_64 build
|
# Cerbero Linux X86_64 build
|
||||||
|
|
Loading…
Reference in a new issue