export PYENV_ROOT="/opt/pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
-Installable package projects should consider using a directory layout
-like the one shown below. All Python files are below a directory, and
-the package source files are nested in a subdirectory. This layout
-allows straightforward build-job triggers using the directory paths so
-Jenkins jobs are triggered appropriately. For example, a PyPI merge
-job should not be triggered by a non-Python change, because the job
-cannot upload the same package twice.
+Installable package projects should use the directory layout shown
+below. All Python files are in a repo subdirectory separate from
+non-Python files like documentation. This layout allows highly
+specific build-job triggers in Jenkins using the subdirectory
+paths. For example, a PyPI merge job should not run on a non-Python
+file change such as documentation, because the job cannot upload the
+same package twice.
+
+To make the document files available for building a Python package
+long description in setup.py, add a symbolic link "docs" in the
+package subdirectory pointing to the top-level docs directory.
.. code-block:: bash
git-repo-name/
│
├── docs/
- │ └── index.rst
+ │ ├── index.rst
+ │ └── release-notes.rst
│
├── helloworld-package/
│ │
│ └── tox.ini
│
├── releases/
- │ └── release-helloworld.yaml
+ │ └── pypi-helloworld.yaml
│
├── .gitignore
├── LICENSE
└── README.md
-Use of these templates requires a .pypirc configuration file in the
-Jenkins builder home directory. An example appears next that uses API
-tokens. Note that in the [pypi] entry the repository key-value pair is
-optional, it defaults to pypi.org.
+Jobs built from the PyPI templates depend on a .pypirc configuration file
+in the Jenkins builder home directory. An example appears next that uses
+API tokens. Note that in the [pypi] entry the repository key-value pair
+is optional, it defaults to pypi.org.
.. code-block:: bash
:build-node: The node to run the build on.
:jenkins-ssh-credential: Credential to use for SSH. (Generally set
in defaults.yaml)
+ :mvn-settings: The settings file with credentials for the project
:project: Git repository name
:project-name: Jenkins job name prefix
: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)
+ :mvn-opts: Sets MAVEN_OPTS to start up the JVM running Maven. (default: '')
+ :mvn-params: Parameters to pass to the mvn CLI. (default: '')
+ :mvn-version: Version of maven to use. (default: mvn35)
: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
:build-node: The node to run the build on.
:jenkins-ssh-credential: Credential to use for SSH. (Generally set
in defaults.yaml)
+ :mvn-settings: The settings file with credentials for the project
:project: Git repository name
:project-name: Jenkins job name prefix
: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)
+ :mvn-opts: Sets MAVEN_OPTS to start up the JVM running Maven. (default: '')
+ :mvn-params: Parameters to pass to the mvn CLI. (default: '')
+ :mvn-version: Version of maven to use. (default: mvn35)
: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