Merge "Lift PyPI templates to Global-JJB from Acumos" v0.44.0
authorJessica Wagantall <jwagantall@linuxfoundation.org>
Wed, 25 Sep 2019 10:10:53 +0000 (10:10 +0000)
committerGerrit Code Review <gerrit@linuxfoundation.org>
Wed, 25 Sep 2019 10:10:53 +0000 (10:10 +0000)
1  2 
jjb/lf-python-jobs.yaml

diff --combined jjb/lf-python-jobs.yaml
@@@ -3,6 -3,41 +3,41 @@@
  # Macros #
  ##########
  
+ - builder:
+     name: lf-infra-clm-python
+     builders:
+       - inject:
+           properties-content: "CLM_PROJECT_NAME={clm-project-name}"
+       - shell: !include-raw-escape: ../shell/nexus-iq-cli.sh
+ - builder:
+     name: lf-infra-pypi-tag-release
+     builders:
+       - config-file-provider:
+           files:
+             - file-id: sigul-config
+               variable: SIGUL_CONFIG
+             - file-id: sigul-password
+               variable: SIGUL_PASSWORD
+             - file-id: sigul-pki
+               variable: SIGUL_PKI
+             - file-id: signing-pubkey
+               variable: SIGNING_PUBKEY
+       - shell: !include-raw: ../shell/sigul-configuration.sh
+       - shell: !include-raw: ../shell/sigul-install.sh
+       - shell: !include-raw: ../shell/pypi-tag-release.sh
+ - builder:
+     name: lf-infra-pypi-upload
+     builders:
+       - config-file-provider:
+           files:
+             - file-id: pypirc
+               target: "$HOME/.pypirc"
+       - inject:
+           properties-content: "REPOSITORY={pypi-repo}"
+       - shell: !include-raw-escape: ../shell/pypi-upload.sh
  - builder:
      name: lf-infra-tox-install
      builders:
        - shell: !include-raw-escape: ../shell/tox-install.sh
  
  - builder:
-     name: lf-infra-clm-python
+     name: lf-infra-tox-run
      builders:
        - inject:
-           properties-content: "CLM_PROJECT_NAME={clm-project-name}"
-       - shell: !include-raw-escape:
-           - ../shell/nexus-iq-cli.sh
+           properties-content: "PARALLEL={parallel}"
+       - shell: !include-raw-escape: ../shell/tox-run.sh
  
  ####################
  # COMMON FUNCTIONS #
      mvn-goals: validate
      mvn-settings: "{mvn-settings}"
      mvn-version: mvn35
+     parallel: true
      pre-build-script: "# pre-build script goes here"
 -    python-version: python2
 +    python-version: python3
      sonar-mvn-goal: "sonar:sonar"
      stream: master
      submodule-recursive: true
        - lf-infra-tox-install:
            python-version: "{python-version}"
        - shell: "{pre-build-script}"
-       - shell: !include-raw-escape: ../shell/tox-run.sh
+       - lf-infra-tox-run:
+           parallel: "{parallel}"
        - lf-provide-maven-settings:
            global-settings-file: "{mvn-global-settings}"
            settings-file: "{mvn-settings}"
      disable-job: false
      git-url: "$GIT_URL/$GERRIT_PROJECT"
      github-url: "https://github.com"
-     parallel: true
+     parallel: false
      pre-build-script: "# pre-build script goes here"
 -    python-version: python2
 +    python-version: python3
      stream: master
      submodule-recursive: true
      submodule-timeout: 10
      submodule-disable: false
-     tox-dir: ""
+     tox-dir: "."
      tox-envs: ""
  
      gerrit_trigger_file_paths:
        - lf-infra-tox-parameters:
            tox-dir: "{tox-dir}"
            tox-envs: "{tox-envs}"
-       - bool:
-           name: PARALLEL
-           default: "{parallel}"
-           description: Tox test type used to configure serial or parallel testing.
  
      wrappers:
        - lf-infra-wrappers:
        - lf-infra-tox-install:
            python-version: "{python-version}"
        - shell: "{pre-build-script}"
