From 3ab185fd922fc51ce6b127ca0eefca3ad0a328dc Mon Sep 17 00:00:00 2001 From: KoheiYamashita Date: Sun, 1 Mar 2026 01:27:04 +0900 Subject: [PATCH] refactor: rewrite release workflow and align artifact naming with README - Restructure release flow: create release with notes first, then build and upload artifacts in parallel - Replace GoReleaser with make build-all for plain binary uploads - Rename Termux APK from clawdroid-termux- to clawdroid-noembedded- - Update README APK names to clawdroid--{arch}.apk format - Add x86_64 (clawdroid-linux-amd64) to Go binary download table Co-Authored-By: Claude Opus 4.6 --- .github/workflows/release.yml | 83 +++++++++++++++++------------------ README.ja.md | 11 ++--- README.md | 11 ++--- 3 files changed, 52 insertions(+), 53 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 8158919eb..a375c8b61 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,10 +1,10 @@ -name: Create Tag and Release +name: Release on: workflow_dispatch: inputs: tag: - description: "Release tag (required, e.g. v0.2.0)" + description: "Release tag (e.g. v0.2.0)" required: true type: string prerelease: @@ -19,8 +19,8 @@ on: default: false jobs: - create-tag: - name: Create Git Tag + create-release: + name: Create Tag & Release runs-on: ubuntu-latest permissions: contents: write @@ -42,7 +42,6 @@ jobs: fi - name: Create and push tag - shell: bash env: RELEASE_TAG: ${{ inputs.tag }} run: | @@ -51,13 +50,27 @@ jobs: git tag -a "$RELEASE_TAG" -m "Release $RELEASE_TAG" git push origin "$RELEASE_TAG" - release: - name: GoReleaser Release - needs: create-tag + - name: Create release with generated notes + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + RELEASE_TAG: ${{ inputs.tag }} + IS_DRAFT: ${{ inputs.draft }} + IS_PRERELEASE: ${{ inputs.prerelease }} + run: | + FLAGS="" + if [ "$IS_DRAFT" = "true" ]; then FLAGS="$FLAGS --draft"; fi + if [ "$IS_PRERELEASE" = "true" ]; then FLAGS="$FLAGS --prerelease"; fi + gh release create "$RELEASE_TAG" \ + --generate-notes \ + --title "$RELEASE_TAG" \ + $FLAGS + + build-go: + name: Go Binaries + needs: create-release runs-on: ubuntu-latest permissions: contents: write - packages: write steps: - name: Checkout tag uses: actions/checkout@v4 @@ -65,32 +78,27 @@ jobs: fetch-depth: 0 ref: ${{ inputs.tag }} - - name: Setup Go from go.mod + - name: Setup Go uses: actions/setup-go@v5 with: go-version-file: go.mod - - name: Run GoReleaser - uses: goreleaser/goreleaser-action@v6 - with: - distribution: goreleaser - version: ~> v2 - args: release --clean - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - name: Build all platforms + run: make build-all - - name: Apply release flags - shell: bash + - name: Upload binaries to release env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + RELEASE_TAG: ${{ inputs.tag }} run: | - gh release edit "${{ inputs.tag }}" \ - --draft=${{ inputs.draft }} \ - --prerelease=${{ inputs.prerelease }} + gh release upload "$RELEASE_TAG" \ + build/clawdroid-linux-amd64 \ + build/clawdroid-linux-arm64 \ + build/clawdroid-linux-arm - android-termux: + build-android-termux: name: Android Termux APK - needs: create-tag + needs: create-release runs-on: ubuntu-latest permissions: contents: write @@ -129,24 +137,19 @@ jobs: - name: Build release APK run: ./gradlew assembleTermuxRelease - - name: Rename APK with version - env: - RELEASE_TAG: ${{ inputs.tag }} - run: | - mv app/build/outputs/apk/termux/release/app-termux-release.apk \ - app/build/outputs/apk/termux/release/clawdroid-termux-"$RELEASE_TAG".apk - - name: Upload APK to release env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} RELEASE_TAG: ${{ inputs.tag }} run: | + mv app/build/outputs/apk/termux/release/app-termux-release.apk \ + app/build/outputs/apk/termux/release/clawdroid-noembedded-"$RELEASE_TAG".apk gh release upload "$RELEASE_TAG" \ - app/build/outputs/apk/termux/release/clawdroid-termux-"$RELEASE_TAG".apk + app/build/outputs/apk/termux/release/clawdroid-noembedded-"$RELEASE_TAG".apk - android-embedded: + build-android-embedded: name: Android Embedded APKs - needs: create-tag + needs: create-release runs-on: ubuntu-latest permissions: contents: write @@ -193,8 +196,9 @@ jobs: working-directory: android run: ./gradlew assembleEmbeddedRelease -PenableAbiSplit - - name: Rename APKs with version + - name: Upload APKs to release env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} RELEASE_TAG: ${{ inputs.tag }} working-directory: android/app/build/outputs/apk/embedded/release run: | @@ -202,13 +206,6 @@ jobs: mv app-embedded-armeabi-v7a-release.apk clawdroid-"$RELEASE_TAG"-armeabi-v7a.apk mv app-embedded-x86_64-release.apk clawdroid-"$RELEASE_TAG"-x86_64.apk mv app-embedded-universal-release.apk clawdroid-"$RELEASE_TAG"-universal.apk - - - name: Upload APKs to release - env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - RELEASE_TAG: ${{ inputs.tag }} - working-directory: android/app/build/outputs/apk/embedded/release - run: | gh release upload "$RELEASE_TAG" \ clawdroid-"$RELEASE_TAG"-arm64-v8a.apk \ clawdroid-"$RELEASE_TAG"-armeabi-v7a.apk \ diff --git a/README.ja.md b/README.ja.md index c6f2ee088..945a18e1e 100644 --- a/README.ja.md +++ b/README.ja.md @@ -53,10 +53,10 @@ graph TB | アーキテクチャ | APK | |-------------|-----| -| 64-bit ARM(最近のデバイスの大半) | `clawdroid-embedded-arm64-v8a-release.apk` | -| 32-bit ARM | `clawdroid-embedded-armeabi-v7a-release.apk` | -| x86_64(エミュレーター) | `clawdroid-embedded-x86_64-release.apk` | -| ユニバーサル(全アーキテクチャ) | `clawdroid-embedded-universal-release.apk` | +| 64-bit ARM(最近のデバイスの大半) | `clawdroid--arm64-v8a.apk` | +| 32-bit ARM | `clawdroid--armeabi-v7a.apk` | +| x86_64(エミュレーター) | `clawdroid--x86_64.apk` | +| ユニバーサル(全アーキテクチャ) | `clawdroid--universal.apk` | ### 2. インストール & 起動 @@ -272,6 +272,7 @@ Termux 版は Go バックエンドを APK に内蔵せず、Termux 上で別プ |-------------|---------| | 64-bit ARM(最近のデバイスの大半) | `clawdroid-linux-arm64` | | 32-bit ARM | `clawdroid-linux-arm` | +| x86_64 | `clawdroid-linux-amd64` | Termux で `uname -m` を実行するとアーキテクチャを確認できます。 @@ -300,7 +301,7 @@ LLM モデルと API キーを設定します。 **5. Termux 版 APK のインストール** -Termux フレーバーの APK(`clawdroid-termux-*.apk`)を同じデバイスにインストールします。 +Termux フレーバーの APK(`clawdroid-noembedded-*.apk`)を同じデバイスにインストールします。 **6. バックエンドの起動** diff --git a/README.md b/README.md index e437ed4eb..521725a92 100644 --- a/README.md +++ b/README.md @@ -55,10 +55,10 @@ Choose the APK matching your device architecture: | Architecture | APK | |-------------|-----| -| 64-bit ARM (most modern devices) | `clawdroid-embedded-arm64-v8a-release.apk` | -| 32-bit ARM | `clawdroid-embedded-armeabi-v7a-release.apk` | -| x86_64 (emulators) | `clawdroid-embedded-x86_64-release.apk` | -| Universal (all architectures) | `clawdroid-embedded-universal-release.apk` | +| 64-bit ARM (most modern devices) | `clawdroid--arm64-v8a.apk` | +| 32-bit ARM | `clawdroid--armeabi-v7a.apk` | +| x86_64 (emulators) | `clawdroid--x86_64.apk` | +| Universal (all architectures) | `clawdroid--universal.apk` | ### 2. Install & Launch @@ -274,6 +274,7 @@ Download from [GitHub Releases](https://github.com/KarakuriAgent/clawdroid/relea |-------------|--------| | 64-bit ARM (most modern devices) | `clawdroid-linux-arm64` | | 32-bit ARM | `clawdroid-linux-arm` | +| x86_64 | `clawdroid-linux-amd64` | You can check your architecture in Termux with `uname -m`. @@ -302,7 +303,7 @@ Add your LLM model and API key. **5. Install the Termux APK** -Install the Termux-flavor APK (`clawdroid-termux-*.apk`) on the same device. +Install the Termux-flavor APK (`clawdroid-noembedded-*.apk`) on the same device. **6. Start the backend**