- job: name: tcwg-make-and-test-release project-type: multijob defaults: global properties: - authorization: anonymous: - job-read - job-extended-read linaro: - job-build - job-cancel - build-discarder: days-to-keep: 30 num-to-keep: 30 parameters: - string: name: gcc_src default: 'gcc-linaro-5.3-2016.02.tar.xz' description: 'The source of GCC. Specify as it would be passed to abe.sh, either a source tarballs, git branch and revision, or a URL of a tarball e.g., "gcc-linaro-5.3-2016.02.tar.xz"' - string: name: binutils_src default: '' description: 'A optional revision of binutils to use for this release, e.g., "binutils-gdb.git~linaro_binutils-2_25-branch"' - string: name: glibc_src default: '' description: 'An optional revision of Glibc to use for this release, e.g., "glibc.git~linaro/2.21/master"' - string: name: release_name default: '' description: 'Optional release string to use, e.g., "2016.05", "2016.05-rc3", "2016.05-1", "2016.05-1-rc2". The default is to extract the release string from the gcc_src field' - string: name: toolchain_config default: 'default' description: 'Toolchain version config, e.g., "default", "gcc5", or "gcc6"' - string: name: target_list default: 'aarch64-elf aarch64-linux-gnu aarch64-linux-gnu_ilp32 aarch64_be-elf aarch64_be-linux-gnu armv8l-linux-gnueabihf arm-eabi arm-linux-gnueabi arm-linux-gnueabihf armeb-eabi armeb-linux-gnueabi armeb-linux-gnueabihf' description: 'List of targets to use' - string: name: abe_branch default: tested description: 'ABE revision to test' - string: name: scripts_branch default: master description: 'Scripts branch to use' - choice: name: debug choices: - none - abe - yaml description: "Level of debug information: none - No debugging information, abe - ABE debugging information, yaml - tcwg-make-release.yaml debug information (and exit)." - string: name: fileserver default: dev-01.tcwglab description: 'Remote file server for logs and binaries' - bool: name: testrelease default: 'true' description: 'Run test-release if make-release is successful' - string: name: tcwg_regression_rev default: 'master' description: 'tcwg-regression revision to use' - bool: name: dryrun default: false description: 'Dry-run, do nothing, just print steps' disabled: false node: tcwg-coordinator retry-count: 3 concurrent: true display-name: 'TCWG Make and Test Release' wrappers: - timeout: timeout: 600 - timestamps - build-name: name: '#${BUILD_NUMBER}-${ENV,var="release_name"}' - ssh-agent-credentials: # tcwg-buildslave user id users: - 'e0958a95-204f-4c14-a66c-5e2be6c5d50a' builders: - shell: | #!/bin/bash tcwg_release=${release_name} # If there is no release_name set, extract release information from the gcc_src if test "${release_name:+set}" != "set"; then case "$gcc_src" in *.tar.xz) tcwg_release="$(basename $gcc_src | cut -d '-' -f4-)" tcwg_release=${tcwg_release%".tar.xz"} ;; gcc.git~*) tcwg_release="$(echo $gcc_src | grep -o -e '-\(20[0-9]\{2\}\.[01][0-9].*\)' )" tcwg_release=${tcwg_release#-} ;; *) echo "ERROR: Could not find tcwg release" exit 1 ;; esac fi if [ x"${tcwg_release}" = x"" ]; then echo "ERROR: Could not find tcwg release" exit 1 fi # Extract the gcc_version information from gcc_src to determine # which directory to copy the tarballs into. case "$gcc_src" in *.tar.*) # src tarballs usually named like this gcc_version=$(basename $gcc_src | awk -F '-' '{ print $3 }') ;; *.git~*) # building from git branch or tag gcc_version=$(basename $gcc_src | awk -F '-' '{ print $2 }') ;; *) echo "ERROR: could not extract version from gcc_src" exit 1 ;; esac if ! echo "${gcc_version}" | grep -xEq '[0-9]+\.[0-9]+(\.[0-9]+)?'; then echo "ERROR: gcc version '${gcc_version}' invalid" exit 1 fi gcc_major="`echo $gcc_version | awk -F '.' '{ print $1 }'`" gcc_minor="`echo $gcc_version | awk -F '.' '{ print $2 }'`" tcwg_version="${gcc_major}.${gcc_minor}" if test ${gcc_major} -lt 5; then gcc_point="`echo $gcc_version | awk -F '.' '{ print $2 }'`" tcwg_version="${gcc_major}.${gcc_minor}.${gcc_point}" fi buildid=`printf '%04d' ${BUILD_NUMBER}` binariesdir=releases/binaries/${tcwg_version}-${tcwg_release}-${buildid} logsdir=releases/logs/${tcwg_version}-${tcwg_release}-${buildid} cat << EOF > make_release_parameters binariesdir=${binariesdir} logsdir=${logsdir} dryrun=$dryrun EOF echo "NOTE: Make-release job parameters:" cat make_release_parameters cat << EOF > test_release_parameters tarball_url=http://${fileserver}/~tcwg-buildslave/${binariesdir} release=${tcwg_release} dryrun=$dryrun EOF echo "NOTE: Test-release job parameters:" cat test_release_parameters exit 0 - multijob: name: 'Check Make Release' condition: COMPLETED projects: - name: tcwg-make-release current-parameters: true property-file: make_release_parameters - multijob: name: 'Check Test Release' condition: COMPLETED projects: - name: tcwg-test-release-matrix current-parameters: true property-file: test_release_parameters publishers: - email-ext: recipients: 'tcwg-validation@linaro.org' aborted: true send-to: requester recipients