forked from alphagov/whitehall
-
Notifications
You must be signed in to change notification settings - Fork 0
/
jenkins-schema.sh
executable file
·50 lines (41 loc) · 1.46 KB
/
jenkins-schema.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#!/bin/bash -xe
export DISPLAY=:99
env
function github_status {
STATUS="$1"
MESSAGE="$2"
gh-status alphagov/govuk-content-schemas "$SCHEMA_GIT_COMMIT" "$STATUS" -d "Build #${BUILD_NUMBER} ${MESSAGE}" -u "$BUILD_URL" -c "whitehall contract tests" >/dev/null
}
function error_handler {
trap - ERR # disable error trap to avoid recursion
local parent_lineno="$1"
local message="$2"
local code="${3:-1}"
if [[ -n "$message" ]] ; then
echo "Error on or near line ${parent_lineno}: ${message}; exiting with status ${code}"
else
echo "Error on or near line ${parent_lineno}; exiting with status ${code}"
fi
github_status failure "failed on Jenkins"
exit "${code}"
}
trap "error_handler ${LINENO}" ERR
github_status pending "is running on Jenkins"
# Ensure there are no artefacts left over from previous builds
git clean -fdx
# Clone govuk-content-schemas dependency for contract tests
rm -rf tmp/govuk-content-schemas
git clone [email protected]:alphagov/govuk-content-schemas.git tmp/govuk-content-schemas
cd tmp/govuk-content-schemas
git checkout $SCHEMA_GIT_COMMIT
cd ../..
time bundle install --path "${HOME}/bundles/${JOB_NAME}" --deployment
RAILS_ENV=test GOVUK_CONTENT_SCHEMAS_PATH=tmp/govuk-content-schemas time bundle exec rake test:publishing_schemas --trace
EXIT_STATUS=$?
echo "EXIT STATUS: $EXIT_STATUS"
if [ "$EXIT_STATUS" == "0" ]; then
github_status success "succeeded on Jenkins"
else
github_status failure "failed on Jenkins"
fi
exit $EXIT_STATUS