Skip to main content

ichec_cicd

This project is a collection of utilities for managing CI/CD pipelines at ICHEC.

It provides opinionated interfaces to encourage standarization of our project structures and workflows.

Install

The package is available from PyPI:

pip install ichec_cicd

Features

Deploy a Package to a Repository

From the package's top-level directory:

ichec_cicd deploy --token $REPO_TOKEN

As an example, for a Python project this might be the PyPI repository's token.

Set a Package's Version Number

From the package's top-level directory:

ichec_cicd set_version $VERSION

Increment a Repository's Tag

From the repository's top-level directory, and on the branch the tag will be dervied from:

ichec_cicd increment_tag --field patch

Here semver tag versioning is assumed with a major.minor.patch scheme. Note: in a CI/CD pipeline some more input options are needed to initialize the git repo for pushing the tag to. You can use the --help flag for more details.

Sync Content With an External Upstream

Here we pull content from an external upstream repository and use it to update the content in a local repo. This can be useful for public mirrors that include a subset of the content in an internal repo.

ichec_cicd sync_external_archive \
    --source_token $SOURCE_TOKEN \ 
    --project_id $SOURCE_PROJ_ID \
    --sync_script $MY_SYNC_SCRIPT \
    --asset_name $ASSET_NAME \
    --archive_name $ARCHIVE_NAME \
    --target_token $TARGET_TOKEN

The inputs are:

  • SOURCE_TOKEN: Gitlab access token for the source (private) repo - must have asset download rights
  • SOURCE_PROJ_ID: The numeric project ID for the source repo
  • MY_SYNC_SCRIPT: Path to a script that will use the extracted contents of the source archive to update the target repo
  • ASSET_NAME: Name of the asset corresponding to the archive in the source repo's latest release collection
  • ARCHIVE_NAME: Name of the downloaded file corresponding to the archive - this can differ from the asset name.
  • TARGET_TOKEN: OATH token for the target repo - so that it can be pushed to from a CI runner

Generate a containerfile

Here we generate a containerfile from a template given a release manifest in a repo:

ichec_cicd containerfile generate --manifest <path_to_manifest> --template_dir <container_templates> 

where <path_to_manifest> is the path to an ICHEC release manifest and <container_template> is a directory with container templates.

Containerize a Web App

Here we set up a standardized container build context for web applications, i.e. Django or FastAPI apps.

ichec_cicd wrap --project <project_to_wrap> --template <wrapping_template> 

where <project_to_wrap> is a url or filesystem path to a repository with the project to be wrapped and <wrapping_template> is a url or path to a repository with a template to do the wrapping. The project to be wrapped needs to have an ichec_manifest.yml file at its top level with package metadata and the <wrapping_template> should match the framework being used, e.g. (Django/FastAPI).

Licensing

This project is licensed under the MIT License. See the accompanying LICENSE file for details.

Release files for ichec-cicd 0.1.15

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ichec-cicd 0.1.15
File Size Uploaded
ichec_cicd-0.1.15.tar.gz 18.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ichec-cicd 0.1.15
File Interpreter ABI Platform
ichec_cicd-0.1.15-py3-none-any.whl Python 3 none any Details

Total release size: 41.0 kB

Release files / ichec_cicd-0.1.15.tar.gz

Download URL ichec_cicd-0.1.15.tar.gz
Size 18.8 kB
Tags Source
SHA-256 checksum
How to use checksums
fd1210341015c933c14faf3249bd6df306dda6e48ff48cf01f8826d97c4d1cb1
BLAKE2b-256 checksum
How to use checksums
b6ea445faa3fc70af88dacb0e332ce5e024086ab5cbaa521ad95c4b6d65ffe50
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.6

Release files / ichec_cicd-0.1.15-py3-none-any.whl

Download URL ichec_cicd-0.1.15-py3-none-any.whl
Size 22.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
cc17de04c2e29a51f4ea73f5b35cd9ba24a9516b19f4dd4b0cf7e00e2f85d6de
BLAKE2b-256 checksum
How to use checksums
1e63cb0c9d5a49df60794ba27dafed86ac020b2fa773a142bad23b274cca43e2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.6

Release history Release notifications | RSS feed

0.1.16

2 release files

This release

0.1.15 This release

2 release files

0.1.13

2 release files

0.1.12

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page