blob: 78255eee5b62fd7fc65375d9a36190a677fef43a [file] [log] [blame]
# Auto generated by ./tcwg/generate-yamlfiles.sh from tcwg-dev-build.yaml.in and tcwg-dev-build/tcwg-llvm-build.def. Do not edit.
#BEGIN: tcwg/default.yaml.inc
# -*- mode: Yaml -*-
- property:
name: default-properties
properties:
- authorization:
anonymous:
- job-read
- job-extended-read
everyone-flat:
- job-build
- job-cancel
- build-discarder:
days-to-keep: 20
- scm:
name: jenkins-scripts
scm:
- git:
url: https://gitlab.com/Linaro/tcwg/jenkins-scripts.git
refspec: +refs/heads/*:refs/remotes/origin/* +refs/changes/*:refs/changes/*
branches:
- $scripts_branch
basedir: jenkins-scripts
skip-tag: true
reference-repo: /home/tcwg-buildslave/snapshots-ref/jenkins-scripts.git
wipe-workspace: false
clean:
before: true
prune: true
#END: tcwg/default.yaml.inc
- job:
name: tcwg-llvm-build
project-type: freestyle
defaults: global
properties:
- default-properties
parameters:
- string:
name: release
default: ''
description: 'Release number. Ex. 4.0.1'
- string:
name: candidate
default: 'git-ref=main'
description: 'RC number. Ex. 1, 2, final'
- string:
name: toolchain
default: ''
description: 'URL of the toolchain to use. This needs to be a tarball with a /bin directory inside with either GCC or LLVM from make install'
- string:
name: compiler
default: 'clang'
description: 'Override the default system compiler. Only used if "toolchain" is empty.'
- bool:
name: useninja
default: true
description: 'Whether or not to use ninja for the release (works for releases > 9.0.0)'
- bool:
name: testsuite
default: true
description: 'Whether or not to trigger a test-suite with this build.'
- string:
name: build_container_tag
default: 'lts_1'
description: 'Type of image to use in the container: lts_1, lts, ...'
- label:
name: builder
default: tcwg-x86_64-build
description: 'Jenkins label to build on; determines host of the toolchain'
- string:
name: scripts_branch
default: tested
description: 'Scripts revision to use'
disabled: false
concurrent: true
display-name: 'TCWG AAA llvm linux Build'
scm:
- jenkins-scripts
wrappers:
- timeout:
timeout: 1800
- timestamps
- ssh-agent-credentials:
# tcwg-buildslave user id
users:
- 'e0958a95-204f-4c14-a66c-5e2be6c5d50a'
- build-name:
name: '#$BUILD_NUMBER-$release-$candidate/$builder'
- workspace-cleanup
builders:
- shell: |
#!/bin/bash
set -ex
rm -rf artifacts
mkdir artifacts
# Until we figure out a way to use heavy-job with different weights
# based on the builder, we hardcode to one.
buildjobs=1
# Select builder arch/type/container
case ${builder} in
tcwg-x86_64-build|tcwg-x86_64-cam)
builder_arch=amd64
buildjobs=8 # 1 slot is 32/4
;;
tcwg-tk1_32-build|tcwg-llvm_tk1-*)
builder_arch=armhf
buildjobs=3 # TK1s only have 4 cores and little RAM
;;
tcwg-jade*)
builder_arch=arm64
buildjobs=64 # Jades have lots of cores
;;
*) echo "ERROR: Unsupported label: $builder"; exit 1 ;;
esac
# Sets the system compiler
compiler_option=''
if [ "${toolchain:+set}" != "set" ] && [ "${compiler:+set}" = "set" ]; then
compiler_option="--compiler=${compiler}"
fi
# Trigger toolchain name
toolchain_file="${WORKSPACE}/llvm.params.toolchain"
toolchain_file_option=""
if ${twostage} || ${testsuite}; then
toolchain_file_option="--toolchain-file=$toolchain_file"
fi
# Setup job parameters and run (for now, just pretend to run)
ret=0
./jenkins-scripts/docker-run.sh \
--arch ${builder_arch} \
--distro ${build_container_tag} \
-- \
bash -x ./jenkins-scripts/tcwg-llvm-release.sh \
--workspace=${WORKSPACE} \
--release=${release} \
--candidate=${candidate} \
--buildjobs=${buildjobs} \
--toolchain=${toolchain} \
--use-ninja=${useninja} \
$toolchain_file_option $compiler_option \
> artifacts/release.log 2>&1 || ret=$?
if [ $ret -ne 0 ]; then
touch llvm.failed
fi
# Chained jobs
if ${testsuite}; then
echo "target_list=$builder" > llvm.params.testsuite
cat $toolchain_file >> llvm.params.testsuite
fi
# failure is handled by conditional step on llvm.failed
# so that the testsuite job is always triggered
exit 0
- conditional-step:
condition-kind: file-exists
condition-filename: llvm.params.testsuite
steps:
- trigger-builds:
- project: 'tcwg-llvm-testsuite'
property-file: llvm.params.testsuite
current-parameters: true
block: true
- conditional-step:
condition-kind: file-exists
condition-filename: llvm.failed
steps:
- shell: "exit 1"
publishers:
- archive:
artifacts: 'artifacts/**'
latest-only: false
# checksum: b572df8347320fc6fd64b8b3c89df1d9