diff options
author | jose.lausuch <jose.lausuch@ericsson.com> | 2016-11-22 16:29:20 +0100 |
---|---|---|
committer | jose.lausuch <jose.lausuch@ericsson.com> | 2016-11-28 10:24:21 +0100 |
commit | d84b20c90908bfa4e2e544f06b422226b67e2b26 (patch) | |
tree | 7c918003f8390a2b140822b237763b7583a19b50 /jjb | |
parent | 3dd256b66f19f382eb3cdb27719af48c84e84804 (diff) |
Refactor Docker build jobs
- Remove incremental tags for stable branches
- Use "latest" or "stable" tags only
- Have a single job template for all projects
More info here: https://wiki.opnfv.org/display/INF/Docker+handling+in+CI
Change-Id: Ibce3ef2faee136f56f0eab12dfe7a93c267db854
Signed-off-by: jose.lausuch <jose.lausuch@ericsson.com>
Diffstat (limited to 'jjb')
-rw-r--r-- | jjb/opnfv/opnfv-docker.sh | 52 | ||||
-rw-r--r-- | jjb/opnfv/opnfv-docker.yml | 153 |
2 files changed, 42 insertions, 163 deletions
diff --git a/jjb/opnfv/opnfv-docker.sh b/jjb/opnfv/opnfv-docker.sh index e637f7b32..e0fbb7564 100644 --- a/jjb/opnfv/opnfv-docker.sh +++ b/jjb/opnfv/opnfv-docker.sh @@ -20,7 +20,7 @@ echo if [[ -n $(ps -ef|grep 'docker build'|grep -v grep) ]]; then echo "There is already another build process in progress:" echo $(ps -ef|grep 'docker build'|grep -v grep) - # Abort this job since it will colide and might mess up the current one. + # Abort this job since it will collide and might mess up the current one. echo "Aborting..." exit 1 fi @@ -51,20 +51,6 @@ if [[ -n "$(docker images | grep $DOCKER_REPO_NAME)" ]]; then done fi -# If we just want to update the latest_stable image -if [[ "$UPDATE_LATEST_STABLE" == "true" ]]; then - echo "Pulling $DOCKER_REPO_NAME:$STABLE_TAG ..." - docker pull $DOCKER_REPO_NAME:$STABLE_TAG - if [[ $? -ne 0 ]]; then - echo "ERROR: The image $DOCKER_REPO_NAME with tag $STABLE_TAG does not exist." - exit 1 - fi - docker tag $DOCKER_REPO_NAME:$STABLE_TAG $DOCKER_REPO_NAME:latest_stable - echo "Pushing $DOCKER_REPO_NAME:latest_stable ..." - docker push $DOCKER_REPO_NAME:latest_stable - exit 0 -fi - # cd to directory where Dockerfile is located cd $WORKSPACE/docker @@ -78,35 +64,20 @@ branch="${GIT_BRANCH##origin/}" echo "Current branch: $branch" if [[ "$branch" == "master" ]]; then - DOCKER_TAG="master" - DOCKER_BRANCH_TAG="latest" + DOCKER_TAG="latest" else - git clone https://gerrit.opnfv.org/gerrit/releng $WORKSPACE/releng - - DOCKER_TAG=$($WORKSPACE/releng/utils/calculate_version.sh -t docker \ - -n $DOCKER_REPO_NAME) - DOCKER_BRANCH_TAG="stable" - - ret_val=$? - if [[ $ret_val -ne 0 ]]; then - echo "Error retrieving the version tag." - exit 1 - fi + DOCKER_TAG="stable" fi -echo "Tag version to be build and pushed: $DOCKER_TAG" - # Start the build -echo "Building docker image: $DOCKER_REPO_NAME:$DOCKER_BRANCH_TAG" +echo "Building docker image: $DOCKER_REPO_NAME:$DOCKER_TAG" +echo "--------------------------------------------------------" +echo +cmd="docker build --no-cache -t $DOCKER_REPO_NAME:$DOCKER_TAG --build-arg BRANCH=$branch ." -if [[ $DOCKER_REPO_NAME == *"functest"* ]]; then - docker build --no-cache -t $DOCKER_REPO_NAME:$DOCKER_BRANCH_TAG --build-arg BRANCH=$branch . -else - docker build --no-cache -t $DOCKER_REPO_NAME:$DOCKER_BRANCH_TAG . -fi +echo ${cmd} +${cmd} -echo "Creating tag '$DOCKER_TAG'..." -docker tag $DOCKER_REPO_NAME:$DOCKER_BRANCH_TAG $DOCKER_REPO_NAME:$DOCKER_TAG # list the images echo "Available images are:" @@ -117,10 +88,5 @@ if [[ "$PUSH_IMAGE" == "true" ]]; then echo "Pushing $DOCKER_REPO_NAME:$DOCKER_TAG to the docker registry..." echo "--------------------------------------------------------" echo - # Push to the Dockerhub repository - echo "Pushing $DOCKER_REPO_NAME:$DOCKER_BRANCH_TAG ..." - docker push $DOCKER_REPO_NAME:$DOCKER_BRANCH_TAG - - echo "Pushing $DOCKER_REPO_NAME:$DOCKER_TAG ..." docker push $DOCKER_REPO_NAME:$DOCKER_TAG fi diff --git a/jjb/opnfv/opnfv-docker.yml b/jjb/opnfv/opnfv-docker.yml index f313b3b92..0df0ddf6f 100644 --- a/jjb/opnfv/opnfv-docker.yml +++ b/jjb/opnfv/opnfv-docker.yml @@ -6,31 +6,44 @@ name: opnfv-docker + master: &master + stream: master + branch: '{stream}' + disabled: false + colorado: &colorado + stream: colorado + branch: 'stable/{stream}' + disabled: false + project: - - 'bottlenecks' - - 'cperf' - - 'functest' - - 'storperf' - - 'qtip' + # projects with jobs for master + - 'bottlenecks': + <<: *master + - 'cperf': + <<: *master + - 'dovetail': + <<: *master + - 'functest': + <<: *master + - 'qtip': + <<: *master + - 'storperf': + <<: *master + - 'yardstick': + <<: *master + # projects with jobs for stable + - 'bottlenecks': + <<: *colorado + - 'functest': + <<: *colorado + - 'storperf': + <<: *colorado + - 'yardstick': + <<: *colorado jobs: - '{project}-docker-build-push-{stream}' - - 'yardstick-docker-build-push-{stream}' - #dovetail not sync with release, an independent job - #only master by now, will adjust accordingly in future - - 'dovetail-docker-build-push-{dovetailstream}' - stream: - - master: - branch: '{stream}' - disabled: false - - colorado: - branch: 'stable/{stream}' - disabled: false - dovetailstream: - - master: - branch: '{dovetailstream}' - disabled: false ######################## # job templates @@ -49,20 +62,9 @@ default: "true" description: "To enable/disable pushing the image to Dockerhub." - string: - name: BASE_VERSION - default: "colorado.0" - description: "Base version to be used." - - string: name: DOCKER_REPO_NAME default: "opnfv/{project}" description: "Dockerhub repo to be pushed to." - - string: - name: UPDATE_LATEST_STABLE - default: "false" - description: "This will update the latest_stable image only." - - string: - name: STABLE_TAG - description: "If above option is true, this is the tag to be pulled." scm: - git-scm: @@ -78,92 +80,3 @@ - pollscm: cron: "*/30 * * * *" -- job-template: - name: 'yardstick-docker-build-push-{stream}' - - disabled: '{obj:disabled}' - - parameters: - - project-parameter: - project: 'yardstick' - - 'opnfv-build-ubuntu-defaults' - - string: - name: PUSH_IMAGE - default: "true" - description: "To enable/disable pushing the image to Dockerhub." - - string: - name: BASE_VERSION - default: "colorado.0" - description: "Base version to be used." - - string: - name: DOCKER_REPO_NAME - default: "opnfv/yardstick" - description: "Dockerhub repo to be pushed to." - - string: - name: UPDATE_LATEST_STABLE - default: "false" - description: "This will update the latest_stable image only." - - string: - name: STABLE_TAG - description: "If above option is true, this is the tag to be pulled." - - scm: - - git-scm: - credentials-id: '{ssh-credentials}' - refspec: '' - branch: '{branch}' - - builders: - - shell: - !include-raw-escape: ./opnfv-docker.sh - - triggers: - - pollscm: - cron: "*/30 * * * *" - -- job-template: - name: 'dovetail-docker-build-push-{dovetailstream}' - - disabled: '{obj:disabled}' - - parameters: - - project-parameter: - project: 'dovetail' - - 'opnfv-build-ubuntu-defaults' - - string: - name: PUSH_IMAGE - default: "true" - description: "To enable/disable pushing the image to Dockerhub." - #BASE_VERSION parameter is used for version control - #by now, only master branch is used, this parameter takes no effect - #once branch control settled, should be adjusted togather with - #opnfv-docker.sh and caculate_version.sh - - string: - name: BASE_VERSION - default: "1.0" - description: "Base version to be used." - - string: - name: DOCKER_REPO_NAME - default: "opnfv/dovetail" - description: "Dockerhub repo to be pushed to." - - string: - name: UPDATE_LATEST_STABLE - default: "false" - description: "This will update the latest_stable image only." - - string: - name: STABLE_TAG - description: "If above option is true, this is the tag to be pulled." - - scm: - - git-scm: - credentials-id: '{ssh-credentials}' - refspec: '' - branch: '{branch}' - - builders: - - shell: - !include-raw-escape: ./opnfv-docker.sh - - triggers: - - pollscm: - cron: "*/30 * * * *" |