diff options
author | Jan-Simon Moeller <jsmoeller@linuxfoundation.org> | 2017-06-20 09:47:35 +0000 |
---|---|---|
committer | Gerrit Code Review <gerrit@automotivelinux.org> | 2017-06-20 09:47:35 +0000 |
commit | 8f551bf3eb8a3af4a4754b2966451745fb100bde (patch) | |
tree | 2b8cd2780f12b9b64fd0c6d2b9a47bf9a2b140b0 /jjb | |
parent | 6ef9e145b46df242ecd3f82dea238de44a62a4c9 (diff) | |
parent | a32358763fecf10bda78806374aba34b51befcf9 (diff) |
Merge "Add packer verify and merge jobs for AGL"
Diffstat (limited to 'jjb')
-rw-r--r-- | jjb/ci-management/ci-management.yaml | 132 | ||||
-rw-r--r-- | jjb/global-defaults.yaml | 3 | ||||
-rw-r--r-- | jjb/global-macros.yaml | 55 |
3 files changed, 189 insertions, 1 deletions
diff --git a/jjb/ci-management/ci-management.yaml b/jjb/ci-management/ci-management.yaml index a519b75f..07811ea5 100644 --- a/jjb/ci-management/ci-management.yaml +++ b/jjb/ci-management/ci-management.yaml @@ -4,10 +4,20 @@ jobs: - 'ci-management-verify-jjb' - 'ci-management-merge' + - 'ci-management-verify-packer' + - 'ci-management-merge-packer-{platforms}-{templates}' project: 'ci-management' branch: master + platforms: + - ubuntu-16.04 + + templates: + - basebuild-agl-test-slave + - basebuild-control-slave + - basebuild + - job-template: name: ci-management-verify-jjb @@ -35,6 +45,7 @@ - gerrit-trigger-patch-submitted: name: '{project}' branch: '{branch}' + files: '**/**' builders: - shell: | @@ -65,7 +76,7 @@ choosing-strategy: 'default' wrappers: - - agl-infra-wrappers: + - agl-infra-wrappers: build-timeout: '{build-timeout}' triggers: @@ -76,3 +87,122 @@ builders: - shell: !include-raw-escape: include-raw-jjb-update.sh + + +- job-template: + name: 'ci-management-verify-packer' + project-type: freestyle + node: control-slave + concurrent: true + + properties: + - agl-infra-properties: + build-days-to-keep: '{build-days-to-keep}' + build-num-to-keep: '{build-num-to-keep}' + + + parameters: + - agl-infra-parameters: + project: '{project}' + branch: 'master' + refspec: 'refs/heads/master' + + scm: + - gerrit-trigger-scm: + refspec: '$GERRIT_REFSPEC' + choosing-strategy: 'gerrit' + + wrappers: + - agl-infra-wrappers: + build-timeout: '{build-timeout}' + + triggers: + - gerrit-trigger-patch-submitted: + name: 'AGL/AGL-repo' + branch: '{branch}' + files: 'packer/**' + + builders: + - packer-validate: + + publishers: + - archive: + artifacts: 'packer/*.log' + allow-empty: 'true' + only-if-success: 'true' + +- job-template: + name: 'ci-management-merge-packer-{platforms}-{templates}' + project-type: freestyle + node: control-slave + + properties: + - agl-infra-properties: + build-days-to-keep: '{build-days-to-keep}' + build-num-to-keep: '{build-num-to-keep}' + + parameters: + - agl-infra-parameters: + project: '{project}' + branch: 'master' + refspec: 'refs/heads/master' + + scm: + - gerrit-trigger-scm: + refspec: '$GERRIT_REFSPEC' + choosing-strategy: 'gerrit' + + wrappers: + - ssh-agent-credentials: + users: + - '{ssh-credentials}' + - agl-infra-wrappers: + build-timeout: '{build-timeout}' + + triggers: + - timed: '00 10 1 * *' + - gerrit: + trigger-on: + - change-merged-event + - comment-added-contains-event: + comment-contains-value: 'remerge' + projects: + - project-compare-type: 'ANT' + project-pattern: 'ci-management' + branches: + - branch-compare-type: 'ANT' + branch-pattern: '**/{branch}' + file-paths: + - compare-type: ANT + pattern: 'packer/vars/{platforms}.json' + - compare-type: ANT + pattern: 'packer/templates/{templates}.json' + - compare-type: ANT + pattern: 'packer/provision/{templates}.sh' + - compare-type: ANT + pattern: 'packer/provision/system_reseal.sh' + - compare-type: ANT + pattern: 'packer/provision/rh-user_data.sh' + - compare-type: ANT + pattern: 'packer/provision/baseline.sh' + - compare-type: ANT + pattern: 'packer/provision/null_data.sh' + - compare-type: ANT + pattern: 'packer/provision/agl_dependencies.sh' + - compare-type: ANT + pattern: 'packer/provision/agl_mirror.sh' + - compare-type: ANT + pattern: 'packer/provision/basebuild-no-tmpfs.sh' + + + builders: + - packer-validate: + - packer-build: + platform: '{platforms}' + template: '{templates}' + + publishers: + - archive: + artifacts: 'packer/*.log' + allow-empty: 'true' + only-if-success: 'true' diff --git a/jjb/global-defaults.yaml b/jjb/global-defaults.yaml index 4e25be0f..e019b2ff 100644 --- a/jjb/global-defaults.yaml +++ b/jjb/global-defaults.yaml @@ -11,3 +11,6 @@ # Timeout in minutes build-timeout: 420 ssh-credentials: 'agl-jobbuilder' + + # AGL branch defaults + branch: master diff --git a/jjb/global-macros.yaml b/jjb/global-macros.yaml index b84eedf6..c73bd861 100644 --- a/jjb/global-macros.yaml +++ b/jjb/global-macros.yaml @@ -104,6 +104,9 @@ branches: - branch-compare-type: 'ANT' branch-pattern: '**/{branch}' + file-paths: + - compare-type: ANT + pattern: '{files}' - trigger: name: gerrit-trigger-patch-submitted-manual-verified-silent @@ -431,3 +434,55 @@ - ansicolor - openstack: single-use: false + +- property: + name: agl-infra-properties + properties: + - build-discarder: + days-to-keep: '{build-days-to-keep}' + num-to-keep: '{build-num-to-keep}' + +- builder: + name: packer-validate + builders: + - config-file-provider: + files: + - file-id: 'packer-cloud-env' + variable: 'CLOUDENV' + - shell: | + #!/bin/bash -x + cd packer + varfiles="../packer/vars/*" + templates="../packer/templates/*" + provision="../packer/provision/*.sh" + for v in $varfiles; do + [[ "${v##*/}" =~ ^(cloud-env.*|README.*)$ ]] && continue + for t in $templates; do + export PACKER_LOG="yes" && \ + export PACKER_LOG_PATH="packer-validate-${v##*/}-${t##*/}.log" && \ + packer.io validate -var-file=$CLOUDENV \ + -var-file=$v $t + if [ $? -ne 0 ]; then + break + fi + done + done + for p in $provision; do + /bin/bash -n $p > provision-validate-${p##*/}.log 2>&1 + done + +- builder: + name: packer-build + builders: + - config-file-provider: + files: + - file-id: 'packer-cloud-env' + variable: 'CLOUDENV' + - shell: | + cd packer + export PACKER_LOG="yes" && \ + export PACKER_LOG_PATH="packer-build.log" && \ + packer.io build -color=false -var-file=$CLOUDENV \ + -var-file=../packer/vars/{platform}.json \ + -parallel=false \ + ../packer/templates/{template}.json |