Name | archive-and-release JSON |
Version |
1.0.0
JSON |
| download |
home_page | https://github.com/dan-east/cloud-release-builder |
Summary | "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." |
upload_time | 2025-07-22 21:20:40 |
maintainer | None |
docs_url | None |
author | Dan East |
requires_python | >=3.10 |
license | None |
keywords |
|
VCS |
 |
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# 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)</br>
`. .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](https://github.com/dan-east/archive-and-release/blob/main/.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.
Raw data
{
"_id": null,
"home_page": "https://github.com/dan-east/cloud-release-builder",
"name": "archive-and-release",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": null,
"keywords": null,
"author": "Dan East",
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/69/47/ebe9fd4d30c427d2a705dafc5f9fbb28d981679bf0867cb74d69b7241c71/archive_and_release-1.0.0.tar.gz",
"platform": null,
"description": "# archive-and-release\n\n## Description\nImagine you have a number of scripts in a repository. \n\nPerhaps they a load of bash script and other files that build a suite of services on a number of services.\n\nImportantly, they don't represent a buildable application in the usual sense (like a python cli application for example.)\n\nPerhaps there is method and structure to your madness and the repository is built up of a number of submodules (and some are private...).\n\nThings like GitActions can't access other private repositories, unless you add a GitHub Token to them (usually seen as a bad idea).\n\nThis cli can help with this.\n\nLocally, you can specify a github token that can see all submodule repositories in a local virtual environment, install this package into it and:\n\n1. Locally create an archive (e.g. zip) of a remote repository containing any number of nested submodules.\n2. 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.\n\nIn 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.\n\n## Installation\n### Create a virtual environment (optional)\n`python3 -m venv .env/archive-and-release` (or any directory location you like)</br>\n`. .env/archive-and-release/bin/activate`\n\n### Install archive-and-release\n`pip install archive-and-release`\n\n### Exit the virtual environment\n`deactivate`\n\n## Commands\n\n### Full options/help\n`archive-and-release -h`\n\n### Command options/help\n`archive-and-release <cmd> -h`\n\n### Examples to build an archive\n`archive-and-release build_frontend`\n\n`archive-and-release build_backend`\n\n`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>\"` \n\n### Examples to build, tag and create a github release:\n`archive-and-release release_frontend --tag_version \"<tag_version>\" --tag_description \"<tag_description>\"`\n\n`archive-and-release release_backend --tag_version \"<tag_version>\" --tag_description \"<tag_description>\" --release_version \"<release_version>\" --release_description \"<release_description>\"`\n\n`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>\"`\n\n\n## Configuration\nThere 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.\n\nSee the [.env.example](https://github.com/dan-east/archive-and-release/blob/main/.env.example) for more details.\n\n\n## Frontend and Backend\nThere 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.\n",
"bugtrack_url": null,
"license": null,
"summary": "\"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.\"",
"version": "1.0.0",
"project_urls": {
"Homepage": "https://github.com/dan-east/cloud-release-builder"
},
"split_keywords": [],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "6633ef4733130c977fc2966a9fe9872322a8763b3244b27be1598aa7260b11fb",
"md5": "530c87b7e748c525135f401ac02aa783",
"sha256": "9ef48f8134a0b168ade35e7c7b56a52e51cb9f1d37fc8b6b31e163ea2cc1a4f5"
},
"downloads": -1,
"filename": "archive_and_release-1.0.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "530c87b7e748c525135f401ac02aa783",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 23514,
"upload_time": "2025-07-22T21:20:38",
"upload_time_iso_8601": "2025-07-22T21:20:38.759225Z",
"url": "https://files.pythonhosted.org/packages/66/33/ef4733130c977fc2966a9fe9872322a8763b3244b27be1598aa7260b11fb/archive_and_release-1.0.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "6947ebe9fd4d30c427d2a705dafc5f9fbb28d981679bf0867cb74d69b7241c71",
"md5": "c0d3d6d2f7c2a974c31e402b4b9e96fc",
"sha256": "d06c09c5340ef49237beb2b969aee5b6861b683de582b67182070531ca518201"
},
"downloads": -1,
"filename": "archive_and_release-1.0.0.tar.gz",
"has_sig": false,
"md5_digest": "c0d3d6d2f7c2a974c31e402b4b9e96fc",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 19341,
"upload_time": "2025-07-22T21:20:40",
"upload_time_iso_8601": "2025-07-22T21:20:40.104408Z",
"url": "https://files.pythonhosted.org/packages/69/47/ebe9fd4d30c427d2a705dafc5f9fbb28d981679bf0867cb74d69b7241c71/archive_and_release-1.0.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-22 21:20:40",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "dan-east",
"github_project": "cloud-release-builder",
"github_not_found": true,
"lcname": "archive-and-release"
}