From: Trevor Bramwell Date: Mon, 26 Nov 2018 19:06:45 +0000 (+0000) Subject: Merge "mcelog not longer supported on ubuntu 18.04" X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=commitdiff_plain;h=16e9907a18c28aeffedc4dd047b0727dd0c1066e;hp=23a76cd127148fd515dc144fd14134f166275c89;p=releng.git Merge "mcelog not longer supported on ubuntu 18.04" --- diff --git a/INFO.yaml b/INFO.yaml index d265be37c..6800a9f43 100644 --- a/INFO.yaml +++ b/INFO.yaml @@ -132,3 +132,6 @@ tsc: - type: 'promotion' name: 'Luke Hinds' link: '' + - type: 'promotion' + name: 'Alexandru Avadanii' + link: 'https://gerrit.opnfv.org/gerrit/#/c/64499/' diff --git a/jjb/fuel/fuel-docker-jobs.yaml b/jjb/fuel/fuel-docker-jobs.yaml index c06848e56..473542d85 100644 --- a/jjb/fuel/fuel-docker-jobs.yaml +++ b/jjb/fuel/fuel-docker-jobs.yaml @@ -29,6 +29,7 @@ node-parameters: false predefined-parameters: | PUSH_IMAGE=$PUSH_IMAGE + CACHE_INVALIDATE=$CACHE_INVALIDATE COMMIT_ID=$COMMIT_ID GERRIT_REFNAME=$GERRIT_REFNAME kill-phase-on: FAILURE @@ -69,6 +70,11 @@ - throttle: max-per-node: 1 option: 'project' + - build-blocker: + use-build-blocker: true + blocking-jobs: + - 'fuel-docker-.*' + blocking-level: 'NODE' scm: - git-scm @@ -186,6 +192,10 @@ name: PUSH_IMAGE default: "true" description: "To enable/disable pushing the image to Dockerhub." + - string: + name: CACHE_INVALIDATE + default: "0" + description: "Set to any non-zero value to force a Docker cache cleanup" - string: name: COMMIT_ID default: "" diff --git a/jjb/functest/functest-virtual.yaml b/jjb/functest/functest-virtual.yaml index c383d7c13..cd65f9643 100644 --- a/jjb/functest/functest-virtual.yaml +++ b/jjb/functest/functest-virtual.yaml @@ -3,9 +3,12 @@ name: 'functest-defaultparameters' repo: opnfv tag: - - gambia - - hunter - - latest + - gambia: + branch: stable/gambia + - hunter: + branch: stable/hunter + - latest: + branch: master - job-template: name: '{repo}-functest-{container}-{tag}-pull' @@ -37,14 +40,6 @@ - name: '{repo}-functest-vnf-{tag}-pull' - name: '{repo}-functest-features-{tag}-pull' -- functest-buildparameters: &functest-buildparameters - name: 'functest-buildparameters' - parameters: - - functest-virtual-defaults - - string: - name: branch - default: master - - job-template: name: '{repo}-functest-{container}-{test}-{tag}-run' parameters: @@ -161,6 +156,7 @@ test: - tempest_full - tempest_scenario + - rally_full jobs: - '{repo}-functest-{container}-{test}-{tag}-run' @@ -169,6 +165,7 @@ projects: - name: '{repo}-functest-components-tempest_full-{tag}-run' - name: '{repo}-functest-components-tempest_scenario-{tag}-run' + # - name: '{repo}-functest-components-rally_full-{tag}-run' - project: name: repo-functest-vnf-{test}-{tag}-run @@ -220,6 +217,15 @@ name: '{repo}-functest-{tag}-daily' <<: *functest-defaultparameters project-type: multijob + triggers: + - timed: '@daily' + properties: + - build-blocker: + use-build-blocker: true + block-level: 'NODE' + queue-scanning: 'BUILDABLE' + blocking-jobs: + - '{repo}-functest-.*-.*' parameters: - functest-virtual-defaults builders: @@ -238,9 +244,9 @@ - multijob: name: components <<: *functest-componentsjobs - - multijob: - name: vnf - <<: *functest-vnfjobs + # - multijob: + # name: vnf + # <<: *functest-vnfjobs - multijob: name: features <<: *functest-featuresjobs @@ -251,32 +257,70 @@ jobs: - '{repo}-functest-{tag}-daily' +- functest-gateparameters: &functest-gateparameters + name: 'functest-gateparameters' + parameters: + - functest-virtual-defaults + +- functest-checkparameters: &functest-checkparameters + name: 'functest-checkparameters' + parameters: + - functest-virtual-defaults + - string: + name: BRANCH + default: '{branch}' + +- builder: + name: build-containers + builders: + - shell: | + case "{container}" in + "components") + args="" ;; + *) + args="--build-arg BRANCH={ref}" ;; + esac + cd docker/{container} + sudo docker build \ + ${{args}} --pull=false --no-cache --force-rm=true \ + -t {repo}/functest-{container}:{tag} . + - scm: - name: functest-gerrit + name: functest-scm scm: - git: url: https://gerrit.opnfv.org/gerrit/functest refspec: '+refs/changes/*:refs/changes/*' branches: - - ${branch} + - '{ref}' + +- functest-buildparameters: &functest-buildparameters + name: 'functest-buildparameters' + container: '{container}' + repo: '{repo}' + tag: '{tag}' - job-template: - name: '{repo}-functest-{container}-{tag}-build' - <<: *functest-buildparameters + name: '{repo}-functest-{container}-{tag}-gate' + <<: *functest-gateparameters scm: - - functest-gerrit + - functest-scm: + ref: $GERRIT_REFSPEC builders: - - shell: | - case "{container}" in - "components") - args="" ;; - *) - args="--build-arg BRANCH=${{branch}}" ;; - esac - cd docker/$(echo {container} |cut -d\- -f 2) - sudo docker build \ - ${{args}} --pull=false --no-cache --force-rm=true \ - -t {repo}/functest-{container}:{tag} . + - build-containers: + ref: $GERRIT_REFSPEC + <<: *functest-buildparameters + +- job-template: + name: '{repo}-functest-{container}-{tag}-check' + <<: *functest-checkparameters + scm: + - functest-scm: + ref: $BRANCH + builders: + - build-containers: + ref: $BRANCH + <<: *functest-buildparameters - project: name: repo-functest-container-tag-build @@ -291,7 +335,8 @@ - vnf - features jobs: - - '{repo}-functest-{container}-{tag}-build' + - '{repo}-functest-{container}-{tag}-gate' + - '{repo}-functest-{container}-{tag}-check' - functest-projectparameters: &functest-projectparameters name: 'functest-projectparameters' @@ -300,32 +345,44 @@ - job-template: name: '{repo}-functest-{tag}-gate' project-type: multijob - <<: *functest-buildparameters + <<: *functest-gateparameters + triggers: + - gerrit-trigger-patchset-created: + project: 'functest' + branch: '{branch}' + files: '**' + properties: + - build-blocker: + use-build-blocker: true + block-level: 'NODE' + queue-scanning: 'BUILDABLE' + blocking-jobs: + - '{repo}-functest-.*-.*' builders: - multijob: name: build functest-core projects: - - name: '{repo}-functest-core-{tag}-build' + - name: '{repo}-functest-core-{tag}-gate' <<: *functest-projectparameters - multijob: name: build functest-tempest projects: - - name: '{repo}-functest-tempest-{tag}-build' + - name: '{repo}-functest-tempest-{tag}-gate' <<: *functest-projectparameters - multijob: name: build all remaining contrainers projects: - - name: '{repo}-functest-healthcheck-{tag}-build' + - name: '{repo}-functest-healthcheck-{tag}-gate' <<: *functest-projectparameters - - name: '{repo}-functest-smoke-{tag}-build' + - name: '{repo}-functest-smoke-{tag}-gate' <<: *functest-projectparameters - - name: '{repo}-functest-benchmarking-{tag}-build' + - name: '{repo}-functest-benchmarking-{tag}-gate' <<: *functest-projectparameters - - name: '{repo}-functest-components-{tag}-build' + - name: '{repo}-functest-components-{tag}-gate' <<: *functest-projectparameters - - name: '{repo}-functest-vnf-{tag}-build' + - name: '{repo}-functest-vnf-{tag}-gate' <<: *functest-projectparameters - - name: '{repo}-functest-features-{tag}-build' + - name: '{repo}-functest-features-{tag}-gate' <<: *functest-projectparameters - multijob: name: healthcheck @@ -339,15 +396,72 @@ - multijob: name: components <<: *functest-componentsjobs + # - multijob: + # name: vnf + # <<: *functest-vnfjobs + - multijob: + name: features + <<: *functest-featuresjobs + +- job-template: + name: '{repo}-functest-{tag}-check' + project-type: multijob + <<: *functest-checkparameters + properties: + - build-blocker: + use-build-blocker: true + block-level: 'NODE' + queue-scanning: 'BUILDABLE' + blocking-jobs: + - '{repo}-functest-.*-.*' + builders: + - multijob: + name: build functest-core + projects: + - name: '{repo}-functest-core-{tag}-check' + <<: *functest-projectparameters + - multijob: + name: build functest-tempest + projects: + - name: '{repo}-functest-tempest-{tag}-check' + <<: *functest-projectparameters + - multijob: + name: build all remaining contrainers + projects: + - name: '{repo}-functest-healthcheck-{tag}-check' + <<: *functest-projectparameters + - name: '{repo}-functest-smoke-{tag}-check' + <<: *functest-projectparameters + - name: '{repo}-functest-benchmarking-{tag}-check' + <<: *functest-projectparameters + - name: '{repo}-functest-components-{tag}-check' + <<: *functest-projectparameters + - name: '{repo}-functest-vnf-{tag}-check' + <<: *functest-projectparameters + - name: '{repo}-functest-features-{tag}-check' + <<: *functest-projectparameters - multijob: - name: vnf - <<: *functest-vnfjobs + name: healthcheck + <<: *functest-healthcheckjobs + - multijob: + name: smoke + <<: *functest-smokejobs + - multijob: + name: benchmarking + <<: *functest-benchmarkingjobs + - multijob: + name: components + <<: *functest-componentsjobs + # - multijob: + # name: vnf + # <<: *functest-vnfjobs - multijob: name: features <<: *functest-featuresjobs - project: - name: repo-functest-tag-gate + name: repo-functest-tag-build <<: *functest-defaultparameters jobs: - '{repo}-functest-{tag}-gate' + - '{repo}-functest-{tag}-check' diff --git a/jjb/global/releng-macros.yaml b/jjb/global/releng-macros.yaml index fe24ed56d..6c37bbbd9 100644 --- a/jjb/global/releng-macros.yaml +++ b/jjb/global/releng-macros.yaml @@ -199,6 +199,32 @@ unstable: false notbuilt: false +- trigger: + name: gerrit-trigger-patchset-approved + triggers: + - gerrit: + server-name: 'gerrit.opnfv.org' + trigger-on: + - comment-added-event: + approval-category: 'CRVW' + approval-value: 2 + - comment-added-contains-event: + comment-contains-value: 'gate' + projects: + - project-compare-type: 'ANT' + project-pattern: '{project}' + branches: + - branch-compare-type: 'ANT' + branch-pattern: '**/{branch}' + file-paths: + - compare-type: 'ANT' + pattern: '{files}' + skip-vote: + successful: false + failed: false + unstable: false + notbuilt: false + - trigger: name: gerrit-trigger-change-merged triggers: diff --git a/jjb/releng/branch-or-tag.sh b/jjb/releng/branch-or-tag.sh new file mode 100755 index 000000000..0fdb24fca --- /dev/null +++ b/jjb/releng/branch-or-tag.sh @@ -0,0 +1,40 @@ +#!/bin/bash +# SPDX-License-Identifier: Apache-2.0 +############################################################################## +# Copyright (c) 2018 The Linux Foundation and others. +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## +set -e -o pipefail + +GIT_URL=${GIT_URL:-https://gerrit.opnfv.org/gerrit} +STREAM=${STREAM:-'nostream'} +RELEASE_FILES=$(git diff HEAD^1 --name-only -- "releases/$STREAM") + +echo "--> Verifying $RELEASE_FILES." +for release_file in $RELEASE_FILES; do + # Verify the release file schema + python releases/scripts/verify_schema.py \ + -s releases/schema.yaml \ + -y $release_file +done + +for release_file in $RELEASE_FILES; do + while read -r repo branch ref; do + echo "$repo" "$branch" "$ref" + unset branch_actual + branch_actual="$(git ls-remote "https://gerrit.opnfv.org/gerrit/$repo.git" "refs/heads/$branch" | awk '{print $1}')" + + if [ -n "$branch_actual" ]; then + echo "$repo refs/heads/$branch already exists at $branch_actual" + echo "RUN releng-release-create-venv.sh" + source jjb/releng/releng-release-tagging.sh + else + echo "This is a branching job" + source jjb/releng/releng-release-create-branch.sh + fi + + done < <(python releases/scripts/repos.py -b -f "$release_file") +done diff --git a/jjb/releng/releng-release-create-branch.sh b/jjb/releng/releng-release-create-branch.sh index 663ff19e7..7e91d5ace 100644 --- a/jjb/releng/releng-release-create-branch.sh +++ b/jjb/releng/releng-release-create-branch.sh @@ -9,6 +9,10 @@ ############################################################################## set -xe +GIT_URL=${GIT_URL:-https://gerrit.opnfv.org/gerrit} +STREAM=${STREAM:-'nostream'} +RELEASE_FILES=$(git diff HEAD^1 --name-only -- "releases/$STREAM") + # Configure the git user/email as we'll be pushing up changes git config --global user.name "jenkins-ci" git config --global user.email "jenkins-opnfv-ci@opnfv.org" @@ -17,34 +21,53 @@ git config --global user.email "jenkins-opnfv-ci@opnfv.org" curl -kLo .git/hooks/commit-msg https://gerrit.opnfv.org/gerrit/tools/hooks/commit-msg chmod +x .git/hooks/commit-msg -# Activate virtualenv, supressing shellcheck warning -# shellcheck source=/dev/null -. $WORKSPACE/venv/bin/activate -pip install -r releases/scripts/requirements.txt +clone_repo(){ +echo "--> Cloning $repo" +if [ ! -d $repo ]; then + git clone $GIT_URL/$repo.git $repo +fi +} -STREAM=${STREAM:-'nostream'} -RELEASE_FILES=$(git diff HEAD^1 --name-only -- "releases/$STREAM") +check_if_ref_exists(){ +clone_repo +cd "$repo" +if git rev-list refs/heads/master | grep "$ref"; then + echo "$ref exists" + REF_EXISTS=true + cd - +else + echo "$ref Does not exist please submit a valid ref for branching" + exit 1 +fi +} -for release_file in $RELEASE_FILES; do +run_merge(){ +unset NEW_FILES +if [[ $REF_EXISTS = true && "$JOB_NAME" =~ "merge" ]]; then + ssh -n -f -p 29418 gerrit.opnfv.org gerrit create-branch "$repo" "$branch" "$ref" + python releases/scripts/create_jobs.py -f $release_file + NEW_FILES=$(git status --porcelain --untracked=no | cut -c4-) +fi +if [ -n "$NEW_FILES" ]; then + git add $NEW_FILES + git commit -sm "Create Stable Branch Jobs for $(basename $release_file .yaml)" + git push origin HEAD:refs/for/master +fi +} +main(){ +for release_file in $RELEASE_FILES; do while read -r repo branch ref; do - echo "$repo" "$branch" "$ref" branches="$(git ls-remote "https://gerrit.opnfv.org/gerrit/$repo.git" "refs/heads/$branch")" - if ! [ -z "$branches" ]; then echo "refs/heads/$branch already exists at $ref ($branches)" else - ssh -n -f -p 29418 gerrit.opnfv.org gerrit create-branch "$repo" "$branch" "$ref" + run_merge fi - done < <(python releases/scripts/repos.py -b -f "$release_file") - - python releases/scripts/create_jobs.py -f $release_file - NEW_FILES=$(git status --porcelain --untracked=no | cut -c4-) - if [ -n "$NEW_FILES" ]; then - git add $NEW_FILES - git commit -sm "Create Stable Branch Jobs for $(basename $release_file .yaml)" - git push origin HEAD:refs/for/master - fi done +} + +check_if_ref_exists +main diff --git a/jjb/releng/releng-release-jobs.yaml b/jjb/releng/releng-release-jobs.yaml index 3136d7855..d79771fea 100644 --- a/jjb/releng/releng-release-jobs.yaml +++ b/jjb/releng/releng-release-jobs.yaml @@ -66,7 +66,7 @@ builders: - shell: !include-raw-escape: - releng-release-create-venv.sh - - releng-release-tagging.sh + - branch-or-tag.sh publishers: - email-jenkins-admins-on-failure @@ -106,8 +106,7 @@ builders: - shell: !include-raw-escape: - releng-release-create-venv.sh - - releng-release-tagging.sh - - releng-release-create-branch.sh + - branch-or-tag.sh publishers: - email-jenkins-admins-on-failure diff --git a/jjb/releng/releng-release-tagging.sh b/jjb/releng/releng-release-tagging.sh index f8cf9c8ea..88927e54d 100644 --- a/jjb/releng/releng-release-tagging.sh +++ b/jjb/releng/releng-release-tagging.sh @@ -15,10 +15,6 @@ RELEASE_FILES=$(git diff HEAD^1 --name-only -- "releases/$STREAM") echo "--> Verifying $RELEASE_FILES." for release_file in $RELEASE_FILES; do - # Verify the release file schema - python releases/scripts/verify_schema.py \ - -s releases/schema.yaml \ - -y $release_file # Verify tag for each repo exist and are attached to commits on stable-branch while read -r repo tag ref diff --git a/releases/gambia/sandbox.yaml b/releases/gambia/sandbox.yaml index 16f2df24e..d08bc3994 100644 --- a/releases/gambia/sandbox.yaml +++ b/releases/gambia/sandbox.yaml @@ -7,3 +7,11 @@ branches: - name: stable/gambia location: sandbox: c2012f5b642f17e6024db631b833414114a329d5 + +releases: + - version: opnfv-7.0.0 + location: + sandbox: c2012f5b642f17e6024db631b833414114a329d5 + - version: opnfv-7.0.1 + location: + sandbox: c2012f5b642f17e6024db631b833414114a329d5