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.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ichec_cicd-0.1.14.tar.gz (18.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ichec_cicd-0.1.14-py3-none-any.whl (22.0 kB view details)

Uploaded Python 3

File details

Details for the file ichec_cicd-0.1.14.tar.gz.

File metadata

  • Download URL: ichec_cicd-0.1.14.tar.gz
  • Upload date:
  • Size: 18.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.14.6

File hashes

Hashes for ichec_cicd-0.1.14.tar.gz
Algorithm Hash digest
SHA256 cecd20d949c6cbc35f6696b73a5cbd8dafa0dd27d9dd6d9926a60af771d922c5
MD5 778b7c91175b7776aa829f91be324cfa
BLAKE2b-256 449977a222f8bc2751874a9a631b59565b55fb34aa06224a32a40adeadec7f7d

See more details on using hashes here.

File details

Details for the file ichec_cicd-0.1.14-py3-none-any.whl.

File metadata

  • Download URL: ichec_cicd-0.1.14-py3-none-any.whl
  • Upload date:
  • Size: 22.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.14.6

File hashes

Hashes for ichec_cicd-0.1.14-py3-none-any.whl
Algorithm Hash digest
SHA256 fae46039eed9b1afc9237a5a60084dc81e641808d39fc53d56079456452d262e
MD5 ea427feda35e1124926af8a225f4bac0
BLAKE2b-256 ba23798891e3a292f579a921ea8b73c0a272cca9ce538ced706bc580c1bf02a2

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page