Skip to main content

"A cli archiving bunch of files (e.g. bash scripts), from a git repository made up of a number of (public/private) sub modules, and optionally tagging it and creating a github release for it with the resulting archive."

Project description

archive-and-release

Description

Imagine you have a number of scripts in a repository.

Perhaps they a load of bash script and other files that build a suite of services on a number of services.

Importantly, they don't represent a buildable application in the usual sense (like a python cli application for example.)

Perhaps there is method and structure to your madness and the repository is built up of a number of submodules (and some are private...).

Things like GitActions can't access other private repositories, unless you add a GitHub Token to them (usually seen as a bad idea).

This cli can help with this.

Locally, you can specify a github token that can see all submodule repositories in a local virtual environment, install this package into it and:

  1. Locally create an archive (e.g. zip) of a remote repository containing any number of nested submodules.
  2. Create an archive of a remote repository, tag (and push) the git repository, create a GitHub release from the tag and upload the archive to the release.

In both cases you can choose to 'clean' (i.e. remove files and folders matching a pattern, for example '.git') the repository prior to creating the archive.

Installation

Create a virtual environment (optional)

python3 -m venv .env/archive-and-release (or any directory location you like)
. .env/archive-and-release/bin/activate

Install archive-and-release

pip install archive-and-release

Exit the virtual environment

deactivate

Commands

Full options/help

archive-and-release -h

Command options/help

archive-and-release <cmd> -h

Examples to build an archive

archive-and-release build_frontend

archive-and-release build_backend

archive-and-release build --repo "https://github.com/<repository_owner>/<repository_name>" --branch main --repo_target_dir "<clone_target_dir>" --release_target_dir "<created_release_target_dir>" --release_file_name "<created_release_file_name>" --clean_patterns "<path_to_patterns_file>"

Examples to build, tag and create a github release:

archive-and-release release_frontend --tag_version "<tag_version>" --tag_description "<tag_description>"

archive-and-release release_backend --tag_version "<tag_version>" --tag_description "<tag_description>" --release_version "<release_version>" --release_description "<release_description>"

archive-and-release release --repo "https://github.com/<repository_owner>/<repository_name>" --branch main --repo_target_dir "<clone_target_dir>" --release_target_dir "<created_release_target_dir>" --release_file_name "<created_release_file_name>" --clean_patterns "<path_to_patterns_file>" --tag_version "<tag_version>" --tag_description "<tag_description>"

Configuration

There are a number of environment variables that can be used to control the app, or simply create a .env in the directory where you run archive-and-release from.

See the .env.example for more details.

Frontend and Backend

There are commands that build the 'frontend' and 'backend' (for example build_frontend and release_backend). These are short cuts for the build and release commands and don't do anything special.

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

archive_and_release-1.0.1.tar.gz (19.3 kB view details)

Uploaded Source

Built Distribution

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

archive_and_release-1.0.1-py3-none-any.whl (23.5 kB view details)

Uploaded Python 3

File details

Details for the file archive_and_release-1.0.1.tar.gz.

File metadata

  • Download URL: archive_and_release-1.0.1.tar.gz
  • Upload date:
  • Size: 19.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for archive_and_release-1.0.1.tar.gz
Algorithm Hash digest
SHA256 abf9665da78238b3952e87f1284d52960dfee8f24361e59dd6657133babdf2e3
MD5 255e738ddf5061aec96a7f49d602ef67
BLAKE2b-256 b3793d6e1b0e42f624bc9157fd061e2e5eced157c333f0c0aac6ca344c00966a

See more details on using hashes here.

Provenance

The following attestation bundles were made for archive_and_release-1.0.1.tar.gz:

Publisher: build-release.yml on dan-east/archive-and-release

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file archive_and_release-1.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for archive_and_release-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 c81c8262f68fae754d3aac2c063b6ac93b0c9bf57d6de58f363c15e21c0c2717
MD5 ea0ea387b25969ca0d740b012d867b80
BLAKE2b-256 2567df212c488b1d1e6ea37842edb834014af88cc2bd889411d5807e48e40327

See more details on using hashes here.

Provenance

The following attestation bundles were made for archive_and_release-1.0.1-py3-none-any.whl:

Publisher: build-release.yml on dan-east/archive-and-release

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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