diff options
author | Vanessa Rene Valderrama <vvalderrama@linuxfoundation.org> | 2018-02-27 15:10:17 -0800 |
---|---|---|
committer | Jeremy Phelps <jphelps@linuxfoundation.org> | 2018-03-09 11:27:56 -0600 |
commit | 295975d522aaa584bc3dd79c043b1a6003977f22 (patch) | |
tree | 97c4d8f68ff8d4bdd476f37245c2592d18017d82 /jjb | |
parent | 7c8380e89cfc00cb0002e9c08aec0f9aeaf2ea98 (diff) |
Configure PyPI releases
This changes adds the following functionality for PyPI releases
- macros
- A PyPI server macro
- scripts
- A script to build artifacts
- A script to publish artifacts
- templates
- Templates for release
- jobs
- Jobs for release
- Nexus3 staging
- Nexus3 release
- PyPI index will be added at a later date
Issue-ID: CIMAN-137
Change-Id: I53522ed2fa2f462afebaac94c44fa2a9979e9c2a
Signed-off-by: Vanessa Rene Valderrama <vvalderrama@linuxfoundation.org>
Signed-off-by: Jessica Wagantall <jwagantall@linuxfoundation.org>
Signed-off-by: Jeremy Phelps <jphelps@linuxfoundation.org>
Diffstat (limited to 'jjb')
-rw-r--r-- | jjb/dcaegen2/dcaegen2-utils.yaml | 20 | ||||
-rw-r--r-- | jjb/global-macros.yaml | 8 | ||||
-rw-r--r-- | jjb/onap-jjb/onap-pypi-template.yaml | 194 |
3 files changed, 222 insertions, 0 deletions
diff --git a/jjb/dcaegen2/dcaegen2-utils.yaml b/jjb/dcaegen2/dcaegen2-utils.yaml index f91a4c211..d6dcb0168 100644 --- a/jjb/dcaegen2/dcaegen2-utils.yaml +++ b/jjb/dcaegen2/dcaegen2-utils.yaml @@ -2,11 +2,31 @@ - project: name: dcaegen2-utils project-name: 'dcaegen2-utils' + python-version: python3 + subproject: + - 'dcaeapplib': + tox-dir: dcaeapplib/ + tox-envs: '' + - 'onap-dcae-dbs-docker-client': + tox-dir: onap-dcae-dbs-docker-client/ + tox-envs: '' + - 'onap-dcae-dcaepolicy-lib': + tox-dir: onap-dcae-dcaepolicy-lib/ + tox-envs: '' + - 'python-discovery-client': + tox-dir: python-discovery-client/ + tox-envs: '' + - 'python-dockering': + tox-dir: python-dockering/ + tox-envs: '' + jobs: - gerrit-maven-clm - '{project-name}-{stream}-verify-java' - '{project-name}-{stream}-merge-java' - '{project-name}-{stream}-release-version-java-daily' + - '{project-name}-{subproject}-python-staging-{stream}' + - '{project-name}-{subproject}-python-release-{stream}' project: 'dcaegen2/utils' stream: diff --git a/jjb/global-macros.yaml b/jjb/global-macros.yaml index 826b6041d..85c275644 100644 --- a/jjb/global-macros.yaml +++ b/jjb/global-macros.yaml @@ -66,6 +66,14 @@ builders: - shell: !include-raw: include-docker-login.sh +- builder: + name: publish-pypi + builders: + - inject: + properties-content: PYPI_SERVER={pypi-server} + - shell: + !include-raw-escape: ../shell/pypi-publish.sh + # PARAMETERS - parameter: name: infra-parameters diff --git a/jjb/onap-jjb/onap-pypi-template.yaml b/jjb/onap-jjb/onap-pypi-template.yaml new file mode 100644 index 000000000..bfd709905 --- /dev/null +++ b/jjb/onap-jjb/onap-pypi-template.yaml @@ -0,0 +1,194 @@ +--- +# Job definition Anchors +- pypi_job_boiler_plate: &pypi_job_boiler_plate + name: pypi_job_boiler_plate + + ##################### + # Job Variables # + ##################### + + gerrit_merge_triggers: + - change-merged-event + - comment-added-contains-event: + comment-contains-value: pypi-remerge$ + + gerrit_release_trigger: + - comment-added-contains-event: + comment-contains-value: pypi-release$ + + gerrit_trigger_file_paths: + - compare-type: ANT + pattern: '**' + + ##################### + # Job Configuration # + ##################### + + project-type: freestyle + node: '{build-node}' + + parameters: + - lf-infra-parameters: + project: '{project}' + branch: '{branch}' + stream: '{stream}' + lftools-version: '{lftools-version}' + - lf-infra-tox-parameters: + tox-dir: '{tox-dir}' + tox-envs: '{tox-envs}' + + + properties: + - lf-infra-properties: + build-days-to-keep: '{build-days-to-keep}' + + scm: + - lf-infra-gerrit-scm: + jenkins-ssh-credential: '{jenkins-ssh-credential}' + git-url: '$GIT_URL/$PROJECT' + refspec: '$GERRIT_REFSPEC' + branch: '$GERRIT_BRANCH' + submodule-recursive: true + choosing-strategy: default + + wrappers: + - lf-infra-wrappers: + build-timeout: '{build-timeout}' + jenkins-ssh-credential: '{jenkins-ssh-credential}' + + publishers: + - lf-infra-publish + +- job-template: + name: '{project-name}-python-staging-{stream}' + + # Job template for PyPI staging jobs + # Daily Builds + + <<: *pypi_job_boiler_plate + + 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}' + + builders: + - lf-infra-tox-install: + python-version: '{python-version}' + - shell: !include-raw-escape: ../global-jjb/shell/tox-run.sh + - config-file-provider: + files: + - file-id: pypirc + target: '$HOME/.pypirc' + - shell: + !include-raw-escape: ../shell/pypi-dist-build.sh + + - publish-pypi: + pypi-server: staging + +- job-template: + name: '{project-name}-python-release-{stream}' + + # Job template for PyPI release jobs + + <<: *pypi_job_boiler_plate + + triggers: + - gerrit: + server-name: '{gerrit-server-name}' + trigger-on: '{obj:gerrit_release_trigger}' + projects: + - project-compare-type: ANT + project-pattern: '{project}' + branches: + - branch-compare-type: ANT + branch-pattern: '**/{branch}' + file-paths: '{obj:gerrit_trigger_file_paths}' + + builders: + - lf-infra-tox-install: + python-version: '{python-version}' + - shell: !include-raw-escape: ../global-jjb/shell/tox-run.sh + - config-file-provider: + files: + - file-id: pypirc + target: '$HOME/.pypirc' + - shell: + !include-raw-escape: ../shell/pypi-dist-build.sh + + - publish-pypi: + pypi-server: release + +- job-template: + name: '{project-name}-{subproject}-python-staging-{stream}' + + # Job template for PyPI staging jobs + # Daily Builds + + <<: *pypi_job_boiler_plate + + 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}' + + builders: + - lf-infra-tox-install: + python-version: '{python-version}' + - shell: !include-raw-escape: ../global-jjb/shell/tox-run.sh + - config-file-provider: + files: + - file-id: pypirc + target: '$HOME/.pypirc' + - shell: + !include-raw-escape: ../shell/pypi-dist-build.sh + + - publish-pypi: + pypi-server: staging + +- job-template: + name: '{project-name}-{subproject}-python-release-{stream}' + + # Job template for PyPI release jobs + + <<: *pypi_job_boiler_plate + + triggers: + - gerrit: + server-name: '{gerrit-server-name}' + trigger-on: '{obj:gerrit_release_trigger}' + projects: + - project-compare-type: ANT + project-pattern: '{project}' + branches: + - branch-compare-type: ANT + branch-pattern: '**/{branch}' + file-paths: '{obj:gerrit_trigger_file_paths}' + + builders: + - lf-infra-tox-install: + python-version: '{python-version}' + - shell: !include-raw-escape: ../global-jjb/shell/tox-run.sh + - config-file-provider: + files: + - file-id: pypirc + target: '$HOME/.pypirc' + - shell: + !include-raw-escape: ../shell/pypi-dist-build.sh + + - publish-pypi: + pypi-server: release |