{"id":24054497,"url":"https://github.com/etherbeing/github_deploy","last_synced_at":"2025-10-06T15:01:50.176Z","repository":{"id":84235019,"uuid":"606492962","full_name":"etherbeing/github_deploy","owner":"etherbeing","description":"Single script to deploy a release to github, the code for this is simple enough for anyone to read just a short file and then include it in its CD pipeline. Despite others options this project only depends on one script and the rest of files are just documentation or examples...","archived":false,"fork":false,"pushed_at":"2023-03-18T16:16:19.000Z","size":33,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-09T03:46:12.630Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/etherbeing.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-02-25T16:55:18.000Z","updated_at":"2023-02-25T17:03:11.000Z","dependencies_parsed_at":null,"dependency_job_id":"65383542-064c-40dd-85f1-e586bd65fb3c","html_url":"https://github.com/etherbeing/github_deploy","commit_stats":null,"previous_names":["etherbeing/github_deploy"],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/etherbeing%2Fgithub_deploy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/etherbeing%2Fgithub_deploy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/etherbeing%2Fgithub_deploy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/etherbeing%2Fgithub_deploy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/etherbeing","download_url":"https://codeload.github.com/etherbeing/github_deploy/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240840108,"owners_count":19866168,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-01-09T03:46:21.013Z","updated_at":"2025-10-06T15:01:50.085Z","avatar_url":"https://github.com/etherbeing.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"========================\nGithub Deploy :dog: \n========================\n\n.. image:: https://svgshare.com/i/Zhy.svg\n    :target: https://svgshare.com/i/Zhy.sv\n\n.. image:: https://img.shields.io/badge/Maintained%3F-yes-green.svg\n    :target: https://github.com/n4b3ts3/github_deploy/graphs/commit-activity\n\n.. image:: https://img.shields.io/github/license/n4b3ts3/github_deploy.svg\n    :target: https://github.com/n4b3ts3/github_deploy/blob/master/LICENSE\n\n.. image:: https://img.shields.io/github/release/n4b3ts3/github_deploy.svg\n    :target: https://github.com/n4b3ts3/github_deploy/releases/\n\n.. image:: https://img.shields.io/github/issues/n4b3ts3/github_deploy.svg\n    :target: https://img.shields.io/github/release/n4b3ts3/github_deploy/issues/\n\n.. image:: https://badgen.net/badge/Open%20Source%20%3F/Yes%21/blue?icon=github\n    :target: https://github.com/n4b3ts3/github_deploy/\n\n------------\nHow to use\n------------\nFirst, create a file inside the ~/.github_deploy/ folder, for example, example.env\nIs very important the .env part if the file doesnt end with that it wont be recognized by the script.\nFor security reasons you may need to use GPG in the .env file, for that please set the GPG_PROJECT environment to any value \nSo lets say we have an original .env file like follows.\n\n.. code-block:: bash\n\n    export GD_USERNAME=\u003cyour-username\u003e\n    export PAT=\u003cyour-encrypted-pat\u003e\n    export REPOSITORY=\u003cyour-repository\u003e\n    export BRANCH=\u003cyour-target-branch\u003e\n    export TAG=\u003cvX.X.X\u003e\n    export DESCRIPTION=\u003cyour-release-description\u003e\n    export PRERELEASE=\u003ctrue|false\u003e\n    export GEN_PREREL_NOTES=\u003ctrue|false\u003e\n    export DRAFT=\u003ctrue|false\u003e\n\nthen we have to use the next over our previously created .env file:\n\n.. code-block:: bash\n\n    gpg -r \u003cyour-key-id\u003e -e \u003cyour-file\u003e.env \n\n\nthe previous will create a file called example.env.gpg, `PLEASE NOTE THAT IF THE FILE DOESNT ENDS WITH .env.gpg or .env THE SCRIPT IS NOT GOING TO RECOGNIZE IT` \nNow, please delete the .env file for security reasons (SO NO ONE WITHOUT ACCESS TO YOUR GPG Key wont be able to access the release configurations)\nFinally, lets do as follows in your Jenkinsfile\n\n.. code-block:: groovy\n\n    pipeline{\n        agent any\n        stages{\n            stage(\"Build\"){\n                steps{\n                    sh \"echo Do your Build steps as you pleased\"\n                }\n            }\n            \n            stage(\"Test\"){\n                steps{\n                    sh \"echo Do your Test steps as you pleased\"\n                }\n            }\n\n            stage(\"Release\"){\n                steps{\n                    sh \"export PROJECT_REGEX=\"\u003cyour-project-id\u003e\" \u0026\u0026 github_deploy.sh /path/to/my/build1 /path/to/my/build2 /path/to/my/buildn \u003c\u003c\u003c \u003cyour-key-id\u003e\"\n                }\n            }\n\n            stage(\"Deploy\"){\n                steps{\n                    sh \"echo Do your Deploy steps as you pleased\"\n                }\n            }\n        }\n    }\n\nfor specifying a custom project to deploy you must set PROJECT_REGEX environment or variable when calling this script. This allow us to use the value\nof that var to create a custom regex matching the configuration file...\nYou may also want to create a dynamic .env file in your project, for the purpose of updating your release descriptions or updating your tag name etc...\nfor that purpose create a file using the syntax of KEY: VALUE like follow:\n\n.. code-block::\n\n    TAG: v1.0.3\n    DESCRIPTION: MY BEAUTIFUL DESCRIPTION WITHOUT NEW LINES PLEASE\n\nThe previous .env file can have any key described at the top of this README (at location ~/.github_deploy) \n\n---------------\nHow to install\n---------------\nIf you want to install this to your system please do as follows\n\n.. code-block:: bash\n\n    wget https://github.com/n4b3ts3/github_deploy/releases/download/v1.0.3/github_deploy.zip\n    unzip github_deploy\n    mv `pwd`/github_deploy.sh /usr/local/bin/git-deploy \n\n\n\n---------------\nMaintainers\n---------------\n.. image:: https://img.shields.io/badge/maintainer-n4b3ts3-blue\n    :target: mailto://n4b3ts3@gmail.com\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fetherbeing%2Fgithub_deploy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fetherbeing%2Fgithub_deploy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fetherbeing%2Fgithub_deploy/lists"}