blob: 3acb5b138674fb700e378bbaaaa6e0094681aff1 (
plain) (
blame)
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
|
# Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
---
cache:
job:
build-vespa: [/main_job_cache]
jobs:
build-vespa:
requires: [~pr, ~commit]
image: vespaengine/vespa-build-centos7:latest
annotations:
screwdriver.cd/cpu: 7
screwdriver.cd/ram: 16
screwdriver.cd/disk: HIGH
screwdriver.cd/timeout: 60
environment:
USER_SHELL_BIN: bash
LOCAL_MVN_REPO: "/tmp/vespa/mvnrepo"
VESPA_MAVEN_EXTRA_OPTS: "-Dmaven.repo.local=/tmp/vespa/mvnrepo -Dmaven.javadoc.skip=true -Dmaven.source.skip=true"
CCACHE_TMP_DIR: "/tmp/ccache_tmp"
CCACHE_DATA_DIR: "/tmp/vespa/ccache"
MAIN_CACHE_FILE: "/main_job_cache/vespa.tar"
steps:
- inspect: |
set -x
env | grep -v TOKEN
cat /proc/cpuinfo
cat /proc/meminfo
df -h
uname -a
rpm -qa | grep "vespa"
- restore-cache: |
(cd /tmp && if [[ -f $MAIN_CACHE_FILE ]]; then tar xf $MAIN_CACHE_FILE; fi)
mkdir -p $CCACHE_DATA_DIR
mkdir -p $CCACHE_TMP_DIR
export CCACHE_DIR=$CCACHE_DATA_DIR
rm -f $CCACHE_DIR/ccache.conf
ccache -M 20G
ccache -o log_file=$SD_ARTIFACTS_DIR/ccache_log.txt
ccache -o temporary_dir=$CCACHE_TMP_DIR
ccache -p
ccache -z
- compile: |
screwdriver/build-vespa.sh
- save-cache: |
if [[ -z "$SD_PULL_REQUEST" ]]; then
# Remove what we have produced
rm -rf $LOCAL_MVN_REPO/com/yahoo
rm -rf $LOCAL_MVN_REPO/ai/vespa
# Tar toghether the /tmp/vespa folder containing ccache and cleaned mvn repo
mkdir -p $(dirname $MAIN_CACHE_FILE)
(cd /tmp && tar cf $MAIN_CACHE_FILE vespa)
# Wipe the cache if we exceed 2GB to avoid pulling and pusing too large files
if (( $(stat --format='%s' $MAIN_CACHE_FILE) > $(( 2*1000*1000*1000 )) )); then
tar cf $MAIN_CACHE_FILE --files-from=/dev/null;
echo "Cleaning cache file. $MAIN_CACHE_FILE is now $(stat --format='%s' $MAIN_CACHE_FILE) bytes."
fi
fi
- inspect-after: |
du -sh /tmp/vespa/*
ls -la /main_job_cache || true
df -h
verify-opensource-release-7days:
image: vespaengine/vespa-pipeline
environment:
USER_SHELL_BIN: bash
annotations:
screwdriver.cd/buildPeriodically: H 0 * * *
steps:
- now-epoch: |
now_epoch=`date "+%s"`
echo "Now epoch: " $now_epoch
- calculate-current-release-age: |
current_release_date=`curl -s 'https://repo1.maven.org/maven2/com/yahoo/vespa/parent/' | \
grep '^<a href="[0-9]' | awk '{print $4}' | sort | tail -1`
echo "Current release date: " $current_release_date
current_release_epoch=`date -d "$current_release_date" "+%s"`
echo "Current release epoch: " $current_release_epoch
release_age_days=$((($now_epoch-$current_release_epoch)/86400))
echo "Release age days: " $release_age_days
- error-if-current-release-too-old: |
if [ "$release_age_days" -gt 7 ]; then
echo "Current open source release is older than 7 days"
exit 1
fi
- calculate-docker-image-age: |
image_date=`curl https://hub.docker.com/v2/repositories/vespaengine/vespa/ | \
python -m json.tool| grep last_updated | awk '{print $2}' | tr -d '",'`
echo "Docker image last_updated: " $image_date
image_epoch=`date -d "$image_date" "+%s"`
echo "Docker image epoch: " $image_epoch
docker_image_age_days=$((($now_epoch-$image_epoch)/86400))
echo "Docker image age days: " $docker_image_age_days
- error-if-docker-image-too-old: |
if [ "$docker_image_age_days" -gt 7 ]; then
echo "Current Docker image is older than 7 days"
exit 1
fi
|