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 rightsSOURCE_PROJ_ID: The numeric project ID for the source repoMY_SYNC_SCRIPT: Path to a script that will use the extracted contents of the source archive to update the target repoASSET_NAME: Name of the asset corresponding to the archive in the source repo's latest release collectionARCHIVE_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)
| File | Size | Uploaded | |
|---|---|---|---|
| ichec_cicd-0.1.15.tar.gz | 18.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|