X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=jjb%2Ffunctest%2Fxtesting.yaml;h=cc9ec07ba2a4c9325027ecbc294a9a4afa627a96;hb=524ad3286a89824680eb24a1540be29595bdcc57;hp=0a0e60514952328f68191153b3923360e9d5bff7;hpb=9341d2e37026c0d65ede57cd417e91db93ea2e03;p=releng.git diff --git a/jjb/functest/xtesting.yaml b/jjb/functest/xtesting.yaml index 0a0e60514..cc9ec07ba 100644 --- a/jjb/functest/xtesting.yaml +++ b/jjb/functest/xtesting.yaml @@ -5,86 +5,182 @@ - xtesting-params: &xtesting-params name: 'xtesting-params' + repo: 'opnfv' + port: tag: - - latest - - gambia - - hunter + - latest: + branch: master + slave: lf-virtual1 + - jerma: + branch: stable/jerma + slave: lf-virtual1 + - iruya: + branch: stable/iruya + slave: lf-virtual1 + - hunter: + branch: stable/hunter + slave: lf-virtual1 - parameter: name: xtesting-slave parameters: - label: name: slave - default: opnfv-build-ubuntu + default: '{slave}' -- job-template: - name: '{repo}-{container}-{tag}-pull' +- parameter: + name: xtesting-branch parameters: - - xtesting-slave + - string: + name: branch + default: '{branch}' + +- xtesting-containers: &xtesting-containers + name: 'xtesting-containers' + repo: '{repo}' + port: '{port}' + container: '{container}' + tag: '{tag}' + +- xtesting-run-containers: &xtesting-run-containers + name: 'xtesting-build-containers' + <<: *xtesting-containers + test: '{test}' + +- xtesting-build-containers: &xtesting-build-containers + name: 'xtesting-build-containers' + <<: *xtesting-containers + ref_arg: '{ref_arg}' + path: '{path}' + +- builder: + name: xtesting-pull-containers builders: - shell: | - if [ "{port}" = "None" ]; then + set +x + if [ "{repo}" = "_" ]; then + image={container}:{tag} + elif [ "{port}" = "None" ]; then image={repo}/{container}:{tag} else image={repo}:{port}/{container}:{tag} fi sudo docker pull $image +- builder: + name: xtesting-build-containers + builders: + - shell: | + set +x + if [ "{repo}" = "_" ]; then + image={container}:{tag} + elif [ "{port}" = "None" ]; then + image={repo}/{container}:{tag} + else + image={repo}:{port}/{container}:{tag} + fi + if [ "{ref_arg}" = "None" ]; then + build_arg="" + else + build_arg="--build-arg {ref_arg}={ref}" + fi + cd {path} + sudo docker build $build_arg \ + --pull=false --no-cache --force-rm=true \ + -t $image . + +- builder: + name: xtesting-run-containers + builders: + - shell: | + set +ex + [ ! -z "$WORKSPACE" ] && sudo rm -rf $WORKSPACE/* || true + if [ "{repo}" = "_" ]; then + image={container}:{tag} + elif [ "{port}" = "None" ]; then + image={repo}/{container}:{tag} + else + image={repo}:{port}/{container}:{tag} + fi + sudo docker run --rm \ + -v $WORKSPACE/../$JOB_NAME/results:/var/lib/xtesting/results \ + -e DEBUG=true \ + $image run_tests -t {test} + res=$? + gsutil -m cp -r $WORKSPACE/ \ + gs://artifacts.opnfv.org/xtesting/$JOB_NAME-$BUILD_ID > /dev/null 2>&1 + find $WORKSPACE -type f \ + -printf \ + "http://artifacts.opnfv.org/xtesting/$JOB_NAME-$BUILD_ID/%P\n" + exit $res + +- builder: + name: xtesting-remove-images + builders: + - shell: | + set +x + if [ "{repo}" = "_" ]; then + image={container}:{tag} + elif [ "{port}" = "None" ]; then + image={repo}/{container}:{tag} + else + image={repo}:{port}/{container}:{tag} + fi + sudo docker rmi $image || true + +- scm: + name: xtesting-scm + scm: + - git: + url: https://gerrit.opnfv.org/gerrit/functest-xtesting + refspec: '+refs/changes/*:refs/changes/*' + branches: + - '{ref}' + +- job-template: + name: 'xtesting-{repo}-{container}-{tag}-pull' + parameters: + - xtesting-slave: + slave: '{slave}' + builders: + - xtesting-pull-containers: + <<: *xtesting-containers + - project: - name: 'opnfv-xtesting-pull' + name: 'xtesting-opnfv-xtesting-pull' <<: *xtesting-params - repo: 'opnfv' - port: container: 'xtesting' jobs: - - '{repo}-{container}-{tag}-pull' + - 'xtesting-{repo}-{container}-{tag}-pull' - job-template: - name: '{repo}-{container}-{tag}-rmi' + name: 'xtesting-{repo}-{container}-{tag}-rmi' parameters: - - xtesting-slave + - xtesting-slave: + slave: '{slave}' builders: - - shell: sudo docker rmi {repo}/{container}:{tag} || true + - xtesting-remove-images: + <<: *xtesting-containers - project: - name: 'opnfv-xtesting-rmi' + name: 'xtesting-opnfv-xtesting-rmi' <<: *xtesting-params - repo: 'opnfv' - port: container: 'xtesting' jobs: - - '{repo}-{container}-{tag}-rmi' + - 'xtesting-{repo}-{container}-{tag}-rmi' - job-template: - name: '{repo}-{container}-{tag}-{test}-run' + name: 'xtesting-{repo}-{container}-{tag}-{test}-run' parameters: - - xtesting-slave + - xtesting-slave: + slave: '{slave}' builders: - - shell: | - set +ex - rm -rf /var/jenkins_home/workspace/$JOB_NAME/* - if [ "{port}" = "None" ]; then - image={repo}/{container}:{tag} - else - image={repo}:{port}/{container}:{tag} - fi - sudo docker run --rm \ - --link testapi:testapi \ - -v /data/jenkins/workspace/$JOB_NAME/results:/var/lib/xtesting/results \ - $image run_tests -t {test} - res=$? - gsutil -m cp -r /var/jenkins_home/workspace/$JOB_NAME/ \ - gs://artifacts.opnfv.org/xtesting/$JOB_NAME-$BUILD_ID > /dev/null - find /var/jenkins_home/workspace/$JOB_NAME/ -type f \ - -printf \ - "http://artifacts.opnfv.org/xtesting/$JOB_NAME-$BUILD_ID/%P\n" - exit $res + - xtesting-run-containers: + <<: *xtesting-run-containers - project: - name: 'opnfv-xtesting' + name: 'xtesting-opnfv-xtesting' <<: *xtesting-params - repo: 'opnfv' - port: container: 'xtesting' test: - first @@ -92,50 +188,247 @@ - third - fourth - fifth + - sixth + exclude: + - tag: hunter + test: sixth + - tag: iruya + test: sixth jobs: - - '{repo}-{container}-{tag}-{test}-run' + - 'xtesting-{repo}-{container}-{tag}-{test}-run' - job-template: - name: 'xtesting-{tag}' + name: 'xtesting-{tag}-daily' project-type: multijob triggers: - timed: '@daily' parameters: - - xtesting-slave + - xtesting-slave: + slave: '{slave}' properties: - build-blocker: use-build-blocker: true blocking-level: 'NODE' blocking-jobs: - - 'xtesting-.*' + - '^xtesting-{tag}-(daily|check|gate)$' builders: - multijob: name: remove former images projects: - - name: 'opnfv-xtesting-{tag}-rmi' + - name: 'xtesting-opnfv-xtesting-{tag}-rmi' + <<: *xtesting-jobs - multijob: name: pull containers projects: - - name: 'opnfv-xtesting-{tag}-pull' + - name: 'xtesting-opnfv-xtesting-{tag}-pull' + <<: *xtesting-jobs + - multijob: + name: opnfv/xtesting:{tag} + projects: + - name: 'xtesting-opnfv-xtesting-{tag}-first-run' + <<: *xtesting-jobs + - name: 'xtesting-opnfv-xtesting-{tag}-second-run' + <<: *xtesting-jobs + - name: 'xtesting-opnfv-xtesting-{tag}-third-run' + <<: *xtesting-jobs + - name: 'xtesting-opnfv-xtesting-{tag}-fourth-run' + <<: *xtesting-jobs + - name: 'xtesting-opnfv-xtesting-{tag}-fifth-run' + <<: *xtesting-jobs + - name: 'xtesting-opnfv-xtesting-{tag}-sixth-run' + <<: *xtesting-jobs + +- job-template: + name: 'xtesting-{repo}-{container}-{tag}-gate' + parameters: + - xtesting-slave: + slave: '{slave}' + scm: + - xtesting-scm: + ref: $GERRIT_REFSPEC + builders: + - xtesting-build-containers: + <<: *xtesting-build-containers + ref: $GERRIT_REFSPEC + +- job-template: + name: 'xtesting-{repo}-{container}-{tag}-check' + parameters: + - xtesting-slave: + slave: '{slave}' + - xtesting-branch: + branch: '{branch}' + scm: + - xtesting-scm: + ref: $branch + builders: + - xtesting-build-containers: + <<: *xtesting-build-containers + ref: $branch + +- project: + name: 'xtesting-_-alpine-3.10-rmi' + repo: _ + port: + container: alpine + tag: '3.10' + slave: master + jobs: + - 'xtesting-{repo}-{container}-{tag}-rmi' + +- project: + name: 'xtesting-_-alpine-3.10-pull' + repo: _ + port: + container: alpine + tag: '3.10' + slave: master + jobs: + - 'xtesting-{repo}-{container}-{tag}-pull' + +- project: + name: xtesting-opnfv-xtesting-{tag}-build + <<: *xtesting-params + container: xtesting + ref_arg: BRANCH + path: docker + jobs: + - 'xtesting-{repo}-{container}-{tag}-gate' + - 'xtesting-{repo}-{container}-{tag}-check' + +- job-template: + name: 'xtesting-{tag}-check' + project-type: multijob + parameters: + - xtesting-slave: + slave: '{slave}' + - xtesting-branch: + branch: '{branch}' + properties: + - build-blocker: + use-build-blocker: true + blocking-level: 'NODE' + blocking-jobs: + - '^xtesting-{tag}-(daily|check|gate)$' + builders: + - multijob: + name: remove former images + projects: + - name: 'xtesting-opnfv-xtesting-{tag}-rmi' + <<: *xtesting-jobs + - multijob: + name: remove dependencies + projects: + - name: 'xtesting-_-alpine-3.10-rmi' + <<: *xtesting-jobs + - multijob: + name: pull dependencies + projects: + - name: 'xtesting-_-alpine-3.10-pull' + <<: *xtesting-jobs + - multijob: + name: opnfv/xtesting + projects: + - name: 'xtesting-opnfv-xtesting-{tag}-check' + <<: *xtesting-jobs + - multijob: + name: opnfv/xtesting:{tag} + projects: + - name: 'xtesting-opnfv-xtesting-{tag}-first-run' + <<: *xtesting-jobs + - name: 'xtesting-opnfv-xtesting-{tag}-second-run' + <<: *xtesting-jobs + - name: 'xtesting-opnfv-xtesting-{tag}-third-run' + <<: *xtesting-jobs + - name: 'xtesting-opnfv-xtesting-{tag}-fourth-run' + <<: *xtesting-jobs + - name: 'xtesting-opnfv-xtesting-{tag}-fifth-run' + <<: *xtesting-jobs + - name: 'xtesting-opnfv-xtesting-{tag}-sixth-run' + <<: *xtesting-jobs + +- trigger: + name: xtesting-patchset-created + triggers: + - gerrit: + server-name: 'gerrit.opnfv.org' + trigger-on: + - patchset-created-event + - comment-added-contains-event: + comment-contains-value: 'recheck' + - comment-added-contains-event: + comment-contains-value: 'reverify' + projects: + - project-compare-type: 'ANT' + project-pattern: 'functest-xtesting' + branches: + - branch-compare-type: 'ANT' + branch-pattern: '**/{branch}' + skip-vote: + successful: false + failed: false + unstable: false + notbuilt: false + +- job-template: + name: 'xtesting-{tag}-gate' + project-type: multijob + triggers: + - xtesting-patchset-created: + branch: '{branch}' + parameters: + - xtesting-slave: + slave: '{slave}' + properties: + - build-blocker: + use-build-blocker: true + blocking-level: 'NODE' + blocking-jobs: + - '^xtesting-{tag}-(daily|check|gate)$' + builders: + - multijob: + name: remove former images + projects: + - name: 'xtesting-opnfv-xtesting-{tag}-rmi' + <<: *xtesting-jobs + - multijob: + name: remove dependencies + projects: + - name: 'xtesting-_-alpine-3.10-rmi' + <<: *xtesting-jobs + - multijob: + name: pull dependencies + projects: + - name: 'xtesting-_-alpine-3.10-pull' + <<: *xtesting-jobs + - multijob: + name: opnfv/xtesting + projects: + - name: 'xtesting-opnfv-xtesting-{tag}-gate' + <<: *xtesting-jobs - multijob: name: opnfv/xtesting:{tag} projects: - - name: 'opnfv-xtesting-{tag}-first-run' + - name: 'xtesting-opnfv-xtesting-{tag}-first-run' + <<: *xtesting-jobs + - name: 'xtesting-opnfv-xtesting-{tag}-second-run' <<: *xtesting-jobs - - name: 'opnfv-xtesting-{tag}-second-run' + - name: 'xtesting-opnfv-xtesting-{tag}-third-run' <<: *xtesting-jobs - - name: 'opnfv-xtesting-{tag}-third-run' + - name: 'xtesting-opnfv-xtesting-{tag}-fourth-run' <<: *xtesting-jobs - - name: 'opnfv-xtesting-{tag}-fourth-run' + - name: 'xtesting-opnfv-xtesting-{tag}-fifth-run' <<: *xtesting-jobs - - name: 'opnfv-xtesting-{tag}-fifth-run' + - name: 'xtesting-opnfv-xtesting-{tag}-sixth-run' <<: *xtesting-jobs - project: name: 'xtesting' <<: *xtesting-params jobs: - - 'xtesting-{tag}' + - 'xtesting-{tag}-daily' + - 'xtesting-{tag}-check' + - 'xtesting-{tag}-gate' - view: name: xtesting @@ -147,4 +440,4 @@ - last-success - last-failure - last-duration - regex: xtesting-.* + regex: ^xtesting-[a-z]+-(daily|check|gate)$