Skip to main content

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 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

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)

Source distribution for iccicd 0.1.6
File Size Uploaded
iccicd-0.1.6.tar.gz 22.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for iccicd 0.1.6
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

0.1.6 This release

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

0.0.9

2 release files

0.0.8

2 release files

0.0.7

2 release files

0.0.6

2 release files

0.0.5

2 release files

0.0.3

2 release files

0.0.2

2 release files

0.0.1

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