name: publish-deep-yellow description: > Publish a new release of Deep Yellow to itch.io and GitHub. Use when Drew says "let's publish", "release this", "push to itch", or wants to do a full release of the deep_yellow project. Handles export, butler push, git tagging, and GitHub release creation.
Publish Deep Yellow
Full publish workflow for the Deep Yellow Godot game. All commands run from the project root.
Prerequisites
- Must be on
masterbranch with all changes merged - Previous version tag exists (workflow auto-increments)
- Butler installed at
/home/drew/.local/bin/butler - Godot export presets configured (Linux, Windows Desktop, Web)
Workflow
Step 1: Determine version
cd /home/drew/projects/deep_yellow
git tag --sort=-v:refname | head -1
Ask Drew what version to tag (patch, minor, or major bump), or infer from the scope of changes since last tag.
Step 2: Export all platforms (headless)
cd /home/drew/projects/deep_yellow
godot --headless --export-release "Linux"
godot --headless --export-release "Windows Desktop"
godot --headless --export-release "Web"
Step 3: Push to itch.io with butler
VERSION=v0.X.Y # from step 1
/home/drew/.local/bin/butler push build/linux aebrer/deep-yellow:linux --userversion $VERSION
/home/drew/.local/bin/butler push build/windows aebrer/deep-yellow:windows --userversion $VERSION
/home/drew/.local/bin/butler push build/web aebrer/deep-yellow:html5 --userversion $VERSION
Step 4: Verify uploads
/home/drew/.local/bin/butler status aebrer/deep-yellow
Step 5: Create tar.gz archives for GitHub release
cd /home/drew/projects/deep_yellow/build
tar czf deep_yellow_${VERSION}_linux.tar.gz -C linux .
tar czf deep_yellow_${VERSION}_windows.tar.gz -C windows .
tar czf deep_yellow_${VERSION}_web.tar.gz -C web .
Step 6: Create git tag and push
cd /home/drew/projects/deep_yellow
git tag $VERSION
git push origin $VERSION
Step 7: Create GitHub release
gh release create $VERSION \
/home/drew/projects/deep_yellow/build/deep_yellow_${VERSION}_linux.tar.gz \
/home/drew/projects/deep_yellow/build/deep_yellow_${VERSION}_windows.tar.gz \
/home/drew/projects/deep_yellow/build/deep_yellow_${VERSION}_web.tar.gz \
--title "$VERSION — Release Title" \
--notes "Release notes here"
Use a HEREDOC for multi-line release notes. Include a link to the itch.io page:
[aebrer.itch.io/deep-yellow](https://aebrer.itch.io/deep-yellow)
Step 8: Generate itch.io devlog post
Butler can't post devlogs — Drew will paste this manually. Generate a devlog markdown file at /tmp/deep-yellow-devlog-${VERSION}.md for copy-pasting into itch.io.
Process:
- Read the GitHub release notes just created in Step 7
- Read the commit log since the previous tag:
git log --oneline <prev_tag>..<new_tag> - Write a devlog post that:
- Uses the release title as the heading
- Rewrites the changelog into player-facing language (not commit messages)
- Groups changes into sections like "New Features", "Improvements", "Bug Fixes" as appropriate
- Keeps the tone consistent with previous devlogs (conversational, technical but accessible)
- Omits internal/chore changes that don't affect players (dead code removal, doc updates, CI changes)
- Ends with a brief "What's Next" sentence or two if there are obvious open issues to mention
- Save to
/tmp/deep-yellow-devlog-${VERSION}.md - Suggest tags for the post
Drew will review, edit if needed, and paste into the itch.io devlog form.
Notes
- Export preset names are case-sensitive: "Linux", "Windows Desktop", "Web"
- Butler uses delta compression — subsequent pushes are fast
- Use absolute paths for
gh release createasset arguments - Archives go in
build/alongside the platform directories gh pr editmay fail with GraphQL error — usegh apidirectly if needed (see CLAUDE.md)