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-<version>-{arch}.apk format
- Add x86_64 (clawdroid-linux-amd64) to Go binary download table

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
KoheiYamashita 2026-03-01 01:27:04 +09:00
parent 8394d24350
commit 3ab185fd92
3 changed files with 52 additions and 53 deletions

View file

@ -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 \

View file

@ -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-<version>-arm64-v8a.apk` |
| 32-bit ARM | `clawdroid-<version>-armeabi-v7a.apk` |
| x86_64エミュレーター | `clawdroid-<version>-x86_64.apk` |
| ユニバーサル(全アーキテクチャ) | `clawdroid-<version>-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. バックエンドの起動**

View file

@ -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-<version>-arm64-v8a.apk` |
| 32-bit ARM | `clawdroid-<version>-armeabi-v7a.apk` |
| x86_64 (emulators) | `clawdroid-<version>-x86_64.apk` |
| Universal (all architectures) | `clawdroid-<version>-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**