chore: migrasi kanonik ke gitea.oxpoe.qzz.io/oxpoe/tia-love (module path, installer, Gitea Actions, goreleaser)
CI / test (ubuntu-latest) (push) Successful in 12m35s
CI / test (macos-latest) (push) Canceled after 0s

This commit is contained in:
oxpoe committed 2026-10-15 07:41:41 +07:00
1 parent 25bb3e1d2b
commit 8933906102
10 files changed
+30 -21

No files matched your search

File renamed without changes.
@@ -25,4 +25,6 @@ jobs:
version: latest version: latest
args: release --clean args: release --clean
env: env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Set di repo Gitea → Settings → Actions → Secrets,
# scope token: write:repository
GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }}
+5
View File
@@ -4,6 +4,11 @@ version: 2
project_name: tia project_name: tia
# Rilis dipublikasikan ke Gitea (bukan GitHub) — set GITEA_TOKEN saat release.
gitea_urls:
api: https://gitea.oxpoe.qzz.io/api/v1
download: https://gitea.oxpoe.qzz.io
builds: builds:
- id: tia-love - id: tia-love
main: ./cmd/tia-love main: ./cmd/tia-love
+3 -2
View File
@@ -24,11 +24,12 @@ Nama binary final: **`tia-love`** (nama produk tetap **tia**).
Setelah rilis pertama tersedia: Setelah rilis pertama tersedia:
```bash ```bash
curl -fsSL https://raw.githubusercontent.com/oxpoe/tia/main/install.sh | sh curl -fsSL https://gitea.oxpoe.qzz.io/oxpoe/tia-love/raw/branch/main/install.sh | sh
``` ```
Skrip mendeteksi OS/arch (Linux/macOS · amd64/arm64), memverifikasi SHA256, dan memasang Skrip mendeteksi OS/arch (Linux/macOS · amd64/arm64), memverifikasi SHA256, dan memasang
ke `~/.local/bin/tia-love` tanpa sudo. Alternatif: unduh manual dari GitHub Releases. ke `~/.local/bin/tia-love` tanpa sudo. Alternatif: unduh manual dari halaman Releases di
Gitea (https://gitea.oxpoe.qzz.io/oxpoe/tia-love).
Rilis dibangun oleh GoReleaser — dry run lokal: `goreleaser release --snapshot --clean`. Rilis dibangun oleh GoReleaser — dry run lokal: `goreleaser release --snapshot --clean`.
+1 -1
View File
@@ -8,7 +8,7 @@ import (
tea "charm.land/bubbletea/v2" tea "charm.land/bubbletea/v2"
"github.com/oxpoe/tia/internal/app" "gitea.oxpoe.qzz.io/oxpoe/tia-love/internal/app"
) )
const usage = `tia — Terminal Is A My Way (Just Work) const usage = `tia — Terminal Is A My Way (Just Work)
+6 -6
View File
@@ -342,18 +342,18 @@ tia hadir sebagai **satu binary mandiri (single static binary)** yang fleksibel
- **Metode Instalasi:** - **Metode Instalasi:**
1. **One-Line Command (Rekomendasi):** 1. **One-Line Command (Rekomendasi):**
```bash ```bash
curl -fsSL https://raw.githubusercontent.com/oxpoe/tia/main/install.sh | sh curl -fsSL https://gitea.oxpoe.qzz.io/oxpoe/tia-love/raw/branch/main/install.sh | sh
``` ```
- Skrip otomatis mendeteksi OS (Linux, macOS) dan arsitektur CPU (`amd64`, `arm64`). - Skrip otomatis mendeteksi OS (Linux, macOS) dan arsitektur CPU (`amd64`, `arm64`).
- Mengunduh rilis tarball terbaru dari GitHub Releases. - Mengunduh rilis tarball terbaru dari Gitea Releases (gitea.oxpoe.qzz.io).
- Memverifikasi checksum SHA256 secara otomatis demi keamanan sebelum mengekstrak. - Memverifikasi checksum SHA256 secara otomatis demi keamanan sebelum mengekstrak.
- Memasang binary ke direktori pengguna (`~/.local/bin/tia-love` tanpa memerlukan akses `sudo`). - Memasang binary ke direktori pengguna (`~/.local/bin/tia-love` tanpa memerlukan akses `sudo`).
- Memberikan instruksi jika `~/.local/bin` belum ada di `$PATH`. - Memberikan instruksi jika `~/.local/bin` belum ada di `$PATH`.
2. **Manual Download Precompiled Binary:** 2. **Manual Download Precompiled Binary:**
- Pengguna dapat langsung menuju halaman GitHub Releases, mengunduh file binary terkompresi (misal: `tia-love_linux_amd64.tar.gz`), mengekstraknya, dan langsung menjalankannya (`./tia-love`). - Pengguna dapat langsung menuju halaman Releases di Gitea (https://gitea.oxpoe.qzz.io/oxpoe/tia-love/releases), mengunduh file binary terkompresi (misal: `tia-love_linux_amd64.tar.gz`), mengekstraknya, dan langsung menjalankannya (`./tia-love`).
3. **Go Install (untuk developer Go):** 3. **Go Install (untuk developer Go):**
```bash ```bash
go install github.com/oxpoe/tia/cmd/tia-love@latest go install gitea.oxpoe.qzz.io/oxpoe/tia-love/cmd/tia-love@latest
``` ```
- **Acceptance Criteria:** - **Acceptance Criteria:**
- Skrip instalasi aman (`set -euo pipefail`), transparan, dan tidak meminta privilege root/sudo secara membabi-buta. - Skrip instalasi aman (`set -euo pipefail`), transparan, dan tidak meminta privilege root/sudo secara membabi-buta.
@@ -1200,7 +1200,7 @@ Langkah wizard: **Bahasa → Direktori stack → Tema → Impor stack yang ditem
| Config | Basic config load/save | | Config | Basic config load/save |
| Theme | Catppuccin (Mocha/Latte), mode Otomatis/Gelap/Terang/Terminal, deteksi background terminal, semua warna via token semantik | | Theme | Catppuccin (Mocha/Latte), mode Otomatis/Gelap/Terang/Terminal, deteksi background terminal, semua warna via token semantik |
| Status bar | Context-aware help text (hint klikable) | | Status bar | Context-aware help text (hint klikable) |
| **Rilis awal** | goreleaser + GitHub Releases + `install.sh` + checksum (F-029), `tia-love --version` / `tia-love doctor` | | **Rilis awal** | goreleaser + Gitea Releases + `install.sh` + checksum (F-029), `tia-love --version` / `tia-love doctor` |
**Exit Criteria:** Jalankan `tia-love` → splash → Home Dashboard (jam, ringkasan) → masuk workspace, lihat semua resource Docker, navigasi dengan keyboard **dan mouse**; setiap aksi memberi suara + toast; instal dengan satu baris perintah berhasil di mesin bersih **Exit Criteria:** Jalankan `tia-love` → splash → Home Dashboard (jam, ringkasan) → masuk workspace, lihat semua resource Docker, navigasi dengan keyboard **dan mouse**; setiap aksi memberi suara + toast; instal dengan satu baris perintah berhasil di mesin bersih
@@ -1314,7 +1314,7 @@ Langkah wizard: **Bahasa → Direktori stack → Tema → Impor stack yang ditem
### Distribution ### Distribution
- **Satu binary statis** (`CGO_ENABLED=0`), tanpa runtime dependency selain Docker (audio memakai library pure-Go; server audio hanya dibutuhkan jika suara diaktifkan) - **Satu binary statis** (`CGO_ENABLED=0`), tanpa runtime dependency selain Docker (audio memakai library pure-Go; server audio hanya dibutuhkan jika suara diaktifkan)
- Instal satu baris (skrip) **atau** unduh binary manual dari GitHub Releases, detail di **F-029** - Instal satu baris (skrip) **atau** unduh binary manual dari Gitea Releases, detail di **F-029**
- Release otomatis via goreleaser: `.tar.gz`/`.zip` + `checksums.txt`; `.deb`, `.rpm`, Homebrew, AUR menyusul - Release otomatis via goreleaser: `.tar.gz`/`.zip` + `checksums.txt`; `.deb`, `.rpm`, Homebrew, AUR menyusul
- Binary name: `tia-love` (nama produk tetap: tia) - Binary name: `tia-love` (nama produk tetap: tia)
+1 -1
View File
@@ -1,4 +1,4 @@
module github.com/oxpoe/tia module gitea.oxpoe.qzz.io/oxpoe/tia-love
go 1.27.1 go 1.27.1
+7 -6
View File
@@ -1,15 +1,16 @@
#!/bin/sh #!/bin/sh
# tia-love — one-line installer (F-029) # tia-love — one-line installer (F-029)
# #
# curl -fsSL https://raw.githubusercontent.com/oxpoe/tia/main/install.sh | sh # curl -fsSL https://gitea.oxpoe.qzz.io/oxpoe/tia-love/raw/branch/main/install.sh | sh
# #
# Mendeteksi OS/arch, mengunduh rilis terbaru dari GitHub Releases, # Mendeteksi OS/arch, mengunduh rilis terbaru dari Gitea Releases,
# memverifikasi SHA256, lalu memasang ke ~/.local/bin (tanpa sudo). # memverifikasi SHA256, lalu memasang ke ~/.local/bin (tanpa sudo).
# Override lokasi: TIA_LOVE_INSTALL_DIR=/path # Override lokasi: TIA_LOVE_INSTALL_DIR=/path
set -eu set -eu
REPO="oxpoe/tia" GITEA="${TIA_LOVE_GITEA_URL:-https://gitea.oxpoe.qzz.io}"
REPO="oxpoe/tia-love"
BIN="tia-love" BIN="tia-love"
DEST="${TIA_LOVE_INSTALL_DIR:-$HOME/.local/bin}" DEST="${TIA_LOVE_INSTALL_DIR:-$HOME/.local/bin}"
@@ -32,15 +33,15 @@ case "$os" in
esac esac
echo "==> mencari rilis terbaru..." echo "==> mencari rilis terbaru..."
tag=$(curl -fsSL "https://api.github.com/repos/$REPO/releases/latest" | tag=$(curl -fsSL "$GITEA/api/v1/repos/$REPO/releases/latest" |
grep -o '"tag_name": *"[^"]*"' | head -1 | cut -d'"' -f4) grep -o '"tag_name": *"[^"]*"' | head -1 | cut -d'"' -f4)
if [ -z "${tag:-}" ]; then if [ -z "${tag:-}" ]; then
echo "tia-love: tidak menemukan rilis di github.com/$REPO/releases" >&2 echo "tia-love: tidak menemukan rilis di $GITEA/$REPO/releases" >&2
exit 1 exit 1
fi fi
tarball="${BIN}_${os}_${arch}.tar.gz" tarball="${BIN}_${os}_${arch}.tar.gz"
base="https://github.com/$REPO/releases/download/$tag" base="$GITEA/$REPO/releases/download/$tag"
tmp=$(mktemp -d) tmp=$(mktemp -d)
trap 'rm -rf "$tmp"' EXIT trap 'rm -rf "$tmp"' EXIT
+3 -3
View File
@@ -8,9 +8,9 @@ import (
tea "charm.land/bubbletea/v2" tea "charm.land/bubbletea/v2"
"charm.land/lipgloss/v2" "charm.land/lipgloss/v2"
"github.com/oxpoe/tia/internal/audio" "gitea.oxpoe.qzz.io/oxpoe/tia-love/internal/audio"
"github.com/oxpoe/tia/internal/ui/animation" "gitea.oxpoe.qzz.io/oxpoe/tia-love/internal/ui/animation"
"github.com/oxpoe/tia/internal/ui/components" "gitea.oxpoe.qzz.io/oxpoe/tia-love/internal/ui/components"
) )
// Model root sementara (T-0.2–T-0.4, Phase 0). // Model root sementara (T-0.2–T-0.4, Phase 0).
+1 -1
View File
@@ -9,7 +9,7 @@ import (
"charm.land/lipgloss/v2" "charm.land/lipgloss/v2"
"github.com/charmbracelet/harmonica" "github.com/charmbracelet/harmonica"
"github.com/oxpoe/tia/internal/ui/animation" "gitea.oxpoe.qzz.io/oxpoe/tia-love/internal/ui/animation"
) )
// Toast — notifikasi melayang dari tengah atas layar (F-025). // Toast — notifikasi melayang dari tengah atas layar (F-025).