Skip to main content

publish

Publish a new release of iscsi-fuse. Bumps version, creates GitHub release, updates Homebrew formula, and installs locally via brew upgrade.

설치로 이동

소스 정보

저장소
dickwu/iscsi-fuse
최근 소스 활동
2026년 3월 3일 02:33
감지된 SKILL.md 언어
영어
스타
0
포크
0

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
publish
description
Publish a new release of iscsi-fuse. Bumps version, creates GitHub release, updates Homebrew formula, and installs locally via brew upgrade.
argument-hint
[version e.g. 0.2.0]
allowed-tools
Bash, Read, Edit, Glob, Grep
You are publishing a new release of **iscsi-fuse**. Follow these steps precisely. If $ARGUMENTS is provided, use it as the new version number (e.g. `0.2.0`). Otherwise, ask the user for the version. ## Variables - **REPO_DIR**: `/Users/peilinwu/project/iscsi` - **TAP_DIR**: `/Users/peilinwu/project/iscsi/homebrew-iscsi-fuse` - **GITHUB_REPO**: `dickwu/iscsi-fuse` - **TAP_REPO**: `dickwu/homebrew-iscsi-fuse` - **NEW_VERSION**: `$ARGUMENTS` (strip any leading `v`) ## Pre-flight checks 1. Confirm the working directory is clean (`git status`) 2. Confirm we are on branch `main` and up to date with origin 3. Confirm macFUSE is installed (`brew list --cask macfuse`) ## Steps ### 1. Bump version in Cargo.toml Edit `Cargo.toml` — change `version = "X.Y.Z"` to `version = "$ARGUMENTS"`. ### 2. Run cargo check to validate ```bash export PATH="$HOME/.cargo/bin:/opt/homebrew/bin:$PATH" PKG_CONFIG_PATH=/usr/local/lib/pkgconfig cargo check 2>&1 ``` If it fails, stop and report the error. ### 3. Format and lint ```bash export PATH="$HOME/.cargo/bin:/opt/homebrew/bin:$PATH" PKG_CONFIG_PATH=/usr/local/lib/pkgconfig cargo fmt --all cargo clippy --all-targets -- -D warnings 2>&1 ``` ### 4. Commit the version bump ```bash git add Cargo.toml Cargo.lock src/ git commit -m "chore: release v$ARGUMENTS Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>" ``` ### 5. Tag and push ```bash git tag "v$ARGUMENTS" git push origin main git push origin "v$ARGUMENTS" ``` ### 6. Wait for GitHub Actions release workflow ```bash # Find the run ID of the release workflow for this tag sleep 5 RUN_ID=$(gh run list --repo dickwu/iscsi-fuse --workflow=release.yml --limit 1 --json databaseId --jq '.[0].databaseId') gh run watch "$RUN_ID" --repo dickwu/iscsi-fuse ``` If the workflow fails, show the failure logs with `gh run view --log-failed`. ### 7. Get the release asset name and compute SHA256 ```bash ASSET=$(gh release view "v$ARGUMENTS" --repo dickwu/iscsi-fuse --json assets --jq '.assets[0].name') mkdir -p /tmp/iscsi-release-new gh release download "v$ARGUMENTS" --repo dickwu/iscsi-fuse --dir /tmp/iscsi-release-new SHA256=$(shasum -a 256 "/tmp/iscsi-release-new/$ASSET" | awk '{print $1}') echo "Asset: $ASSET" echo "SHA256: $SHA256" ``` ### 8. Update the Homebrew formula In `TAP_DIR/Formula/iscsi-fuse.rb`: - Update `version "X.Y.Z"` to `version "$ARGUMENTS"` - Update `sha256 "..."` to the new SHA256 - Update the URL if the asset filename changed (arm64 vs universal) Then commit and push: ```bash cd TAP_DIR git add Formula/iscsi-fuse.rb git commit -m "Update iscsi-fuse to v$ARGUMENTS Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>" git push origin main ``` ### 9. Install locally via brew ```bash brew untap dickwu/iscsi-fuse 2>/dev/null || true brew tap dickwu/iscsi-fuse brew upgrade iscsi-fuse 2>/dev/null || brew install iscsi-fuse ``` Verify: ```bash iscsi-fuse --help which iscsi-fuse ``` ### 10. Report success Print a summary: - New version installed - GitHub Release URL - Homebrew tap URL - `brew tap dickwu/iscsi-fuse && brew install iscsi-fuse` command for users ## Error handling - If any step fails, stop immediately and report what went wrong - If the release workflow fails, show `gh run view --log-failed` - If brew install fails, show the full error - Do NOT continue past a failure — the user must decide how to proceed
GitHub에서 보기