-------------------------
Checks the format of the release version string and checks the git
-repository for that tag. In a merge job, continues to tag the repository
-and push the tag to the git server. Also installs supporting tools
-including Sigul and lftools. Sigul requires a CentOS build node.
+repository for that tag. In a merge job, if the tag does not exist,
+adds the tag to the repository, signs the tag, and pushes the tag
+to the git server. Signing requires sigul, which is only available
+on a CentOS build node.
lf-infra-pypi-upload
--------------------
:Required Parameters:
:pypi-repo: PyPI repository key in .pypirc configuration file;
- e.g., "staging" or "pypi".
+ e.g., "pypi-test" or "pypi".
lf-infra-tox-install
--------------------
Verifies a Python library project on creation of a patch set. Runs tox
then builds a source distribution and (optionally) a binary
-distribution. The project repository must have a setup.py file with
+distribution. The project repository must have a setup.py file with
configuration for packaging the component.
The tox runner is pyenv aware so if the image contains an installation
:branch: The branch to build against. (default: master)
:build-days-to-keep: Days to keep build logs in Jenkins. (default: 7)
:build-timeout: Timeout in minutes before aborting build. (default: 15)
+ :disable-job: Whether to disable the job (default: false)
:dist-binary: Whether to build a binary wheel distribution. (default: true)
:git-url: URL clone project from. (default: $GIT_URL/$PROJECT)
:parallel: Boolean indicator for tox to run tests in parallel or series.
PyPI Merge
----------
-Creates and uploads distribution files on merge of a patch set. Runs
+Creates and uploads distribution files on merge of a patch set. Runs
tox, builds a source distribution and (optionally) a binary
distribution, and uploads the distribution(s) to a PyPI repository.
-This job should be configured to use a staging PyPI repository like
+This job should be configured to use a test PyPI repository like
testpypi.python.org, not a public release area like the global PyPI
repository. Like the verify job, this requires a setup.py file for
packaging the component.
export PATH="$PYENV_ROOT/bin:$PATH"
-Requires a .pypirc configuration file in the Jenkins builder home
-directory, an example appears next.
+Requires a .pypirc configuration file in the Jenkins builder home directory,
+an example appears next that uses API tokens. No repository is needed in the
+PyPI section.
.. code-block:: bash
[distutils] # this tells distutils what package indexes you can push to
- index-servers =
- staging
- pypi
+ index-servers = pypi-test pypi
- [staging]
- repository: https://testpypi.python.org/pypi
- username: your_username
- password: your_password
+ [pypi-test]
+ repository: https://test.pypi.org/legacy/
+ username: __token__
+ password: pypi-test-api-token-goes-here
[pypi]
- repository: https://pypi.python.org/pypi
- username: your_username
- password: your_password
+ username: __token__
+ password: pypi-api-token-goes-here
:Template Names:
- gerrit-pypi-merge
- github-pypi-merge
-:Comment Trigger: pypi-remerge
+:Comment Trigger: remerge
:Required Parameters:
:branch: The branch to build against. (default: master)
:build-days-to-keep: Days to keep build logs in Jenkins. (default: 7)
:build-timeout: Timeout in minutes before aborting build. (default: 15)
+ :cron: Cron schedule when to trigger the job. Supports daily builds.
+ This parameter also supports multiline input via YAML pipe | character in
+ cases where one may want to provide more than 1 cron timer. (default: empty)
+ :disable-job: Whether to disable the job (default: false)
:dist-binary: Whether to build a binary wheel distribution. (default: true)
:git-url: URL clone project from. (default: $GIT_URL/$PROJECT)
:parallel: Boolean indicator for tox to run tests in parallel or series.
:pre-build-script: Shell script to execute before the tox builder. For
example, install system prerequisites. (default: a shell comment)
:pypi-repo: Key for PyPI repository parameters in the .pypirc file.
- Merge jobs should use a server like testpypi.python.org. (default: staging)
+ Merge jobs should use a server like testpypi.python.org. (default: pypi-test)
:python-version: Python version to invoke pip install of tox-pyenv
(default: python3)
:stream: Keyword representing a release code-name.
release yaml file. Runs tox, builds source and (optionally) binary
distributions, checks the format of the version string, checks that
the distribution file names contain the release version string, and
-checks that no tag exists in the code repository for the release
+checks if the tag exists in the code repository for the release
version.
To initiate the release process, create a releases/ or .releases/
directory at the root of the project repository, add one release yaml
file to it, and submit a change set with that release yaml file. A
-schema and and an example for the release yaml file appear below. The
+schema and and an example for the release yaml file appear below. The
version in the release yaml file must be a valid Semantic Versioning
(SemVer) string, matching either the pattern "v#.#.#" or "#.#.#" where
"#" is one or more digits.
- gerrit-pypi-release-verify
- github-pypi-release-verify
+:Comment Trigger: recheck
+
:Required Parameters:
:build-node: The node to run build on, which must be Centos.
:branch: The branch to build against. (default: master)
:build-days-to-keep: Days to keep build logs in Jenkins. (default: 7)
:build-timeout: Timeout in minutes before aborting build. (default: 15)
+ :disable-job: Whether to disable the job (default: false)
:dist-binary: Whether to build a binary wheel distribution. (default: true)
:git-url: URL clone project from. (default: $GIT_URL/$PROJECT)
:parallel: Boolean indicator for tox to run tests in parallel or series.
For example, install prerequisites or move files to the repo root.
(default: a string with a shell comment)
:pypi-repo: Key for PyPI repository parameters in the .pypirc file.
- Release jobs should use a server like pypy.org. (default: pypi)
+ Release jobs should use a server like pypy.org. (default: pypi)
:python-version: Python version to invoke pip install of tox-pyenv
(default: python3)
:stream: Keyword representing a release code-name.
:tox-envs: Tox environments to run. If blank run everything described
in tox.ini. (default: '')
:use-release-file: Whether to use the release file. (default: true)
- :gerrit_trigger_file_paths: Override file paths used to filter which file
- modifications trigger a build. Refer to JJB documentation for "file-path" details.
- https://docs.openstack.org/infra/jenkins-job-builder/triggers.html#triggers.gerrit
-
PyPI Release Merge
------------------
Publishes a Python library on merge of a patch set with a release yaml
-file. Runs tox, builds source and (optionally) binary distributions,
+file. Runs tox, builds source and (optionally) binary distributions,
checks the format of the version string, checks that the distribution
-file names contain the release version string, checks that no tag
-exists in the code repository for the release version, tags the code
-repository with the release version, pushes the tag to the git server,
-and uploads distributions to a PyPI repository.
+file names contain the release version string, checks if the tag
+exists in the code repository for the release version, then if the tag
+does not exist, tags the code repository with the release version,
+signs the tag and pushes the tag to the git server. Finally this
+uploads the distributions to a PyPI repository.
This job is similar to the PyPI merge job, but is only triggered by
-merge of a release yaml file and checks the version and tag before
-uploading to a public repository such as PyPI.
+merge of a release yaml file, also this checks the version and tag
+before uploading to a public repository such as PyPI.
See the PyPI Release Verify job above for documentation of the release
yaml file format.
- gerrit-pypi-release-merge
- github-pypi-release-merge
+:Comment Trigger: remerge
+
:Required Parameters:
:build-node: The node to run build on, which must be Centos.
:branch: The branch to build against. (default: master)
:build-days-to-keep: Days to keep build logs in Jenkins. (default: 7)
:build-timeout: Timeout in minutes before aborting build. (default: 15)
+ :disable-job: Whether to disable the job (default: false)
:dist-binary: Whether to build a binary wheel distribution. (default: true)
:git-url: URL clone project from. (default: $GIT_URL/$PROJECT)
:parallel: Boolean indicator for tox to run tests in parallel or series.
For example, install prerequisites or move files to the repo root.
(default: a string with a shell comment)
:pypi-repo: Key for PyPI repository parameters in the .pypirc file.
- Release jobs should use a server like pypy.org. (default: pypi)
+ Release jobs should use a server like pypy.org. (default: pypi)
:python-version: Python version to invoke pip install of tox-pyenv
(default: python3)
:stream: Keyword representing a release code-name.
:tox-envs: Tox environments to run. If blank run everything described
in tox.ini. (default: '')
:use-release-file: Whether to use the release file. (default: true)
- :gerrit_trigger_file_paths: Override file paths used to filter which file
- modifications trigger a build. Refer to JJB documentation for "file-path" details.
- https://docs.openstack.org/infra/jenkins-job-builder/triggers.html#triggers.gerrit