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.3.tar.gz (19.4 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.3-py3-none-any.whl (23.5 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for archive_and_release-1.0.3.tar.gz
Algorithm Hash digest
SHA256 b9ff4723408ee456a08cdbab636525660b77ec2f650ac348748fac93482f0682
MD5 021b2a118e35cfcbf2e57248214200e0
BLAKE2b-256 192d41e9a0eea8473d7f99a072a6bc0db7e92d10647deccd5025d779ab0169be

See more details on using hashes here.

Provenance

The following attestation bundles were made for archive_and_release-1.0.3.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.3-py3-none-any.whl.

File metadata

File hashes

Hashes for archive_and_release-1.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 7f812d843f79c5f25132aa40d84a10e4c2d1bddae1ff3b8260fe12e651e1b674
MD5 3779e1d0cedbacf464d6ff3477d61481
BLAKE2b-256 3aa4e30d3839cd1577578de5e116180c89351985f0ee0dd2d5177daf505bd0d0

See more details on using hashes here.

Provenance

The following attestation bundles were made for archive_and_release-1.0.3-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