# Copyright Yahoo. 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 '^