[vlc-devel] [PATCH 1/2] CI: Add script to get contribs SHA for CI

Marvin Scholz epirat07 at gmail.com
Tue Oct 22 14:39:24 CEST 2019


---
 extras/ci/get-contrib-sha.sh | 41 ++++++++++++++++++++++++++++++++++++
 1 file changed, 41 insertions(+)
 create mode 100755 extras/ci/get-contrib-sha.sh

diff --git a/extras/ci/get-contrib-sha.sh b/extras/ci/get-contrib-sha.sh
new file mode 100755
index 0000000000..9191c59b96
--- /dev/null
+++ b/extras/ci/get-contrib-sha.sh
@@ -0,0 +1,41 @@
+#!/usr/bin/env bash
+# Copyright (C) Marvin Scholz
+#
+# Get latest SHA that changed contribs (needed for CI)
+
+# Array of paths that trigger contrib rebuilds in Gitlab CI
+VLC_CONTRIB_REBUILD_PATHS=("extras/tools" "contrib")
+# Revision from which to start look for changes (backwards in time)
+VLC_START_REVISION="HEAD"
+# VLC source root directory
+VLC_SRC_ROOT_DIR=$(git rev-parse --show-toplevel)
+
+# Print error message and terminate script with status 1
+# Arguments:
+#   Message to print
+abort_err()
+{
+    echo "ERROR: $1" >&2
+    exit 1
+}
+
+# Check if tool exists
+# Arguments:
+#   Tool name to check for
+has_tool()
+{
+    command -v "$1" >/dev/null 2>&1 || return 1
+}
+
+has_tool "git" || abort_err "Git was not found!"
+[ -n "${VLC_SRC_ROOT_DIR}" ] || abort_err "This script must be run in the VLC Git repo and git must be available"
+[ -f "${VLC_SRC_ROOT_DIR}/src/libvlc.h" ] || abort_err "This script must be run in the VLC Git repository"
+
+VLC_LAST_CONTRIB_SHA=$(
+    cd "$VLC_SRC_ROOT_DIR" &&
+    git rev-list -1 "${VLC_START_REVISION}" -- "${VLC_CONTRIB_REBUILD_PATHS[@]}"
+)
+
+[ -n "${VLC_LAST_CONTRIB_SHA}" ] || abort_err "Failed to determine last contrib SHA using Git!"
+
+echo "${VLC_LAST_CONTRIB_SHA}"
-- 
2.20.1 (Apple Git-117)



More information about the vlc-devel mailing list