diff options
24 files changed, 233 insertions, 191 deletions
diff --git a/jjb/ci-management/ci-management-macros.yaml b/jjb/ci-management/ci-management-macros.yaml deleted file mode 100644 index e79cf8a23..000000000 --- a/jjb/ci-management/ci-management-macros.yaml +++ /dev/null @@ -1,22 +0,0 @@ ---- -# vim: sw=2 ts=2 sts=2 et : -- builder: - name: packer-validate - builders: - - config-file-provider: - files: - - file-id: 'packer-cloud-env' - variable: 'CLOUDENV' - - shell: !include-raw: raw-include-packer-validate.sh - -- builder: - name: packer-build - builders: - - shell: | - cd packer - export PACKER_LOG="yes" - export PACKER_LOG_PATH="packer-build.log" - packer.io build -color=false \ - -var-file=$CLOUDENV \ - -var-file=vars/{platform}.json \ - templates/{template}.json diff --git a/jjb/ci-management/ci-management.yaml b/jjb/ci-management/ci-management.yaml index 141731bc4..c1dea93fe 100644 --- a/jjb/ci-management/ci-management.yaml +++ b/jjb/ci-management/ci-management.yaml @@ -3,8 +3,6 @@ name: ci-management-jobs jobs: - '{project-name}-ci-jobs' - - '{project}-verify-packer' - - '{project}-merge-packer-{platforms}-{templates}' project: 'ci-management' project-name: 'ci-management' @@ -12,15 +10,25 @@ branch: 'master' build-timeout: '60' build-node: 'centos7-basebuild-2c-1g' + +- project: + name: packer-jobs + # packer jobs templates are defined in global-jjb + jobs: + - '{project-name}-packer-jobs' + project: 'ci-management' + project-name: 'ci-management' + branch: master + archive-artifacts: '**/*.log' + build-node: 'centos7-basebuild-2c-1g' platforms: - centos - ubuntu-16.04 - templates: - basebuild - docker + - memcached - redis - exclude: # only build the docker image on ubuntu at present - platforms: centos @@ -130,87 +138,3 @@ publishers: - infra-shiplogs: maven-version: '{maven-version}' - -- job-template: - name: '{project}-verify-packer' - project-type: freestyle - node: '{build-node}' - concurrent: true - - properties: - - infra-properties: - build-days-to-keep: 14 - - parameters: - - infra-parameters: - project: '{project}' - branch: 'master' - refspec: 'refs/heads/master' - artifacts: '{archive-artifacts}' - - scm: - - gerrit-trigger-scm: - refspec: '$GERRIT_REFSPEC' - choosing-strategy: 'gerrit' - submodule-recursive: '{submodule-recursive}' - - wrappers: - - infra-wrappers: - build-timeout: '{build-timeout}' - - triggers: - - gerrit-trigger-patch-submitted: - server: '{server-name}' - project: '{project}' - branch: 'master' - files: 'packer/**' - - builders: - - packer-validate - - publishers: - - infra-shiplogs: - maven-version: '{maven-version}' -- job-template: - name: '{project}-merge-packer-{platforms}-{templates}' - project-type: freestyle - node: '{build-node}' - concurrent: true - - properties: - - infra-properties: - build-days-to-keep: 14 - - parameters: - - infra-parameters: - project: '{project}' - branch: 'master' - refspec: 'refs/heads/master' - artifacts: '{archive-artifacts}' - - scm: - - gerrit-trigger-scm: - refspec: '' - choosing-strategy: 'default' - submodule-recursive: '{submodule-recursive}' - - wrappers: - - infra-wrappers: - build-timeout: '{build-timeout}' - - triggers: - - gerrit-trigger-patch-merged: - server: '{server-name}' - project: '{project}' - branch: 'master' - files: 'packer/**' - - builders: - - packer-validate - - packer-build: - platform: '{platforms}' - template: '{templates}' - - publishers: - - infra-shiplogs: - maven-version: '{maven-version}' diff --git a/jjb/ci-management/raw-include-packer-validate.sh b/jjb/ci-management/raw-include-packer-validate.sh deleted file mode 100644 index 01984dd7a..000000000 --- a/jjb/ci-management/raw-include-packer-validate.sh +++ /dev/null @@ -1,19 +0,0 @@ -cd packer -varfiles="../packer/vars/*" -templates="../packer/templates/*" -provision="../packer/provision/*.sh" -for v in $varfiles; do - [[ "${v##*/}" =~ ^(cloud-env.*)$ ]] && 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 diff --git a/jjb/cli/cli.yaml b/jjb/cli/cli.yaml index d7685b963..896198f5e 100644 --- a/jjb/cli/cli.yaml +++ b/jjb/cli/cli.yaml @@ -11,13 +11,10 @@ - '{project-name}-{stream}-stage-site-java': site-pom: 'pom.xml' trigger-job: '{project-name}-{stream}-release-version-java-daily' - - '{project-name}-{stream}-docker-version-java-daily': - docker-pom: 'pom.xml' - mvn-profile: 'docker' - maven-properties: | - skip.docker.build=false - skip.docker.tag=false - skip.docker.push=false + - '{project-name}-{stream}-aai-docker-java-daily': + pom: 'deployment/docker/pom.xml' + mvn-goals: 'docker:build' + docker-image-name: 'onap/cli' project: 'cli' stream: diff --git a/jjb/dmaap/dmaap-datarouter.yaml b/jjb/dmaap/dmaap-datarouter.yaml index 4589c4f4c..6e8a84602 100644 --- a/jjb/dmaap/dmaap-datarouter.yaml +++ b/jjb/dmaap/dmaap-datarouter.yaml @@ -2,22 +2,21 @@ - project: name: dmaap-datarouter project-name: 'dmaap-datarouter' + jobs: + - '{project-name}-{stream}-clm' + - '{project-name}-{stream}-verify-java' + - '{project-name}-{stream}-merge-java' + - '{project-name}-{stream}-release-version-java-daily' + - '{project-name}-{stream}-stage-site-java': + site-pom: 'dmaap/datarouter/pom.xml' + trigger-job: '{project-name}-{stream}-release-version-java-daily' + mvn-goals: 'clean install' project: 'dmaap/datarouter' stream: - 'master': branch: 'master' + - 'release-1.0.0': + branch: 'release-1.0.0' mvn-settings: 'dmaap-datarouter-settings' - subproject: - - 'datarouter-prov': - pom: 'datarouter-prov/pom.xml' - pattern: 'datarouter-prov/**' - mvn-goals: 'clean install' - - 'datarouter-node': - pom: 'datarouter-node/pom.xml' - pattern: 'datarouter-node/**' - mvn-goals: 'clean install' - jobs: - - '{project-name}-{stream}-{subproject}-verify-java' - - '{project-name}-{stream}-{subproject}-merge-java' files: '**' archive-artifacts: ''
\ No newline at end of file diff --git a/jjb/doc/doc-templates-rtd.yaml b/jjb/doc/doc-templates-rtd.yaml index c1f6159d1..c6bec58ec 100644 --- a/jjb/doc/doc-templates-rtd.yaml +++ b/jjb/doc/doc-templates-rtd.yaml @@ -31,10 +31,17 @@ maven-version: '{maven-version}' scm: - - gerrit-trigger-scm: + - git: + credentials-id: '{jenkins-ssh-credential}' + url: '$GIT_BASE' refspec: '' - choosing-strategy: 'gerrit' - submodule-recursive: '{submodule-recursive}' + choosing-strategy: 'default' + branches: + - 'refs/heads/{branch}' + skip-tag: true + wipe-workspace: true + submodule: + recursive: '{submodule-recursive}' wrappers: - infra-wrappers: @@ -103,13 +110,19 @@ - maven-exec: maven-version: '{maven-version}' - scm: - - gerrit-trigger-scm: + - git: + credentials-id: '{jenkins-ssh-credential}' + url: '$GIT_BASE' refspec: '' - choosing-strategy: 'gerrit' + choosing-strategy: 'default' + branches: + - 'refs/heads/{branch}' + skip-tag: true + wipe-workspace: true submodule-recursive: '{submodule-recursive}' + wrappers: - infra-wrappers: build-timeout: '{build-timeout}' diff --git a/jjb/global-macros.yaml b/jjb/global-macros.yaml index 454d056ef..826b6041d 100644 --- a/jjb/global-macros.yaml +++ b/jjb/global-macros.yaml @@ -109,6 +109,16 @@ # yamllint enable description: 'Maven selector to be used by shell scripts' +- parameter: + name: docker-image-name + parameters: + - string: + name: DOCKER_IMAGE_NAME + # yamllint disable rule:line-length + default: '{docker-image-name}' + # yamllint enable + description: 'Docker image name, e.g. onap/appc' + # PROPERTIES - property: name: infra-properties diff --git a/jjb/global-templates-java.yaml b/jjb/global-templates-java.yaml index 21a227b27..23d74c6bc 100644 --- a/jjb/global-templates-java.yaml +++ b/jjb/global-templates-java.yaml @@ -1342,6 +1342,7 @@ name: '{project-name}-{stream}-aai-docker-java-daily' project-type: freestyle node: 'ubuntu1604-docker-8c-8g' + docker-image-name: '' properties: - infra-properties: @@ -1355,6 +1356,8 @@ artifacts: '{archive-artifacts}' - maven-exec: maven-version: '{maven-version}' + - docker-image-name: + docker-image-name: '{docker-image-name}' scm: - gerrit-trigger-scm: diff --git a/jjb/holmes/holmes-rule-mgt.yaml b/jjb/holmes/holmes-rule-mgt.yaml index cf4b5e0e1..069c04779 100644 --- a/jjb/holmes/holmes-rule-mgt.yaml +++ b/jjb/holmes/holmes-rule-mgt.yaml @@ -7,6 +7,7 @@ - '{project-name}-{stream}-verify-java' - '{project-name}-{stream}-merge-java' - '{project-name}-{stream}-release-version-java-daily' + - '{project-name}-{stream}-docker-java-daily' project: 'holmes/rule-management' stream: @@ -15,4 +16,6 @@ mvn-settings: 'holmes-rule-management-settings' files: '**' archive-artifacts: '' + docker-pom: 'pom.xml' + mvn-profile: docker build-node: ubuntu1604-basebuild-4c-4g diff --git a/jjb/include-docker-push.sh b/jjb/include-docker-push.sh index 57a0264bb..df42fa7b9 100644..100755 --- a/jjb/include-docker-push.sh +++ b/jjb/include-docker-push.sh @@ -20,40 +20,34 @@ RELEASE_VERSION_REGEX="^[0-9]+\.[0-9]+\.[0-9]+$"; SNAPSHOT_TAG=${VERSION}-SNAPSHOT-${DATETIME_STAMP}; STAGING_TAG=${VERSION}-STAGING-${DATETIME_STAMP}; -if [[ $PROJECT =~ $SEARCH ]] ; then - REPO_PATH=$DOCKER_REPOSITORY/openecomp/ajsc-aai; - - docker tag $REPO_PATH:latest $REPO_PATH:$STAGING_TAG; - docker tag $REPO_PATH:latest $REPO_PATH:$SNAPSHOT_TAG; +# Set REPO_PATH variable - if [[ "$VERSION" =~ $RELEASE_VERSION_REGEX ]]; then - STRIPPED_RELEASE=$(echo $VERSION | cut -d"." -f1,2); - docker tag $REPO_PATH:latest $REPO_PATH:${STRIPPED_RELEASE}-STAGING-latest; - docker push $REPO_PATH:${STRIPPED_RELEASE}-STAGING-latest; - else - docker push $REPO_PATH:latest; - fi +if [ ! -z "$DOCKER_IMAGE_NAME" ]; then + REPO_PATH=$DOCKER_REPOSITORY/${DOCKER_IMAGE_NAME}; - docker push $REPO_PATH:$STAGING_TAG; - docker push $REPO_PATH:$SNAPSHOT_TAG; + # tag image with nexus3 proxy prefix + docker tag ${DOCKER_IMAGE_NAME} $REPO_PATH +elif [[ $PROJECT =~ $SEARCH ]] ; then + REPO_PATH=$DOCKER_REPOSITORY/openecomp/ajsc-aai; else # Cut the prefix aai/ in example aai/model-loader DOCKER_REPO_NAME=$(echo ${PROJECT} | cut -d"/" -f2-); REPO_PATH=$DOCKER_REPOSITORY/openecomp/${DOCKER_REPO_NAME}; +fi - docker tag $REPO_PATH:latest $REPO_PATH:$STAGING_TAG; - docker tag $REPO_PATH:latest $REPO_PATH:$SNAPSHOT_TAG; - if [[ "$VERSION" =~ $RELEASE_VERSION_REGEX ]]; then - STRIPPED_RELEASE=$(echo $VERSION | cut -d"." -f1,2); - docker tag $REPO_PATH:latest $REPO_PATH:${STRIPPED_RELEASE}-STAGING-latest; - docker push $REPO_PATH:${STRIPPED_RELEASE}-STAGING-latest; - else - docker push $REPO_PATH:latest; - fi +docker tag $REPO_PATH:latest $REPO_PATH:$STAGING_TAG; +docker tag $REPO_PATH:latest $REPO_PATH:$SNAPSHOT_TAG; - docker push $REPO_PATH:$SNAPSHOT_TAG; - docker push $REPO_PATH:$STAGING_TAG; +if [[ "$VERSION" =~ $RELEASE_VERSION_REGEX ]]; then + STRIPPED_RELEASE=$(echo $VERSION | cut -d"." -f1,2); + docker tag $REPO_PATH:latest $REPO_PATH:${STRIPPED_RELEASE}-STAGING-latest; + docker push $REPO_PATH:${STRIPPED_RELEASE}-STAGING-latest; +else + docker push $REPO_PATH:latest; fi + +docker push $REPO_PATH:$SNAPSHOT_TAG; +docker push $REPO_PATH:$STAGING_TAG; diff --git a/jjb/multicloud/multicloud-openstack.yaml b/jjb/multicloud/multicloud-openstack.yaml new file mode 100644 index 000000000..e60c9c6d6 --- /dev/null +++ b/jjb/multicloud/multicloud-openstack.yaml @@ -0,0 +1,20 @@ +--- +- project: + name: multicloud-openstack + project-name: 'multicloud-openstack' + project: 'multicloud/openstack' + stream: + - 'master': + branch: 'master' + mvn-settings: 'multicloud-openstack-settings' + subproject: + - 'openstack': + path: '.' + pattern: '**' + jobs: + - '{project-name}-{stream}-{subproject}-verify-python' + - '{project-name}-{stream}-verify-java' + - '{project-name}-{stream}-merge-java' + files: '**' + archive-artifacts: '' + build-node: 'ubuntu1604-basebuild-4c-4g' diff --git a/jjb/policy/policy-engine.yaml b/jjb/policy/policy-engine.yaml index e657192b4..8ee95e674 100644 --- a/jjb/policy/policy-engine.yaml +++ b/jjb/policy/policy-engine.yaml @@ -4,13 +4,10 @@ project-name: 'policy-engine' jobs: - '{project-name}-{stream}-clm': - build-node: 'ubuntu1604-basebuild-4c-4g' - '{project-name}-{stream}-verify-java' - '{project-name}-{stream}-merge-java' - '{project-name}-{stream}-release-version-java-daily': - build-node: 'ubuntu1604-basebuild-4c-4g' - '{project-name}-{stream}-stage-site-java': - build-node: 'ubuntu1604-basebuild-4c-4g' site-pom: 'pom.xml' trigger-job: '{project-name}-{stream}-release-version-java-daily' @@ -21,6 +18,7 @@ mvn-settings: 'policy-engine-settings' files: '**' archive-artifacts: '' + build-node: 'ubuntu1604-basebuild-4c-4g' - project: name: policy-engine-release-1.0.0 project-name: 'policy-engine' diff --git a/jjb/portal/docker-build-deploy.sh b/jjb/portal/docker-build-deploy.sh index dd114af76..5e211fefc 100644 --- a/jjb/portal/docker-build-deploy.sh +++ b/jjb/portal/docker-build-deploy.sh @@ -3,5 +3,5 @@ echo $CURRENTDIR ls -ltr cd deliveries ls -ltr -chmod 755 *.* -./run.sh +chmod 755 *.sh +./build_portalapps_dockers.sh diff --git a/jjb/portal/docker-build-push.sh b/jjb/portal/docker-build-push.sh index c3851dd48..d05190c26 100644 --- a/jjb/portal/docker-build-push.sh +++ b/jjb/portal/docker-build-push.sh @@ -3,5 +3,5 @@ echo $CURRENTDIR ls -ltr cd deliveries ls -ltr -chmod 755 *.* +chmod 755 *.sh ./os_docker_push.sh diff --git a/jjb/portal/docker-build-release.sh b/jjb/portal/docker-build-release.sh index 89a5fc131..0bbd2c8e4 100644 --- a/jjb/portal/docker-build-release.sh +++ b/jjb/portal/docker-build-release.sh @@ -3,5 +3,5 @@ echo $CURRENTDIR ls -ltr cd deliveries ls -ltr -chmod 755 *.* +chmod 755 *.sh ./os_docker_release.sh diff --git a/jjb/portal/portal-sdk.yaml b/jjb/portal/portal-sdk.yaml index 6839543ce..dc79848d6 100644 --- a/jjb/portal/portal-sdk.yaml +++ b/jjb/portal/portal-sdk.yaml @@ -19,6 +19,8 @@ stream: - 'master': branch: 'master' + - 'release-1.3.0': + branch: 'release-1.3.0' mvn-settings: 'portal-sdk-settings' files: '**' archive-artifacts: '' diff --git a/jjb/sdc/sdc-sdc-workflow-designer.yaml b/jjb/sdc/sdc-sdc-workflow-designer.yaml new file mode 100644 index 000000000..a5830d797 --- /dev/null +++ b/jjb/sdc/sdc-sdc-workflow-designer.yaml @@ -0,0 +1,21 @@ +--- +- project: + name: sdc-sdc-workflow-designer + project-name: 'sdc-sdc-workflow-designer' + jobs: + - '{project-name}-{stream}-clm' + - '{project-name}-{stream}-verify-java' + - '{project-name}-{stream}-merge-java' + - '{project-name}-{stream}-release-version-java-daily' + - '{project-name}-{stream}-stage-site-java': + site-pom: 'pom.xml' + trigger-job: '{project-name}-{stream}-release-version-java-daily' + + project: 'sdc/sdc-workflow-designer' + stream: + - 'master': + branch: 'master' + mvn-settings: 'sdc-sdc-workflow-designer-settings' + files: '**' + archive-artifacts: '' + build-node: ubuntu1604-basebuild-4c-4g diff --git a/jjb/ui/ui-dmaapbc.yaml b/jjb/ui/ui-dmaapbc.yaml index 022ee6b9a..c56617849 100644 --- a/jjb/ui/ui-dmaapbc.yaml +++ b/jjb/ui/ui-dmaapbc.yaml @@ -18,6 +18,8 @@ branch: 'master' - 'release-1.0.0': branch: 'release-1.0.0' + - 'release-1.1.0': + branch: 'release-1.1.0' mvn-settings: 'ui-dmaapbc-settings' files: '**' archive-artifacts: '' diff --git a/jjb/vfc/vfc-gvnfm-vnflcm-python.yaml b/jjb/vfc/vfc-gvnfm-vnflcm-python.yaml index c58f5bfa1..991848acb 100644 --- a/jjb/vfc/vfc-gvnfm-vnflcm-python.yaml +++ b/jjb/vfc/vfc-gvnfm-vnflcm-python.yaml @@ -8,7 +8,7 @@ - 'master': branch: 'master' mvn-settings: 'vfc-gvnfm-vnflcm-settings' - build-node: ubuntu1604-redis-4c-4g + build-node: centos7-redis-4c-4g subproject: - 'lcm': path: 'lcm' diff --git a/jjb/vfc/vfc-nfvo-catalog.yaml b/jjb/vfc/vfc-nfvo-catalog.yaml index 834d2a898..2856dd649 100644 --- a/jjb/vfc/vfc-nfvo-catalog.yaml +++ b/jjb/vfc/vfc-nfvo-catalog.yaml @@ -18,4 +18,4 @@ - '{project-name}-{stream}-merge-java' files: '**' archive-artifacts: '' - build-node: ubuntu1604-redis-4c-4g
\ No newline at end of file + build-node: centos7-redis-4c-4g
\ No newline at end of file diff --git a/jjb/vfc/vfc-nfvo-driver-ems-java.yaml b/jjb/vfc/vfc-nfvo-driver-ems-java.yaml index 8c38d48d2..ef5518732 100644 --- a/jjb/vfc/vfc-nfvo-driver-ems-java.yaml +++ b/jjb/vfc/vfc-nfvo-driver-ems-java.yaml @@ -10,11 +10,12 @@ mvn-settings: 'vfc-nfvo-driver-ems-settings'
subproject:
- 'drv-ems-boco':
- pom: 'ems/boco/pom.xml'
- pattern: 'ems/boco/**'
+ pom: 'ems/pom.xml'
+ pattern: 'ems/**'
jobs:
- '{project-name}-{stream}-{subproject}-verify-java'
- '{project-name}-{stream}-{subproject}-merge-java'
+ - '{project-name}-{stream}-{subproject}-release-java-daily'
files: '**'
archive-artifacts: ''
build-node: ubuntu1604-basebuild-4c-4g
\ No newline at end of file diff --git a/jjb/vfc/vfc-nfvo-lcm-python.yaml b/jjb/vfc/vfc-nfvo-lcm-python.yaml index 8ce9eb181..8fc3b9e1b 100644 --- a/jjb/vfc/vfc-nfvo-lcm-python.yaml +++ b/jjb/vfc/vfc-nfvo-lcm-python.yaml @@ -8,7 +8,7 @@ - 'master': branch: 'master' mvn-settings: 'vfc-nfvo-lcm-settings' - build-node: ubuntu1604-redis-4c-4g + build-node: centos7-redis-4c-4g subproject: - 'lcm': path: '.' diff --git a/packer/provision/memcached.sh b/packer/provision/memcached.sh new file mode 100644 index 000000000..4f2923722 --- /dev/null +++ b/packer/provision/memcached.sh @@ -0,0 +1,42 @@ +#!/bin/bash +# This particular environment was created specifically for MultiCloud + +# vim: ts=4 sw=4 sts=4 et tw=72 : + +# force any errors to cause the script and job to end in failure +set -xeu -o pipefail + +rh_systems() { + # memcached + yum install -y memcached + systemctl enable memcached +} + +ubuntu_systems() { + # memcached + apt-get install memcached +} + +all_systems() { + echo 'No common distribution configuration to perform' +} + +echo "---> Detecting OS" +ORIGIN=$(facter operatingsystem | tr '[:upper:]' '[:lower:]') + +case "${ORIGIN}" in + fedora|centos|redhat) + echo "---> RH type system detected" + rh_systems + ;; + ubuntu) + echo "---> Ubuntu system detected" + ubuntu_systems + ;; + *) + echo "---> Unknown operating system" + ;; +esac + +# execute steps for all systems +all_systems diff --git a/packer/templates/memcached.json b/packer/templates/memcached.json new file mode 100644 index 000000000..722785e62 --- /dev/null +++ b/packer/templates/memcached.json @@ -0,0 +1,54 @@ +{ + "variables": { + "stack_tenant": null, + "stack_user": null, + "stack_pass": null, + "stack_network": null, + "base_image": null, + "cloud_user": null, + "distro": null, + "cloud_user_data": null + }, + "builders": [ + { + "type": "openstack", + "identity_endpoint": "https://auth.vexxhost.net/v2.0/", + "tenant_name": "{{user `stack_tenant`}}", + "username": "{{user `stack_user`}}", + "password": "{{user `stack_pass`}}", + "region": "ca-ymq-1", + "ssh_username": "{{user `cloud_user`}}", + "image_name": "{{user `distro`}} - memcached - {{isotime \"20060102-1504\"}}", + "source_image_name": "{{user `base_image`}}", + "flavor": "v1-standard-1", + "availability_zone": "ca-ymq-2", + "networks": [ + "{{user `stack_network`}}" + ], + "user_data_file": "{{user `cloud_user_data`}}" + } + ], + "provisioners": [ + { + "type": "shell", + "inline": [ + "mkdir -p /tmp/packer" + ] + }, + { + "type": "file", + "source": "provision/basebuild/", + "destination": "/tmp/packer" + }, + { + "type": "shell", + "scripts": [ + "provision/baseline.sh", + "provision/basebuild.sh", + "provision/memcached.sh", + "provision/system_reseal.sh" + ], + "execute_command": "chmod +x {{ .Path }}; if [ \"$UID\" == \"0\" ]; then {{ .Vars }} '{{ .Path }}'; else {{ .Vars }} sudo -E '{{ .Path }}'; fi" + } + ] +} |