Repair pypi template tag and trigger behaviors
[releng/global-jjb.git] / docs / jjb / lf-python-jobs.rst
index bea44fc..2e490fb 100644 (file)
@@ -29,9 +29,10 @@ lf-infra-pypi-tag-release
 -------------------------
 
 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
 --------------------
@@ -43,7 +44,7 @@ Jenkins server must have a configuration file ".pypirc".
 :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
 --------------------
@@ -331,7 +332,7 @@ PyPI Verify
 
 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
@@ -363,6 +364,7 @@ pyenv variables before running.
     :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.
@@ -392,10 +394,10 @@ pyenv variables before running.
 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.
@@ -411,25 +413,23 @@ pyenv variables before running.
    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:
@@ -451,6 +451,10 @@ directory, an example appears next.
     :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.
@@ -458,7 +462,7 @@ directory, an example appears next.
     :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.
@@ -486,13 +490,13 @@ 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 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.
@@ -559,6 +563,7 @@ An example of a pypi release file appears below.
     :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.
@@ -567,7 +572,7 @@ An example of a pypi release file appears below.
         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.
@@ -584,25 +589,22 @@ An example of a pypi release file appears below.
     :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.
@@ -642,6 +644,7 @@ The special parameters are as follows::
     :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.
@@ -650,7 +653,7 @@ The special parameters are as follows::
         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.
@@ -667,6 +670,3 @@ The special parameters are as follows::
     :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