- 09 Jan 2023
- 2 Minutes to read
- Print
- DarkLight
- PDF
Build PyPI Project
- Updated on 09 Jan 2023
- 2 Minutes to read
- Print
- DarkLight
- PDF
A script template is a simple, no-code solution for performing common build or deployment operations and can be converted to OtterScript at any time.
The Build PyPI Project script template will:
- check out out code from Git
- install packages using pip
- optionally run tests
- track package usage
- capture build artifacts for later deployment
This article will detail the options for these steps, as well as how they're performed.
Using This Script Template
A synchronized Git repository is required for this template. If your application does not have one, you will not be able to add or edit this script template.
To add this script template to your application, navigate to Scripts, click Add Script, and select Build PyPI Project from the list of Build Script Templates. After doing so, you'll see a dialog like this:
This article will discuss how these options are used in different steps of the build process.
Checking Out from Git
First, the script template checks out code from a Git repository. The branch (or specific commit) is selected when the build is created, before the script is even run. The script will then check out code from that exact commit. This step uses the Git::Checkout-Code
operation without any parameters.
Install PyPI Packages
PyPI Index
Select where to fetch the PyPI packages needed for your project. This list will typically contain PyPI feeds from your connected ProGet instance, and an option for Not Specified, which will use the default repository.
Run PyUnit Tests
Select whether to run PyUnit unit tests for this project. This step uses the Python::Execute-PyUnit
operation without any parameters.
Other Options
Settings for other common operations using dotnet build/publish are also included:
- Output directory: Build output will be copied here instead of the default output directory
- Framework: Framework version to build, typically only used for multi-targeted projects. Uses common .NET monikers such as net6.0, net452, netstandard2.0, etc
- Runtime: When publishing an executable, specifies the runtime/platform to target such as win-x64, linux-x64, etc
- Self-contained: When publishing, include the entire .NET runtime and all required dependencies in the output
- Additional arguments: These are passed to
dotnet
exactly as specified
This step uses the DotNet::Build
or DotNet::Publish
operation, depending on the Command you selected. The parameters will depend on the options you've entered.
Record Dependencies to ProGet
When a ProGet feed is selected for a NuGet package source, a checkbox to scan for package dependencies will appear. If checked, the PyPI dependencies for this build will be recorded in your ProGet instance. This step uses the ProGet::Scan
operation with the Project
parameter set to requirements.txt
.
Capturing Build Artifacts
As the last step, BuildMaster will capture artifacts from a path within the working directory that you specify. These are the files that you will deploy later.
Finding the Right Subpath
Usually, the easiest way to find the path you want is:
- Create a build using this template
- Inspect the build's artifacts
- Find the subpath you want within the artifact
- Enter that in the "Capture artifacts from:"
The build artifact going forward will only contain those files. To learn about more options with artifacts, see the Build Artifacts documentation. This step uses the Create-Artifact
operation, with the parameters depending on the options you've entered.