Skip to content

Instantly share code, notes, and snippets.

@veechs
Last active April 5, 2025 18:19
Show Gist options
  • Save veechs/efae686107e56123f735f76ecad2027c to your computer and use it in GitHub Desktop.
Save veechs/efae686107e56123f735f76ecad2027c to your computer and use it in GitHub Desktop.
Automated WoW Addon Releases

⭐️ This has been superseded (for me) by Super Easy WoW Addon Releases with GitHub Actions.

The new approach is triggered by just a changelog update, handles tag creation, and bumps the TOC version for you.





Easy WoW Addon Releases with GitHub Actions

Tag a commit to create a new release with zipped code and changelog-sourced notes.

Setup

⚠️ This assumes you already have a changelog. If not, you'll need to create one in the correct format.
You can also change the workflow configuration so it doesn't require a changelog if you really want to.

  1. In your GitHub repository, create a new custom workflow.
    Actions > New Workflow > Set up a workflow yourself…
  2. Name the file whatever you want.
    Mine is called AutoReleaseOnVersionTag.yml.
  3. Copy and paste the workflow configuration.
  4. Update both lines below the 🔸 comments to reflect the desired zip file name.
  5. Make any other adjustments, referring to the Zip Release and git-release documentation as needed.
  6. Commit the workflow.

Triggering a release

  1. Update your changelog according to the format required by git-release.
  2. Commit changes locally.
  3. Tag the commit as vX.Y.Z (e.g. v3.1.1).
  4. Push to GitHub.

Notes

  • The tag needs to be formatted as vX.Y.Z, but the changelog heading must be ## [X.Y.Z] - YYYY-MM-DD
  • v1.5 will not trigger the workflow; it must be v1.5.0.
  • So long as the changelog is updated, you can tag any subsequent commit to invoke the workflow.
  • You probably know this if you’re a command line aficionado, but git push does not include tags; git push origin vX.Y.Z does.
  • There’s currently no way to add tags on the GitHub website without creating a release, but there is a workaround using pre-releases.
  • Obviously step #1 doesn’t matter if you’re not using a changelog.
name: Automatic Release on vX.Y.Z Tag
on:
push:
tags:
- "v[0-9]+.[0-9]+.[0-9]+"
jobs:
release:
# Override repository workflow security settings to ensure git-release can create the new release.
permissions:
contents: write
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Create Zip
uses: thedoctor0/[email protected]
with:
type: 'zip'
# 🔸 Must match git-release's `args` parameter below.
filename: 'MyAddon.zip'
# Adjust as needed.
exclusions: '*.git* .vscode .editorconfig'
- name: Create Release
uses: docker://antonyurchenko/git-release:latest
env:
# No configuration needed to use this.
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# Filename is case-sensitive so uncomment the following to override the default CHANGELOG.md.
# CHANGELOG_FILE: "Changelog.md"
with:
# 🔸 Must match zip-release's `filename` parameter above.
args: MyAddon.zip
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment