-PyPI Release Verify
--------------------
-
-Verifies a Python library project on creation of a patch set with a
-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 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
-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.
-
-This job is similar to the PyPI verify job, but is only triggered by a
-patch set with a release yaml file.
-
-The build node for PyPI release verify jobs must be CentOS, which
-supports the sigul client for accessing a signing server.
-
-.. note::
-
- The release file regex is: (releases\/.*\.yaml|\.releases\/.*\.yaml).
- In words, the directory name can be ".releases" or "releases"; the file
- name can be anything with suffix ".yaml".
-
-The JSON schema for a pypi release file appears below.
-
-.. code-block:: none
-
- ---
- $schema: "http://json-schema.org/schema#"
- $id: "https://github.com/lfit/releng-global-jjb/blob/master/release-pypi-schema.yaml"
-
- required:
- - "distribution_type"
- - "project"
- - "version"
-
- properties:
- distribution_type:
- type: "string"
- project:
- type: "string"
- version:
- type: "string"
-
-
-An example of a pypi release file appears below.
-
-.. code-block:: none
-
- $ cat releases/1.0.0-pypi.yaml
- ---
- distribution_type: pypi
- version: 1.0.0
- project: 'example-project'
-
-
-:Template Names:
-
- - {project-name}-pypi-release-verify-{stream}
- - 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.
- :jenkins-ssh-credential: Credential to use for SSH. (Generally set
- in defaults.yaml)
-
-:Optional 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)
- :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.
- (default: false, in series)
- :pre-build-script: Shell script to execute before the tox builder.
- 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)
- :python-version: Python version to invoke pip install of tox-pyenv
- (default: python3)
- :stream: Keyword representing a release code-name.
- Often the same as the branch. (default: master)
- :submodule-recursive: Whether to checkout submodules recursively.
- (default: true)
- :submodule-timeout: Timeout (in minutes) for checkout operation.
- (default: 10)
- :submodule-disable: Disable submodule checkout operation.
- (default: false)
- :tox-dir: Directory containing the project's tox.ini relative to
- the workspace. The default uses tox.ini at the project root.
- (default: '.')
- :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)
-
-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,
-checks the format of the version string, checks that the distribution
-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, 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.