Skip to content

Commit 71e38d4

Browse files
committed
Merge branch 'ls/travis-relays-for-windows-ci'
Define a new task in .travis.yml that triggers a test session on Windows run elsewhere. * ls/travis-relays-for-windows-ci: travis-ci: build and test Git on Windows
2 parents 77a24b7 + 029aeee commit 71e38d4

File tree

2 files changed

+85
-0
lines changed

2 files changed

+85
-0
lines changed

.travis.yml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,17 @@ env:
3939

4040
matrix:
4141
include:
42+
- env: Windows
43+
os: linux
44+
compiler:
45+
addons:
46+
before_install:
47+
before_script:
48+
script:
49+
- >
50+
test "$TRAVIS_REPO_SLUG" != "git/git" ||
51+
ci/run-windows-build.sh $TRAVIS_BRANCH $(git rev-parse HEAD)
52+
after_failure:
4253
- env: Linux32
4354
os: linux
4455
services:

ci/run-windows-build.sh

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
#!/usr/bin/env bash
2+
#
3+
# Script to trigger the a Git for Windows build and test run.
4+
# Set the $GFW_CI_TOKEN as environment variable.
5+
# Pass the branch (only branches on https://github.com/git/git are
6+
# supported) and a commit hash.
7+
#
8+
9+
test $# -ne 2 && echo "Unexpected number of parameters" && exit 1
10+
test -z "$GFW_CI_TOKEN" && echo "GFW_CI_TOKEN not defined" && exit
11+
12+
BRANCH=$1
13+
COMMIT=$2
14+
15+
gfwci () {
16+
local CURL_ERROR_CODE HTTP_CODE
17+
exec 3>&1
18+
HTTP_CODE=$(curl \
19+
-H "Authentication: Bearer $GFW_CI_TOKEN" \
20+
--silent --retry 5 --write-out '%{HTTP_CODE}' \
21+
--output >(sed "$(printf '1s/^\xef\xbb\xbf//')" >cat >&3) \
22+
"https://git-for-windows-ci.azurewebsites.net/api/TestNow?$1" \
23+
)
24+
CURL_ERROR_CODE=$?
25+
if test $CURL_ERROR_CODE -ne 0
26+
then
27+
return $CURL_ERROR_CODE
28+
fi
29+
if test "$HTTP_CODE" -ge 400 && test "$HTTP_CODE" -lt 600
30+
then
31+
return 127
32+
fi
33+
}
34+
35+
# Trigger build job
36+
BUILD_ID=$(gfwci "action=trigger&branch=$BRANCH&commit=$COMMIT&skipTests=false")
37+
if test $? -ne 0
38+
then
39+
echo "Unable to trigger Visual Studio Team Services Build"
40+
echo "$BUILD_ID"
41+
exit 1
42+
fi
43+
44+
# Check if the $BUILD_ID contains a number
45+
case $BUILD_ID in
46+
''|*[!0-9]*) echo "Unexpected build number: $BUILD_ID" && exit 1
47+
esac
48+
49+
echo "Visual Studio Team Services Build #${BUILD_ID}"
50+
51+
# Wait until build job finished
52+
STATUS=
53+
RESULT=
54+
while true
55+
do
56+
LAST_STATUS=$STATUS
57+
STATUS=$(gfwci "action=status&buildId=$BUILD_ID")
58+
test "$STATUS" = "$LAST_STATUS" || printf "\nStatus: $STATUS "
59+
printf "."
60+
61+
case "$STATUS" in
62+
inProgress|postponed|notStarted) sleep 10 ;; # continue
63+
"completed: succeeded") RESULT="success"; break;; # success
64+
*) echo "Unhandled status: $STATUS"; break;; # failure
65+
esac
66+
done
67+
68+
# Print log
69+
echo ""
70+
echo ""
71+
gfwci "action=log&buildId=$BUILD_ID" | cut -c 30-
72+
73+
# Set exit code for TravisCI
74+
test "$RESULT" = "success"

0 commit comments

Comments
 (0)