From: Michael Jeanson Date: Thu, 13 Aug 2020 21:10:32 +0000 (-0400) Subject: jjb: lttng-tools: Add rootbuild gerrit jobs X-Git-Url: https://git.lttng.org./?a=commitdiff_plain;h=edb933dd7f136fbbee8ab89bd5231d5bf933583d;p=lttng-ci.git jjb: lttng-tools: Add rootbuild gerrit jobs Signed-off-by: Michael Jeanson --- diff --git a/jobs/lttng-tools.yaml b/jobs/lttng-tools.yaml index 4635e91..7f72f6a 100644 --- a/jobs/lttng-tools.yaml +++ b/jobs/lttng-tools.yaml @@ -1,28 +1,40 @@ +--- ## SCM Anchors -- lttng-tools_git: - name: 'lttng-tools_git' +- lttng-tools_default_git: + name: 'lttng-tools_default_git' scm: - - git: <tng-tools_git + - git: <tng-tools_default_git url: git://github.com/{github_user}/lttng-tools.git browser: githubweb browser-url: https://github.com/{github_user}/lttng-tools branches: - - origin/{version} + - '{version}' basedir: src/lttng-tools skip-tag: true -- lttng-modules_git: - name: 'lttng-modules_git' +- lttng-modules_default_git: + name: 'lttng-modules_default_git' scm: - - git: <tng-modules_git + - git: <tng-modules_default_git url: git://github.com/{github_user}/lttng-modules.git browser: githubweb browser-url: https://github.com/{github_user}/lttng-modules branches: - - origin/{version} + - '{version}' basedir: src/lttng-modules skip-tag: true +- lttng-tools_gerrit_git: + name: 'lttng-tools_gerrit_git' + scm: + - git: <tng-tools_gerrit_git + url: https://review.lttng.org/lttng-tools + refspec: 'refs/changes/*:refs/changes/*' + branches: + - '$GERRIT_REFSPEC' + basedir: src/lttng-tools + skip-tag: true + ## Defaults - defaults: @@ -49,7 +61,7 @@ - failure: false scm: - - git: *lttng-tools_git + - git: *lttng-tools_default_git triggers: - pollscm: @@ -99,6 +111,43 @@ name: test_type values: '{obj:testtype}' +- lttng-tools_build_axes_rootbuild: <tng-tools_build_axes_rootbuild + name: 'lttng-tools_build_axes_rootbuild' + project-type: matrix + node: 'master' # Applies only to matrix flyweight task + execution-strategy: + combination-filter: '{filter}' + axes: + - axis: + type: slave + name: node + values: + - 'amd64-rootnode' + - axis: + type: user-defined + name: arch + values: '{obj:arch}' + - axis: + type: user-defined + name: conf + values: '{obj:conf}' + - axis: + type: user-defined + name: liburcu_version + values: '{obj:urcuversion}' + - axis: + type: user-defined + name: babeltrace_version + values: '{obj:babelversion}' + - axis: + type: user-defined + name: build + values: '{obj:build}' + - axis: + type: user-defined + name: test_type + values: '{obj:testtype}' + ## Builders Anchors - lttng-tools_build_builders_defaults: <tng-tools_build_builders_defaults @@ -151,13 +200,6 @@ filter: 'build/**' target: 'deps' do-not-fingerprint: true - - copyartifact: - project: lttng-ust_{ustversion}_{buildtype}/liburcu_version=${{liburcu_version}},arch=${{arch}},conf=std,build=std - which-build: last-successful - stable: false - filter: 'build/**' - target: 'deps' - do-not-fingerprint: true - conditional-step: condition-kind: regex-match label: '$conf' @@ -328,13 +370,6 @@ filter: 'build/**' target: 'deps' do-not-fingerprint: true - - copyartifact: - project: lttng-ust_${{GERRIT_BRANCH}}_{buildtype}/liburcu_version=${{liburcu_version}},arch=${{arch}},conf=std,build=std - which-build: last-successful - stable: false - filter: 'build/**' - target: 'deps' - do-not-fingerprint: true - conditional-step: condition-kind: regex-match label: '$conf' @@ -383,7 +418,7 @@ steps: - shell: !include-raw-escape: - - scripts/lttng-tools/gerrit-build-override.sh + - scripts/common/override-build-std.sh - scripts/lttng-ust/build.sh - shell: !include-raw-escape: scripts/lttng-tools/gerrit-install-deps.sh @@ -645,44 +680,10 @@ - job-template: name: lttng-tools_{version}_rootbuild defaults: lttng-tools - project-type: matrix - node: 'master' # Applies only to matrix flyweight task - execution-strategy: - combination-filter: '{filter}' - axes: - - axis: - type: slave - name: node - values: - - 'amd64-rootnode' - - axis: - type: user-defined - name: arch - values: '{obj:arch}' - - axis: - type: user-defined - name: conf - values: '{obj:conf}' - - axis: - type: user-defined - name: liburcu_version - values: '{obj:urcuversion}' - - axis: - type: user-defined - name: babeltrace_version - values: '{obj:babelversion}' - - axis: - type: user-defined - name: build - values: '{obj:build}' - - axis: - type: user-defined - name: test_type - values: '{obj:testtype}' scm: - - git: *lttng-tools_git - - git: *lttng-modules_git + - git: *lttng-tools_default_git + - git: *lttng-modules_default_git wrappers: - ansicolor @@ -692,6 +693,7 @@ type: no-activity - timestamps + <<: *lttng-tools_build_axes_rootbuild <<: *lttng-tools_build_builders_defaults <<: *lttng-tools_build_publishers_prod @@ -724,13 +726,7 @@ concurrent: true scm: - - git: - url: https://review.lttng.org/lttng-tools - refspec: 'refs/changes/*:refs/changes/*' - branches: - - '$GERRIT_REFSPEC' - basedir: src/lttng-tools - skip-tag: true + - git: *lttng-tools_gerrit_git triggers: - gerrit: @@ -795,6 +791,68 @@ clean-if: - failure: false +- job-template: + name: dev_gerrit_lttng-tools_rootbuild + defaults: lttng-tools + concurrent: true + + scm: + - git: *lttng-tools_gerrit_git + - git: + <<: *lttng-modules_default_git + branches: + - '$GERRIT_BRANCH' + + triggers: + - gerrit: + trigger-on: + - comment-added-event: + approval-category: 'CI-Build' + approval-value: 1 + projects: + - project-compare-type: 'PLAIN' + project-pattern: 'lttng-tools' + branches: + - branch-compare-type: 'ANT' + branch-pattern: '**' + trigger-for-unreviewed-patches: true + + properties: + - inject: + properties-content: | + PROJECT_NAME=lttng-tools + - build-discarder: + days-to-keep: 1 + - throttle: + option: 'category' + categories: + - 'gerrit-{buildtype}' + + <<: *lttng-tools_build_axes_rootbuild + <<: *lttng-tools_build_builders_gerrit + + publishers: + - tap: + results: 'tap/**/*.*' + fail-if-no-results: true + failed-tests-mark-build-as-failure: true + todo-is-failure: false + - warnings: + console-log-parsers: + - 'GNU Make + GNU C Compiler (gcc)' + total-thresholds: + unstable: + total-all: 0 + total-high: 0 + total-normal: 0 + total-low: 0 + - archive: + artifacts: 'build/**,deps/**,tap/**' + allow-empty: false + - workspace-cleanup: + clean-if: + - failure: false + - job-template: name: lttng-tools_{version}_release defaults: lttng-tools @@ -1593,6 +1651,15 @@ babelversion: !!python/tuple [stable-1.5] testtype: !!python/tuple [base] filter: '' + - 'dev_gerrit_lttng-tools_rootbuild': + buildtype: build + arch: !!python/tuple [amd64] + build: !!python/tuple [std] + conf: !!python/tuple [agents] + urcuversion: !!python/tuple [stable-0.12] + babelversion: !!python/tuple [stable-2.0] + testtype: !!python/tuple [base] + filter: '' - project: name: lttng-tools-views diff --git a/scripts/common/override-build-std.sh b/scripts/common/override-build-std.sh new file mode 100755 index 0000000..003ee7a --- /dev/null +++ b/scripts/common/override-build-std.sh @@ -0,0 +1,22 @@ +#!/bin/bash -exu +# +# Copyright (C) 2020 Jonathan Rajotte-Julien +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# This file should be used as a jenkins job builder RAW import allowing the +# override of the "build" variable on shell builder execution. + +# shellcheck disable=SC2034 +build=std diff --git a/scripts/lttng-tools/build.sh b/scripts/lttng-tools/build.sh index 4458a0c..b44dd2c 100755 --- a/scripts/lttng-tools/build.sh +++ b/scripts/lttng-tools/build.sh @@ -290,6 +290,8 @@ fi # Most build configs require the python bindings CONF_OPTS=("--prefix=$PREFIX" "--enable-python-bindings") +DIST_CONF_OPTS=() + # Set configure options and environment variables for each build # configuration. case "$conf" in @@ -302,6 +304,7 @@ static) no-ust) echo "Build without UST support" CONF_OPTS+=("$NO_UST") + DIST_CONF_OPTS+=("$NO_UST") ;; agents) @@ -355,7 +358,7 @@ dist) # Run configure and generate the tar file # in the source directory - ./configure + ./configure "${DIST_CONF_OPTS[@]}" $MAKE dist # Create and enter a temporary build directory @@ -378,7 +381,7 @@ oot-dist) cd "$builddir" # Run configure out of tree and generate the tar file - "$SRCDIR/configure" + "$SRCDIR/configure" "${DIST_CONF_OPTS[@]}" $MAKE dist dist_srcdir="$(mktemp -d)" diff --git a/scripts/lttng-tools/gerrit-build-override.sh b/scripts/lttng-tools/gerrit-build-override.sh deleted file mode 100755 index 003ee7a..0000000 --- a/scripts/lttng-tools/gerrit-build-override.sh +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/bash -exu -# -# Copyright (C) 2020 Jonathan Rajotte-Julien -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . - -# This file should be used as a jenkins job builder RAW import allowing the -# override of the "build" variable on shell builder execution. - -# shellcheck disable=SC2034 -build=std diff --git a/scripts/lttng-tools/gerrit-depends-on.sh b/scripts/lttng-tools/gerrit-depends-on.sh index 4003dfc..7b47b93 100755 --- a/scripts/lttng-tools/gerrit-depends-on.sh +++ b/scripts/lttng-tools/gerrit-depends-on.sh @@ -25,7 +25,7 @@ gerrit_url="https://${GERRIT_NAME}" gerrit_query="?o=CURRENT_REVISION&o=DOWNLOAD_COMMANDS" gerrit_json_query=".revisions[.current_revision].ref" -possible_depends_on="lttng-ust" +possible_depends_on="lttng-ust|lttng-modules" re="Depends-on: (${possible_depends_on}): ([^'$'\n'']*)" property_file="${WORKSPACE}/gerrit_custom_dependencies.properties" @@ -55,6 +55,17 @@ git rev-list --format=%B --max-count=1 HEAD | while read -r line; do continue fi + if [ "$project" = "lttng-modules" ]; then + if [ -d "$WORKSPACE/src/lttng-modules" ]; then + # Remove the regular modules sources to replace them with those + # from the gerrit change + rm -rf "$WORKSPACE/src/lttng-modules" + else + # This job does not require modules sources + continue + fi + fi + # Export the GERRIT_DEP_... into the property file for further jenkins usage echo "GERRIT_DEP_${project_sanitize^^}=${gerrit_id}" >> "$property_file"