archive-and-release


Namearchive-and-release JSON
Version 1.0.0 PyPI version JSON
download
home_pagehttps://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_time2025-07-22 21:20:40
maintainerNone
docs_urlNone
authorDan East
requires_python>=3.10
licenseNone
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"
}
        
Elapsed time: 1.16333s