Shared build utilities and Jenkins pipeline library for Simulation Science projects.
Project description
Vivarium Build Utils contains shared build utilities for Simulation Science projects.
You can install vivarium-build-utils from PyPI with pip:
pip install vivarium-build-utils
or build it from source by cloning the monorepo and installing this package:
git clone https://github.com/ihmeuw/vivarium-suite.git
cd vivarium-suite/libs/build-utils
conda create -n ENVIRONMENT_NAME
pip install -e .
Overview
This repository provides:
`vars/`: Jenkins shared library functions for continuous integration pipelines
`resources/`: Shared Makefiles and build scripts for consistent build processes
Note: for help with the Make targets available to any environment with this repository installed, run make help in the terminal.
Monorepo support
vivarium-build-utils supports both standalone repos and monorepos where many packages live under libs/<pkg>/. Standalone repos keep working with no changes; the sections below describe what’s needed for a monorepo.
Top-level Jenkinsfile (provisioner)
The monorepo’s root Jenkinsfile calls monorepo() to provision a Multibranch Pipeline for each per-package Jenkinsfile. Run this on the default branch only:
@Library('vivarium_build_utils') _
monorepo(
jenkinsfiles: [
'libs/core/Jenkinsfile',
'libs/public-health/Jenkinsfile',
],
// Jenkins credential ID for the GitHub App. Required, no default; vbu
// stays org-agnostic so the literal UUID lives next to the org context.
githubCredentialsId: 'fad62062-b1f4-447b-997f-005d6b1ea41e',
folderPrefix: 'Public', // optional, defaults to "Public"
)
The provisioned pipelines land under <folderPrefix>/<repo>/libs/<pkg>/.
Per-package Jenkinsfile
Each libs/<pkg>/Jenkinsfile calls reusable_pipeline() the same way a standalone repo would, with one new argument:
@Library('vivarium_build_utils') _
reusable_pipeline(
test_types: ['unit', 'integration'],
deployable: true,
env_reqs: 'ci_jenkins', // pyproject.toml extra to install
)
env_reqs selects which [project.optional-dependencies] extra make install pulls in. Omit it (or leave empty) on standalone repos to keep base.mk’s default of dev.
Deployable callers (deployable: true) can also pass github_credentials_id: '<jenkins-credential-id>' to override the git credential used at deploy time for pushing the release tag. When omitted, the deploy stage falls back to the credential configured on the Multibranch Pipeline’s branch source, which is the right default for most repos.
Tag prefix
The TAG_PREFIX environment variable controls both make tag-version and make validate-tag. It must be set consistently in both targets, or validate-tag will silently look at the wrong set of tags.
Standalone repos: leave unset. Tags are v<X.Y.Z>.
Monorepo libs: set TAG_PREFIX=vivarium-<lib>- (e.g. vivarium-core-). Tags become vivarium-<lib>-v<X.Y.Z>.
Release workflows that invoke make validate-tag or make tag-version should export TAG_PREFIX before running them.
Fetching from internal Artifactory
IHME_PYPI defaults to the internal Artifactory URL and is woven into EXTRA_INDEX_FLAGS for make install. Override it to empty (make install IHME_PYPI=) in environments that can’t reach IHME’s network (e.g. GitHub Actions runners). make deploy-package-artifactory requires a non-empty IHME_PYPI and is Jenkins/internal-only.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file vivarium_build_utils-4.2.2.tar.gz.
File metadata
- Download URL: vivarium_build_utils-4.2.2.tar.gz
- Upload date:
- Size: 49.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
540ee814d7b4f35c021300c32a656931fc772e1036e59973fbd1d5df4c5c3ce1
|
|
| MD5 |
741401b4faa7e0f81d2da5794b702151
|
|
| BLAKE2b-256 |
42d19d4f6677a12d58cc0fb9cea306c798ad2407edfa7b1ca3190c7914b35372
|
Provenance
The following attestation bundles were made for vivarium_build_utils-4.2.2.tar.gz:
Publisher:
release.yml on ihmeuw/vivarium-suite
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
vivarium_build_utils-4.2.2.tar.gz -
Subject digest:
540ee814d7b4f35c021300c32a656931fc772e1036e59973fbd1d5df4c5c3ce1 - Sigstore transparency entry: 2025862062
- Sigstore integration time:
-
Permalink:
ihmeuw/vivarium-suite@d883f45f3262da4c3379db416c008882c5eb768d -
Branch / Tag:
refs/heads/main - Owner: https://github.com/ihmeuw
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@d883f45f3262da4c3379db416c008882c5eb768d -
Trigger Event:
push
-
Statement type:
File details
Details for the file vivarium_build_utils-4.2.2-py3-none-any.whl.
File metadata
- Download URL: vivarium_build_utils-4.2.2-py3-none-any.whl
- Upload date:
- Size: 19.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b63eeffa438410f664b071cf4dffd92dcaafbe6eb3b4a915508c694c5a48dd74
|
|
| MD5 |
2480b8e412a48525ee2d19c7c8336647
|
|
| BLAKE2b-256 |
d578ab8fc76ffebac03b6e2a08d71e1f2877cc4cd3e173da674b178ff2eb4b3a
|
Provenance
The following attestation bundles were made for vivarium_build_utils-4.2.2-py3-none-any.whl:
Publisher:
release.yml on ihmeuw/vivarium-suite
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
vivarium_build_utils-4.2.2-py3-none-any.whl -
Subject digest:
b63eeffa438410f664b071cf4dffd92dcaafbe6eb3b4a915508c694c5a48dd74 - Sigstore transparency entry: 2025862309
- Sigstore integration time:
-
Permalink:
ihmeuw/vivarium-suite@d883f45f3262da4c3379db416c008882c5eb768d -
Branch / Tag:
refs/heads/main - Owner: https://github.com/ihmeuw
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@d883f45f3262da4c3379db416c008882c5eb768d -
Trigger Event:
push
-
Statement type: