summaryrefslogtreecommitdiff
path: root/azure-pipelines
diff options
context:
space:
mode:
Diffstat (limited to 'azure-pipelines')
-rwxr-xr-xazure-pipelines/build.sh4
-rwxr-xr-xazure-pipelines/getcontainer.sh45
-rwxr-xr-xazure-pipelines/setup-mingw.sh14
3 files changed, 61 insertions, 2 deletions
diff --git a/azure-pipelines/build.sh b/azure-pipelines/build.sh
index 27e2f3e38..bec855d4a 100755
--- a/azure-pipelines/build.sh
+++ b/azure-pipelines/build.sh
@@ -13,6 +13,10 @@ BUILD_PATH=${BUILD_PATH:=$PATH}
CMAKE=$(which cmake)
CMAKE_GENERATOR=${CMAKE_GENERATOR:-Unix Makefiles}
+if [[ "$(uname -s)" == MINGW* ]]; then
+ BUILD_PATH=$(cygpath "$BUILD_PATH")
+fi
+
indent() { sed "s/^/ /"; }
echo "Source directory: ${SOURCE_DIR}"
diff --git a/azure-pipelines/getcontainer.sh b/azure-pipelines/getcontainer.sh
new file mode 100755
index 000000000..bc93f4919
--- /dev/null
+++ b/azure-pipelines/getcontainer.sh
@@ -0,0 +1,45 @@
+#!/bin/bash
+
+set -e
+
+DOCKERFILE_PATH=$1
+
+if [ "${DOCKERFILE_PATH}" = "" ]; then
+ echo "usage: $0 dockerfile"
+ exit 1
+fi
+
+if [ "${DOCKER_REGISTRY}" = "" ]; then
+ echo "DOCKER_REGISTRY environment variable is unset."
+ echo "Not running inside GitHub Actions or misconfigured?"
+ exit 1
+fi
+
+DOCKER_CONTAINER="${GITHUB_REPOSITORY}/$(basename ${DOCKERFILE_PATH})"
+DOCKER_REGISTRY_CONTAINER="${DOCKER_REGISTRY}/${DOCKER_CONTAINER}"
+
+echo "::set-env name=docker-container::${DOCKER_CONTAINER}"
+echo "::set-env name=docker-registry-container::${DOCKER_REGISTRY_CONTAINER}"
+
+# Identify the last git commit that touched the Dockerfiles
+# Use this as a hash to identify the resulting docker containers
+DOCKER_SHA=$(git log -1 --pretty=format:"%h" -- "${DOCKERFILE_PATH}")
+echo "::set-env name=docker-sha::${DOCKER_SHA}"
+
+DOCKER_REGISTRY_CONTAINER_SHA="${DOCKER_REGISTRY_CONTAINER}:${DOCKER_SHA}"
+
+echo "::set-env name=docker-registry-container-sha::${DOCKER_REGISTRY_CONTAINER_SHA}"
+echo "::set-env name=docker-registry-container-latest::${DOCKER_REGISTRY_CONTAINER}:latest"
+
+exists="true"
+docker login https://${DOCKER_REGISTRY} -u ${GITHUB_ACTOR} -p ${GITHUB_TOKEN} || exists="false"
+
+if [ "${exists}" != "false" ]; then
+ docker pull ${DOCKER_REGISTRY_CONTAINER_SHA} || exists="false"
+fi
+
+if [ "${exists}" = "true" ]; then
+ echo "::set-env name=docker-container-exists::true"
+else
+ echo "::set-env name=docker-container-exists::false"
+fi
diff --git a/azure-pipelines/setup-mingw.sh b/azure-pipelines/setup-mingw.sh
index 1172c2077..d500da058 100755
--- a/azure-pipelines/setup-mingw.sh
+++ b/azure-pipelines/setup-mingw.sh
@@ -4,6 +4,9 @@ echo "##########################################################################
echo "## Downloading mingw"
echo "##############################################################################"
+BUILD_TEMP=${BUILD_TEMP:=$TEMP}
+BUILD_TEMP=$(cygpath $BUILD_TEMP)
+
case "$ARCH" in
amd64)
MINGW_URI="https://bintray.com/libgit2/build-dependencies/download_file?file_path=mingw-w64-x86_64-8.1.0-release-win32-seh-rt_v6-rev0.zip";;
@@ -11,5 +14,12 @@ case "$ARCH" in
MINGW_URI="https://bintray.com/libgit2/build-dependencies/download_file?file_path=mingw-w64-i686-8.1.0-release-win32-sjlj-rt_v6-rev0.zip";;
esac
-curl -s -L "$MINGW_URI" -o "$TEMP"/mingw-"$ARCH".zip
-unzip -q "$TEMP"/mingw-"$ARCH".zip -d "$TEMP"
+if [ -z "$MINGW_URI" ]; then
+ echo "No URL"
+ exit 1
+fi
+
+mkdir -p "$BUILD_TEMP"
+
+curl -s -L "$MINGW_URI" -o "$BUILD_TEMP"/mingw-"$ARCH".zip
+unzip -q "$BUILD_TEMP"/mingw-"$ARCH".zip -d "$BUILD_TEMP"