iccicd
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 iccicd
Features
Deploy a Package to a Repository
From the package's top-level directory:
iccicd 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:
iccicd 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:
iccicd 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.
iccicd 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
Licensing
This project is licensed under the GPLv3+. See the accompanying LICENSE.txt file for details.
Release files for iccicd 0.1.6
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| iccicd-0.1.6.tar.gz | 22.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| iccicd-0.1.6-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 46.3 kB
Release files / iccicd-0.1.6.tar.gz
| Download URL | iccicd-0.1.6.tar.gz |
|---|---|
| Size | 22.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1708debd51c13d9640699ffa5481085dbb2f2c602fa3e9f41d8c761f533f1f81
|
|
BLAKE2b-256 checksum How to use checksums |
9f3f79da71daf98412a9e70f00622bc8961c1748905efc12f760aa9fc58f8893
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.3
|
Release files / iccicd-0.1.6-py3-none-any.whl
| Download URL | iccicd-0.1.6-py3-none-any.whl |
|---|---|
| Size | 23.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2793dd9c41aedbc35945fb69f4d62de85d2ed0607bb36aaf58cd00f3a91a7eff
|
|
BLAKE2b-256 checksum How to use checksums |
a785e8edee7d7033b24c5888e180e820db12ab7690bc8b42aebfefb7971e2cc6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.3
|