summaryrefslogtreecommitdiffstats
path: root/jjb/dovetail/dovetail-artifacts-upload.yml
blob: 1a6935646eaae12e84f4a313febb04de57d3b316 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
[]
color: #008800 } /* Operator.Word */ .highlight .w { color: #bbbbbb } /* Text.Whitespace */ .highlight .mb { color: #0000DD; font-weight: bold } /* Literal.Number.Bin */ .highlight .mf { color: #0000DD; font-weight: bold } /* Literal.Number.Float */ .highlight .mh { color: #0000DD; font-weight: bold } /* Literal.Number.Hex */ .highlight .mi { color: #0000DD; font-weight: bold } /* Literal.Number.Integer */ .highlight .mo { color: #0000DD; font-weight: bold } /* Literal.Number.Oct */ .highlight .sa { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Affix */ .highlight .sb { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Backtick */ .highlight .sc { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Char */ .highlight .dl { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Delimiter */ .highlight .sd { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Doc */ .highlight .s2 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Double */ .highlight .se { color: #0044dd; background-color: #fff0f0 } /* Literal.String.Escape */ .highlight .sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */ .highlight .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */ .highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */ .highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */ .highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */ .highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */ .highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */ .highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */ .highlight .vc { color: #336699 } /* Name.Variable.Class */ .highlight .vg { color: #dd7700 } /* Name.Variable.Global */ .highlight .vi { color: #3333bb } /* Name.Variable.Instance */ .highlight .vm { color: #336699 } /* Name.Variable.Magic */ .highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */ }
############################################
# dovetail upload artifacts job
############################################
- project:
    name: dovetail-artifacts-upload

    project: 'dovetail'

    jobs:
        - 'dovetail-{image}-artifacts-upload-{stream}'

    stream:
        - master:
            branch: '{stream}'
            gs-pathname: ''
            disabled: false

    image:
        - 'dovetail'
        - 'functest'
        - 'yardstick'

#############################################
# job template
#############################################

- job-template:
    name: 'dovetail-{image}-artifacts-upload-{stream}'


    disabled: '{obj:disabled}'

    concurrent: true

    properties:
        - logrotate-default
        - throttle:
            enabled: true
            max-total: 1
            max-per-node: 1
            option: 'project'

    parameters:
        - project-parameter:
            project: '{project}'
        - gerrit-parameter:
            branch: '{branch}'
        - 'opnfv-build-ubuntu-defaults'
        - dovetail-parameter:
            gs-pathname: '{gs-pathname}'
            image: '{image}'
            branch: '{branch}'

    scm:
        - git-scm

    builders:
        - 'dovetail-builder-artifacts-upload'
        - 'dovetail-workspace-cleanup'

####################
# parameter macros
####################
- parameter:
    name: dovetail-parameter
    parameters:
        - string:
            name: CACHE_DIR
            default: $WORKSPACE/cache{gs-pathname}
            description: "the cache to store packages downloaded"
        - string:
            name: STORE_URL
            default: gs://artifacts.opnfv.org/dovetail{gs-pathname}
            description: "LF artifacts url for storage of dovetail packages"
        - string:
            name: DOCKER_REPO_NAME
            default: opnfv/{image}
            description: "docker repo name"
        - string:
            name: DOCKER_TAG
            default: latest
            description: "docker image tag of which will be uploaded to artifacts"
        - string:
            name: STORE_FILE_NAME
            default: image_{image}_{branch}_$BUILD_ID.docker
            description: "stored file name"

####################################
#builders for dovetail project
####################################
- builder:
    name: dovetail-builder-artifacts-upload
    builders:
        - shell:
            !include-raw: ./dovetail-artifacts-upload.sh

- builder:
    name: dovetail-workspace-cleanup
    builders:
        - shell: |
            #!/bin/bash
            set -o errexit

            echo "Dovetail: cleanup cache used for storage downloaded packages"

            /bin/rm -rf $CACHE_DIR

            # Remove previous running containers if exist
            if [[ -n "$(docker ps -a | grep $DOCKER_REPO_NAME)" ]]; then
                echo "Removing existing $DOCKER_REPO_NAME containers..."
                docker ps -a | grep $DOCKER_REPO_NAME | awk '{print $1}' | xargs docker rm -f
                t=60
                # Wait max 60 sec for containers to be removed
                while [[ $t -gt 0 ]] && [[ -n "$(docker ps| grep $DOCKER_REPO_NAME)" ]]; do
                    sleep 1
                    let t=t-1
                done
            fi

            # Remove existing images if exist
            if [[ -n "$(docker images | grep $DOCKER_REPO_NAME)" ]]; then
                echo "Docker images to remove:"
                docker images | head -1 && docker images | grep $DOCKER_REPO_NAME
                image_tags=($(docker images | grep $DOCKER_REPO_NAME | awk '{print $2}'))
                for tag in "${image_tags[@]}"; do
                    if [[ -n "$(docker images|grep $DOCKER_REPO_NAME|grep $tag)" ]]; then
                        echo "Removing docker image $DOCKER_REPO_NAME:$tag..."
                        docker rmi -f $DOCKER_REPO_NAME:$tag
                    fi
                done
            fi