blob: 04dccf2c493abe884560780b7950d07b83c44d1e (
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
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
|
# 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]
shared:
image: vespaengine/vespa-build-centos7:latest
jobs:
build-vespa:
requires: [~pr, ~commit]
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:
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
mirror-copr-rpms-to-artifactory:
annotations:
screwdriver.cd/cpu: LOW
screwdriver.cd/ram: LOW
screwdriver.cd/disk: HIGH
screwdriver.cd/timeout: 60
screwdriver.cd/buildPeriodically: H 6 * * *
secrets:
- JFROG_API_TOKEN
steps:
- mirror: |
screwdriver/publish-unpublished-rpms-to-jfrog-cloud.sh
delete-old-versions-on-artifactory:
annotations:
screwdriver.cd/cpu: LOW
screwdriver.cd/ram: LOW
screwdriver.cd/timeout: 10
screwdriver.cd/buildPeriodically: H 6 * * 1
secrets:
- JFROG_API_TOKEN
steps:
- cleanup: |
screwdriver/delete-old-artifactory-artifacts.sh
|