Files
Strix/.claude/skills/release_strix/SKILL.md
T
eduard256 e40dccbb90 Remove CI/CD, unify Docker image for Docker Hub and HA add-on
- Remove GitHub Actions workflows (ci.yml, docker.yml, release.yml)
- Remove GoReleaser configuration
- Remove RELEASE.md (replaced by /release_strix skill)
- Add HA options.json support in config.go (reads /data/options.json)
- Add Version field to Config, pass real version to health endpoint
- Change Version from const to var, inject via ldflags at build time
- Add ARG VERSION to Dockerfile for build-time version injection
- Reset webui/package.json version to 0.0.0 (not used functionally)
- Clear probe fields on back navigation in frontend
- Add /release_strix and /release_strix_dev skills
2026-03-17 07:23:04 +00:00

4.0 KiB

name, description, disable-model-invocation
name description disable-model-invocation
release_strix Full release of Strix -- merge develop to main, tag, build multiarch Docker image, push to Docker Hub, update hassio-strix, create GitHub Release. true

Strix Release

You are performing a full release of Strix. Follow every step exactly. Do NOT skip steps. Do NOT ask for confirmation except where explicitly noted below.

Repositories

  • Strix: /home/user/Strix
  • hassio-strix: /home/user/hassio-strix

Step 1: Gather information

cd /home/user/Strix
git checkout develop
git pull origin develop
git pull origin main

# Get last release tag
git tag --sort=-version:refname | head -1

# Show all commits since last release
git log main..develop --oneline

# Show changed files
git diff main..develop --stat

Step 2: Ask for version (THE ONLY QUESTION)

Use AskUserQuestion to ask the user which version to release.

Show them:

  • The last tag
  • The list of commits from Step 1

Offer options:

  • Next patch (e.g. 1.0.9 -> 1.0.10)
  • Next minor (e.g. 1.0.9 -> 1.1.0)
  • Next major (e.g. 1.0.9 -> 2.0.0)
  • Other (user types custom version)

Wait for answer. Store the chosen version as VERSION (without "v" prefix).

Step 3: Verify build

cd /home/user/Strix
go test ./...
go build ./...

If tests or build fail -- STOP and report the error. Do not continue.

Step 4: Update CHANGELOG.md

Read /home/user/Strix/CHANGELOG.md. Add a new section at the top (after the header lines), based on the commits from Step 1. Follow the existing format exactly:

## [VERSION] - YYYY-MM-DD

### Added
- ...

### Fixed
- ...

### Changed
- ...

Use today's date. Categorize commits into Added/Fixed/Changed/Technical sections. Only include sections that have entries. Write clear, user-facing descriptions (not raw commit messages).

Step 5: Git -- commit, merge, tag, push

cd /home/user/Strix
git add CHANGELOG.md
git commit -m "Release v$VERSION"

git checkout main
git merge develop --no-ff -m "Merge develop into main for v$VERSION release"
git tag v$VERSION

git push origin main --tags

git checkout develop
git merge main
git push origin develop

Step 6: Build and push Docker image

cd /home/user/Strix
docker buildx build --platform linux/amd64,linux/arm64 \
  --build-arg VERSION=$VERSION \
  -t eduard256/strix:$VERSION \
  -t eduard256/strix:latest \
  -t eduard256/strix:$(echo $VERSION | cut -d. -f1-2) \
  -t eduard256/strix:$(echo $VERSION | cut -d. -f1) \
  --push .

Step 7: Verify Docker Hub

curl -s "https://hub.docker.com/v2/repositories/eduard256/strix/tags/?page_size=10" | jq '.results[].name'
docker manifest inspect eduard256/strix:$VERSION | jq '.manifests[].platform'

Verify the new version tag exists and both amd64 and arm64 platforms are present.

Step 8: Smoke test

docker run --rm -d --name strix-smoke-test -p 14567:4567 eduard256/strix:$VERSION
sleep 5
curl -s http://localhost:14567/api/v1/health | jq '.version'
docker stop strix-smoke-test

Verify the health endpoint returns the correct version string.

Step 9: Update hassio-strix

cd /home/user/hassio-strix
git pull origin main

Edit /home/user/hassio-strix/strix/config.json -- change "version" to the new VERSION.

Edit /home/user/hassio-strix/strix/CHANGELOG.md -- add the same CHANGELOG section as in Step 4.

cd /home/user/hassio-strix
git add strix/config.json strix/CHANGELOG.md
git commit -m "Release v$VERSION"
git push origin main

Step 10: GitHub Release

cd /home/user/Strix
PREV_TAG=$(git tag --sort=-version:refname | sed -n '2p')
gh release create v$VERSION \
  --title "v$VERSION" \
  --notes "$(git log --oneline ${PREV_TAG}..v$VERSION)"

Step 11: Final report

Output a summary:

Release v$VERSION complete:
- Git: tag v$VERSION pushed to main
- Docker Hub: eduard256/strix:$VERSION (amd64 + arm64)
- Health check: version "$VERSION" verified
- hassio-strix: config.json updated to $VERSION, pushed to main
- GitHub Release: <URL from gh release create>