-       - shell: !include-raw-escape: ../shell/tox-run.sh
+       - lf-infra-tox-run:
+           parallel: "{parallel}"
  
      publishers:
        - lf-infra-publish
            white-list-target-branches:
              - "{branch}"
            included-regions: "{obj:github_included_regions}"
+ ########
+ # PyPI #
+ ########
+ - lf_pypi_common: &lf_pypi_common
+     name: lf-pypi-common
+     ######################
+     # Default parameters #
+     ######################
+     branch: master
+     build-days-to-keep: 7
+     build-timeout: 15
+     disable-job: false
+     dist-binary: true
+     git-url: "$GIT_URL/$GERRIT_PROJECT"
+     github-url: "https://github.com"
+     parallel: false
+     pre-build-script: "# pre-build script goes here"
+     python-version: python3
+     stream: master
+     submodule-recursive: true
+     submodule-timeout: 10
+     submodule-disable: false
+     tox-dir: "."
+     tox-envs: ""
+     gerrit_trigger_file_paths:
+       - compare-type: ANT
+         pattern: ".*"
+     # github_included_regions MUST match gerrit_trigger_file_paths
+     github_included_regions:
+       - ".*"
+     parameters:
+       - lf-infra-parameters:
+           project: "{project}"
+           branch: "{branch}"
+           stream: "{stream}"
+       - lf-infra-tox-parameters:
+           tox-dir: "{tox-dir}"
+           tox-envs: "{tox-envs}"
+       - bool:
+           name: BUILD_BDIST_WHEEL
+           default: "{dist-binary}"
+           description: "Set to True to build a wheel"
+ - lf_pypi_verify_builders: &lf_pypi_verify_builders
+     name: lf-pypi-verify-builders
+     builders:
+       - lf-infra-pre-build
+       - lf-infra-tox-install:
+           python-version: "{python-version}"
+       - shell: "{pre-build-script}"
+       - lf-infra-tox-run:
+           parallel: "{parallel}"
+       - shell: !include-raw-escape: ../shell/pypi-dist-build.sh
+ - lf_pypi_merge_builders: &lf_pypi_merge_builders
+     name: lf-pypi-merge-builders
+     builders:
+       - lf-infra-pre-build
+       - lf-infra-tox-install:
+           python-version: "{python-version}"
+       - shell: "{pre-build-script}"
+       - lf-infra-tox-run:
+           parallel: "{parallel}"
+       - shell: !include-raw-escape: ../shell/pypi-dist-build.sh
+       - lf-infra-pypi-upload:
+           pypi-repo: "{pypi-repo}"
+ - lf_pypi_release_verify_builders: &lf_pypi_release_verify_builders
+     name: lf-pypi-release-verify-builders
+     builders:
+       - lf-infra-pre-build
+       - lf-infra-tox-install:
+           python-version: "{python-version}"
+       - shell: "{pre-build-script}"
+       - lf-infra-tox-run:
+           parallel: "{parallel}"
+       - shell: !include-raw-escape: ../shell/pypi-dist-build.sh
+       - lf-infra-pypi-tag-release
+ - lf_pypi_release_merge_builders: &lf_pypi_release_merge_builders
+     name: lf-pypi-release-merge-builders
+     builders:
+       - lf-infra-pre-build
+       - lf-infra-tox-install:
+           python-version: "{python-version}"
+       - shell: "{pre-build-script}"
+       - lf-infra-tox-run:
+           parallel: "{parallel}"
+       - shell: !include-raw-escape: ../shell/pypi-dist-build.sh
+       - lf-infra-pypi-tag-release
+       - lf-infra-pypi-upload:
+           pypi-repo: "{pypi-repo}"
+ - job-template:
+     name: "{project-name}-pypi-verify-{stream}"
+     id: gerrit-pypi-verify
+     <<: *lf_python_common
+     # yamllint disable-line rule:key-duplicates
+     <<: *lf_pypi_common
+     <<: *lf_pypi_verify_builders
+     gerrit_verify_triggers:
+       - patchset-created-event:
+           exclude-drafts: true
+           exclude-trivial-rebase: false
+           exclude-no-code-change: false
+       - draft-published-event
+       - comment-added-contains-event:
+           comment-contains-value: '^Patch Set\s+\d+:\s+(recheck|reverify)\s*$'
+     scm:
+       - lf-infra-gerrit-scm:
+           jenkins-ssh-credential: "{jenkins-ssh-credential}"
+           git-url: "{git-url}"
+           refspec: "$GERRIT_REFSPEC"
+           branch: "$GERRIT_BRANCH"
+           submodule-recursive: "{submodule-recursive}"
+           submodule-timeout: "{submodule-timeout}"
+           submodule-disable: "{submodule-disable}"
+           choosing-strategy: gerrit
+     triggers:
+       - gerrit:
+           server-name: "{gerrit-server-name}"
+           trigger-on: "{obj:gerrit_verify_triggers}"
+           projects:
+             - project-compare-type: ANT
+               project-pattern: "{project}"
+               branches:
+                 - branch-compare-type: ANT
+                   branch-pattern: "**/{branch}"
+               file-paths: "{obj:gerrit_trigger_file_paths}"
+ - job-template:
+     name: "{project-name}-pypi-verify-{stream}"
+     id: github-pypi-verify
+     <<: *lf_python_common
+     # yamllint disable-line rule:key-duplicates
+     <<: *lf_pypi_common
+     <<: *lf_pypi_verify_builders
+     properties:
+       - github:
+           url: "{github-url}/{github-org}/{project}"
+     scm:
+       - lf-infra-github-scm:
+           url: "{git-clone-url}{github-org}/{project}"
+           refspec: "+refs/pull/*:refs/remotes/origin/pr/*"
+           branch: "$sha1"
+           submodule-recursive: "{submodule-recursive}"
+           submodule-timeout: "{submodule-timeout}"
+           submodule-disable: "{submodule-disable}"
+           choosing-strategy: default
+           jenkins-ssh-credential: "{jenkins-ssh-credential}"
+     triggers:
+       - github-pull-request:
+           trigger-phrase: "^(recheck|reverify)$"
+           only-trigger-phrase: false
+           status-context: "PyPI Verify"
+           permit-all: true
+           github-hooks: true
+           white-list-target-branches:
+             - "{branch}"
+           included-regions: "{obj:github_included_regions}"
+ - job-template:
+     name: "{project-name}-pypi-merge-{stream}"
+     id: gerrit-pypi-merge
+     <<: *lf_python_common
+     # yamllint disable-line rule:key-duplicates
+     <<: *lf_pypi_common
+     <<: *lf_pypi_merge_builders
+     pypi-repo: staging
+     gerrit_merge_triggers:
+       - change-merged-event
+       - comment-added-contains-event:
+           comment-contains-value: '^Patch Set\s+\d+:\s+remerge\s*$'
+     scm:
+       - lf-infra-gerrit-scm:
+           jenkins-ssh-credential: "{jenkins-ssh-credential}"
+           git-url: "{git-url}"
+           refspec: "$GERRIT_REFSPEC"
+           branch: "$GERRIT_BRANCH"
+           submodule-recursive: "{submodule-recursive}"
+           submodule-timeout: "{submodule-timeout}"
+           submodule-disable: "{submodule-disable}"
+           choosing-strategy: gerrit
+     triggers:
+       - gerrit:
+           server-name: "{gerrit-server-name}"
+           trigger-on: "{obj:gerrit_merge_triggers}"
+           projects:
+             - project-compare-type: ANT
+               project-pattern: "{project}"
+               branches:
+                 - branch-compare-type: ANT
+                   branch-pattern: "**/{branch}"
+               file-paths: "{obj:gerrit_trigger_file_paths}"
+ - job-template:
+     name: "{project-name}-pypi-merge-{stream}"
+     id: github-pypi-merge
+     <<: *lf_python_common
+     # yamllint disable-line rule:key-duplicates
+     <<: *lf_pypi_common
+     <<: *lf_pypi_merge_builders
+     pypi-repo: staging
+     properties:
+       - github:
+           url: "{github-url}/{github-org}/{project}"
+     scm:
+       - lf-infra-github-scm:
+           url: "{git-clone-url}{github-org}/{project}"
+           refspec: ""
+           branch: "refs/heads/{branch}"
+           submodule-recursive: "{submodule-recursive}"
+           submodule-timeout: "{submodule-timeout}"
+           submodule-disable: "{submodule-disable}"
+           choosing-strategy: default
+           jenkins-ssh-credential: "{jenkins-ssh-credential}"
+     triggers:
+       - github-pull-request:
+           trigger-phrase: "^remerge$"
+           only-trigger-phrase: false
+           status-context: "Merge"
+           permit-all: true
+           github-hooks: true
+           org-list:
+             - "{github-org}"
+           white-list: "{obj:github_pr_whitelist}"
+           admin-list: "{obj:github_pr_admin_list}"
+           white-list-target-branches:
+             - "{branch}"
+           included-regions: "{obj:github_included_regions}"
+ - lf_pypi_release_common: &lf_pypi_release_common
+     name: lf-pypi-release-common
+     dist-binary: true
+     pypi-repo: pypi
+     use-release-file: true
+     gerrit_trigger_file_paths:
+       - compare-type: REG_EXP
+         pattern: '(releases\/.*\.yaml|\.releases\/.*\.yaml)'
+     # github_included_regions MUST match gerrit_trigger_file_paths
+     github_included_regions:
+       - 'releases\/.*\.yaml'
+       - '.releases\/.*\.yaml'
+     parameters:
+       - lf-infra-parameters:
+           project: "{project}"
+           branch: "{branch}"
+           stream: "{stream}"
+       - lf-infra-tox-parameters:
+           tox-dir: "{tox-dir}"
+           tox-envs: "{tox-envs}"
+       - bool:
+           name: BUILD_BDIST_WHEEL
+           default: "{dist-binary}"
+           description: "Set to True to build a wheel"
+       - string:
+           name: VERSION
+           default: ""
+           description: "This is the version, example: 1.0.0"
+       - bool:
+           name: USE_RELEASE_FILE
+           default: "{use-release-file}"
+           description: "Set to False for job built with parameters"
+       - bool:
+           name: DRY_RUN
+           default: false
+           description: |
+             If DRY_RUN is enabled artifacts are not published.
+ - job-template:
+     name: "{project-name}-pypi-release-verify-{stream}"
+     id: gerrit-pypi-release-verify
+     <<: *lf_python_common
+     # yamllint disable-line rule:key-duplicates
+     <<: *lf_pypi_common
+     <<: *lf_pypi_release_common
+     <<: *lf_pypi_release_verify_builders
+     gerrit_verify_triggers:
+       - patchset-created-event:
+           exclude-drafts: true
+           exclude-trivial-rebase: false
+           exclude-no-code-change: false
+       - draft-published-event
+       - comment-added-contains-event:
+           comment-contains-value: '^Patch Set\s+\d+:\s+(recheck|reverify)\s*$'
+     scm:
+       - lf-infra-gerrit-scm:
+           jenkins-ssh-credential: "{jenkins-ssh-credential}"
+           git-url: "{git-url}"
+           refspec: "$GERRIT_REFSPEC"
+           branch: "$GERRIT_BRANCH"
+           submodule-recursive: "{submodule-recursive}"
+           submodule-timeout: "{submodule-timeout}"
+           submodule-disable: "{submodule-disable}"
+           choosing-strategy: gerrit
+     triggers:
+       - gerrit:
+           server-name: "{gerrit-server-name}"
+           trigger-on: "{obj:gerrit_verify_triggers}"
+           projects:
+             - project-compare-type: "ANT"
+               project-pattern: "{project}"
+               branches:
+                 - branch-compare-type: "ANT"
+                   branch-pattern: "**"
+               file-paths: "{obj:gerrit_trigger_file_paths}"
+ - job-template:
+     name: "{project-name}-pypi-release-verify-{stream}"
+     id: github-pypi-release-verify
+     <<: *lf_python_common
+     # yamllint disable-line rule:key-duplicates
+     <<: *lf_pypi_common
+     <<: *lf_pypi_release_common
+     <<: *lf_pypi_release_verify_builders
+     properties:
+       - github:
+           url: "{github-url}/{github-org}/{project}"
+     scm:
+       - lf-infra-github-scm:
+           url: "{git-clone-url}{github-org}/{project}"
+           refspec: ""
+           branch: "refs/heads/{branch}"
+           submodule-recursive: "{submodule-recursive}"
+           submodule-timeout: "{submodule-timeout}"
+           submodule-disable: "{submodule-disable}"
+           choosing-strategy: default
+           jenkins-ssh-credential: "{jenkins-ssh-credential}"
+     triggers:
+       - github-pull-request:
+           trigger-phrase: "^(recheck|reverify)$"
+           only-trigger-phrase: false
+           status-context: "PyPI Release Verify"
+           permit-all: true
+           github-hooks: true
+           white-list-target-branches:
+             - "{branch}"
+           included-regions: "{obj:github_included_regions}"
+ - job-template:
+     name: "{project-name}-pypi-release-merge-{stream}"
+     id: gerrit-pypi-release-merge
+     <<: *lf_python_common
+     # yamllint disable-line rule:key-duplicates
+     <<: *lf_pypi_common
+     <<: *lf_pypi_release_common
+     <<: *lf_pypi_release_merge_builders
+     gerrit_release_triggers:
+       - change-merged-event
+     scm:
+       - lf-infra-gerrit-scm:
+           jenkins-ssh-credential: "{jenkins-ssh-credential}"
+           git-url: "{git-url}"
+           refspec: "$GERRIT_REFSPEC"
+           branch: "$GERRIT_BRANCH"
+           submodule-recursive: "{submodule-recursive}"
+           submodule-timeout: "{submodule-timeout}"
+           submodule-disable: "{submodule-disable}"
+           choosing-strategy: gerrit
+     triggers:
+       - gerrit:
+           server-name: "{gerrit-server-name}"
+           trigger-on: "{obj:gerrit_release_triggers}"
+           projects:
+             - project-compare-type: "ANT"
+               project-pattern: "{project}"
+               branches:
+                 - branch-compare-type: "ANT"
+                   branch-pattern: "**"
+               file-paths: "{obj:gerrit_trigger_file_paths}"
+ - job-template:
+     name: "{project-name}-pypi-release-merge-{stream}"
+     id: github-pypi-release-merge
+     <<: *lf_python_common
+     # yamllint disable-line rule:key-duplicates
+     <<: *lf_pypi_common
+     <<: *lf_pypi_release_common
+     <<: *lf_pypi_release_merge_builders
+     properties:
+       - github:
+           url: "{github-url}/{github-org}/{project}"
+     scm:
+       - lf-infra-github-scm:
+           url: "{git-clone-url}{github-org}/{project}"
+           refspec: ""
+           branch: "refs/heads/{branch}"
+           submodule-recursive: "{submodule-recursive}"
+           submodule-timeout: "{submodule-timeout}"
+           submodule-disable: "{submodule-disable}"
+           choosing-strategy: default
+           jenkins-ssh-credential: "{jenkins-ssh-credential}"
+     triggers:
+       - github-pull-request:
+           trigger-phrase: "^(remerge)$"
+           only-trigger-phrase: false
+           status-context: "PyPI Release Merge"
+           permit-all: true
+           github-hooks: true
+           white-list-target-branches:
+             - "{branch}"
+           included-regions: "{obj:github_included_regions}"