Skip to main content

A collection of utilities to manage ICHEC project CI/CD pipelines.

Project description

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.

Project details


Download files

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

Source Distribution

iccicd-0.1.2.tar.gz (21.7 kB view details)

Uploaded Source

Built Distribution

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

iccicd-0.1.2-py3-none-any.whl (23.2 kB view details)

Uploaded Python 3

File details

Details for the file iccicd-0.1.2.tar.gz.

File metadata

  • Download URL: iccicd-0.1.2.tar.gz
  • Upload date:
  • Size: 21.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for iccicd-0.1.2.tar.gz
Algorithm Hash digest
SHA256 8850c8120ff733a9932de41152d9017c5acff8fa3db5564585e4aa857eaef404
MD5 3866c5b5aa61256e514d2fcc128a52e1
BLAKE2b-256 265d4055b212e261721974eb5ba5a9abf21aafb63a7dc212447c19109e907001

See more details on using hashes here.

File details

Details for the file iccicd-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: iccicd-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 23.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for iccicd-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 b7cf3f8920cee9325bdd33e9f78abe35f8114e7ed9b405a96ec63434d4dc9c1b
MD5 55a44ba3bb5b60f4f6a5cd6e4f51fcf5
BLAKE2b-256 5b7d1ba60d4abe5ea705b40f80f1f807a68cb0b1d7a5d20b4070c92417bdb954

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