A simple command-line tool to manage GitHub releases. With this tool, you can create new releases, upload assets to existing releases, and delete releases by tag name.
releaseMaker is used in all of the 8ff repos including this one, example build can be see in .github/workflows/build.yml
/tmp/releaseMaker upload ${{ github.repository }} ${{ env.TAG }} [file] [assetName]
repo="releaseMaker"; name="releaseMaker"; os=$(uname | tr '[:upper:]' '[:lower:]'); arch=$(uname -m); case $arch in x86_64) arch="amd64" ;; arm64) arch="arm64" ;; esac; url="https://github.com/8ff/${repo}/releases/download/latest/${name}.${os}.${arch}"; curl -L $url -o ${name} && chmod +x ${name}
Grab a binary from releases or clone the repository and build the project using Go:
git clone https://github.com/8ff/releaseMaker.git
cd releaseMaker
go build
Make sure to set your GitHub token as an environment variable:
export GITHUB_TOKEN=your_github_token
Create a new release for the specified repository:
./releaseMaker create [owner/repo] [tag] [name] [body]
owner/repo
: The owner and repository name, separated by a slash.tag
: The tag name for the release.name
: The name of the release.body
: The body text of the release.
Upload a file as an asset to an existing release by tag name:
./releaseMaker upload [owner/repo] [tag] [file] [assetName]
owner/repo
: The owner and repository name, separated by a slash.tag
: The tag name of the release to upload the asset to.file
: The path to the file to upload.assetName
: The name of the asset in the release.
Delete an existing release by tag name:
./releaseMaker delete [owner/repo] [tag]
owner/repo
: The owner and repository name, separated by a slash.tag
: The tag name of the release to delete.
Feel free to open issues or submit pull requests. All contributions are welcome!