Internet Explorer is no longer supported. Many things will still work, but your experience will be degraded and some things won't function. Please use a modern browser such as Edge, Chrome, or Firefox.

Build PyPI Project

Modified on July 26, 2024view on GitHub

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:

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:

buildmaster-python-script-template

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.

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.

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

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.

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:

  1. Create a build using this template
  2. Inspect the build's artifacts
  3. Find the subpath you want within the artifact
  4. 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.