5 Commits
Author SHA1 Message Date
oxpoe 20d15efc3b ci: rilis via API Gitea (ganti action-gh-release) + fix deps build
CI / test (push) Failing after 1m36s
Release / release (push) Successful in 2m35s
2026-10-14 21:45:30 +07:00
oxpoe dfdab88b43 rebrand: app-ID io.github.lazyrun.LazyRun -> io.oxpoe.lazyrun.LazyRun
CI / test (push) Successful in 1m34s
Release / release (push) Failing after 2m38s
2026-10-14 21:37:59 +07:00
oxpoe e771c00446 rebrand: ganti sisa teks 'GitHub' -> 'Gitea' (UI, komentar, dokumen)
CI / test (push) Successful in 1m0s
2026-10-14 21:09:03 +07:00
oxpoe 651fd0fc3d rebrand: arahkan tautan, badge, label UI & cek-update ke Gitea (bukan GitHub)
CI / test (push) Successful in 1m34s
2026-10-14 21:08:03 +07:00
oxpoe 2bfed9bea3 docs: banner mirror (repo asli di Gitea)
CI / test (push) Successful in 5m0s
2026-10-14 12:30:38 +07:00
10 changed files with 45 additions and 54 deletions

No files matched your search

+15 -22
View File
@@ -32,35 +32,28 @@ jobs:
- name: Build AppImage
env:
# GH_USER/GH_REPO dipakai build.sh untuk menyisipkan info update zsync
# (gh-releases-zsync|<user>|<repo>|latest|lazyrun-*.AppImage.zsync)
GH_USER: ${{ github.repository_owner }}
GH_REPO: ${{ github.event.repository.name }}
# build.sh menyisipkan info update zsync yang mengarah ke rilis di Gitea.
GITEA_BASE: ${{ github.server_url }}/${{ github.repository }}
run: |
VERSION="${GITHUB_REF_NAME#v}" ./build.sh
ls -lh dist/lazyrun-*.AppImage*
- name: Create release
env:
GH_TOKEN: ${{ github.token }}
TOKEN: ${{ github.token }}
run: |
cat > /tmp/notes.md <<'NOTES'
API="${GITHUB_API_URL:-${GITHUB_SERVER_URL}/api/v1}"
TAG="${GITHUB_REF_NAME}"
cat > /tmp/body.md <<'EOF'
Single-file AppImage for Linux x86_64. No root needed, everything stays in
`~/.local/` and `~/.config/lazyrun/`.
```bash
chmod +x lazyrun-*-x86_64.AppImage
./lazyrun-*-x86_64.AppImage
```
Already using LazyRun? It checks this release page on startup and offers to
update itself (delta updates with `AppImageUpdate` when installed).
---
NOTES
gh release create "$GITHUB_REF_NAME" \
dist/lazyrun-*.AppImage \
dist/lazyrun-*.AppImage.zsync \
--title "LazyRun ${GITHUB_REF_NAME}" \
--notes-file /tmp/notes.md \
--generate-notes
Already using LazyRun? It upgrades itself from this release page.
EOF
python3 -c 'import json,sys;print(json.dumps({"tag_name":sys.argv[1],"name":"LazyRun "+sys.argv[1],"body":open(sys.argv[2]).read()}))' "$TAG" /tmp/body.md > /tmp/rel.json
RID=$(curl -sf -X POST -H "Authorization: token $TOKEN" -H "Content-Type: application/json" "$API/repos/$GITHUB_REPOSITORY/releases" --data @/tmp/rel.json | python3 -c 'import json,sys;print(json.load(sys.stdin)["id"])')
echo "release id=$RID"
for f in dist/lazyrun-*.AppImage dist/lazyrun-*.AppImage.zsync; do
[ -f "$f" ] || continue
curl -sf -X POST -H "Authorization: token $TOKEN" -F "attachment=@$f" "$API/repos/$GITHUB_REPOSITORY/releases/$RID/assets?name=$(basename "$f")" -o /dev/null
done
+9 -7
View File
@@ -1,8 +1,10 @@
> 🪞 **Mirror.** Repo asli & pengembangan ada di **Gitea**: https://gitea.oxpoe.qzz.io/oxpoe/lazyrun
# LazyRun — lazy shortcut build
[![CI](https://github.com/oxpoe/lazyrun/actions/workflows/ci.yml/badge.svg)](https://github.com/oxpoe/lazyrun/actions/workflows/ci.yml)
[![Release](https://img.shields.io/github/v/release/oxpoe/lazyrun?label=release)](https://github.com/oxpoe/lazyrun/releases/latest)
[![License](https://img.shields.io/github/license/oxpoe/lazyrun)](LICENSE)
[![CI](https://gitea.oxpoe.qzz.io/oxpoe/lazyrun/actions/workflows/ci.yml/badge.svg)](https://gitea.oxpoe.qzz.io/oxpoe/lazyrun/actions/workflows/ci.yml)
[![Release](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fgitea.oxpoe.qzz.io%2Fapi%2Fv1%2Frepos%2Foxpoe%2Flazyrun%2Freleases%2Flatest&query=%24.tag_name&label=release&color=green&logo=gitea)](https://gitea.oxpoe.qzz.io/oxpoe/lazyrun/releases)
[![License](https://img.shields.io/badge/license-MIT-blue)](LICENSE)
![Platform](https://img.shields.io/badge/platform-Linux-blue)
![UI](https://img.shields.io/badge/UI-Fyne%20%2F%20Go-00ADD8)
@@ -25,7 +27,7 @@ breathes while the app is open (the koala in `assets/logo.svg` is the mascot).*
<img src="docs/main-light.png" width="49%" alt="LazyRun in light theme">
</p>
- **Repo:** <https://github.com/oxpoe/lazyrun>
- **Repo:** <https://gitea.oxpoe.qzz.io/oxpoe/lazyrun>
- **Donate:** <https://donasi.oxpoe.qzz.io/>
- **Executable shortcut** — picks an ELF/AppImage/script/Windows `.exe`, copies it to
@@ -77,7 +79,7 @@ breathes while the app is open (the koala in `assets/logo.svg` is the mascot).*
Needs a desktop Linux with the usual GL/X11 or Wayland libraries (any KDE Plasma or
GNOME install has them). No root, nothing outside your home directory.
Download the AppImage from [Releases](https://github.com/oxpoe/lazyrun/releases), then:
Download the AppImage from [Releases](https://gitea.oxpoe.qzz.io/oxpoe/lazyrun/releases), then:
```bash
chmod +x lazyrun-*-x86_64.AppImage
@@ -126,7 +128,7 @@ start (only when running as an AppImage) and offers to install it:
*Check for Updates* in the footer runs the same flow manually.
**Publishing a release** is just a tag — GitHub Actions builds and uploads
**Publishing a release** is just a tag — Gitea Actions builds and uploads
everything (`.github/workflows/release.yml`):
```bash
@@ -165,7 +167,7 @@ GH_USER=oxpoe GH_REPO=lazyrun ./build.sh
Desktop copy, import/export, dark mode.
- Firefox PWA via `--kiosk`, Flatpak/Snap targets, icon preview.
Known limitations are tracked as [issues](https://github.com/oxpoe/lazyrun/issues);
Known limitations are tracked as [issues](https://gitea.oxpoe.qzz.io/oxpoe/lazyrun/issues);
the main ones:
- the type label (`Go`, `Electron`, …) is detected when the shortcut is created, so a
+2 -6
View File
@@ -39,12 +39,8 @@ export ARCH
export LINUXDEPLOY_OUTPUT_APP_NAME=lazyrun
export LINUXDEPLOY_OUTPUT_VERSION="$VERSION"
export LDAI_OUTPUT="$PWD/$OUT/lazyrun-$VERSION-$ARCH.AppImage"
if [[ -n "${GH_USER:-}" && -n "${GH_REPO:-}" ]]; then
export LDAI_UPDATE_INFORMATION="gh-releases-zsync|$GH_USER|$GH_REPO|latest|lazyrun-*.AppImage.zsync"
else
echo "==> catatan: GH_USER/GH_REPO kosong, AppImage tanpa update info zsync"
export LDAI_NO_APPSTREAM=1
fi
GITEA_BASE="${GITEA_BASE:-https://gitea.oxpoe.qzz.io/oxpoe/lazyrun}"
export LDAI_UPDATE_INFORMATION="zsync|$GITEA_BASE/releases/download/v$VERSION/lazyrun-$VERSION-$ARCH.AppImage.zsync"
# Library X11/Wayland/xkb/cursor tidak boleh ikut dibundel: kalau versinya beda
# dengan host, cursor & rendering jadi tidak native (mis. cursor theme desktop tidak terpakai).
+1 -1
View File
@@ -12,5 +12,5 @@ var version = "dev"
func main() {
cursor.Apply() // sebelum app dibuat: GLFW membaca env cursor saat init
ui.Run(app.NewWithID("io.github.lazyrun.LazyRun"), version)
ui.Run(app.NewWithID("io.oxpoe.lazyrun.LazyRun"), version)
}
+2 -2
View File
@@ -12,9 +12,9 @@ import (
"lazyrun/internal/store"
)
// Link aplikasi: repo GitHub LazyRun dan halaman donasi.
// Link aplikasi: repo Gitea LazyRun dan halaman donasi.
const (
repoURL = "https://github.com/oxpoe/lazyrun"
repoURL = "https://gitea.oxpoe.qzz.io/oxpoe/lazyrun"
donateURL = "https://donasi.oxpoe.qzz.io/"
)
+1 -1
View File
@@ -68,7 +68,7 @@ var tr = map[string][2]string{
"need_target": {"Pick at least one location: menu or desktop.", "Pilih minimal satu lokasi: menu atau desktop."},
"no_browser": {"No supported browser found. Install Chrome, Chromium, Brave, Edge, Vivaldi, or Firefox first.", "Browser yang didukung tidak ditemukan. Install Chrome, Chromium, Brave, Edge, Vivaldi, atau Firefox dulu."},
"github": {"GitHub", "GitHub"},
"github": {"Gitea", "Gitea"},
"donate": {"Donate", "Donasi"},
"check_updates": {"Check for Updates", "Cek Update"},
+2 -2
View File
@@ -57,7 +57,7 @@ func (ui *app) scheduleUpdateCheck() {
}()
}
// checkForUpdate mengambil rilis terbaru dari GitHub. manual=false hanya
// checkForUpdate mengambil rilis terbaru dari Gitea. manual=false hanya
// memberitahu kalau memang ada versi baru.
func (ui *app) checkForUpdate(manual bool) {
if ui.version == "" || ui.version == "dev" {
@@ -97,7 +97,7 @@ func (ui *app) markUpdatePending(rel update.Release) {
// showUpdateDialog menawarkan update: unduh sekarang, buka halaman rilis, atau nanti.
func (ui *app) showUpdateDialog(rel update.Release) {
// catatan rilis GitHub berformat markdown; render supaya blok kode/daftar
// catatan rilis Gitea berformat markdown; render supaya blok kode/daftar
// tidak tampil sebagai teks mentah
notes := widget.NewRichTextFromMarkdown(rel.Notes)
+8 -8
View File
@@ -1,4 +1,4 @@
// Package update memeriksa rilis terbaru LazyRun di GitHub dan memasangnya.
// Package update memeriksa rilis terbaru LazyRun di Gitea dan memasangnya.
package update
import (
@@ -14,8 +14,8 @@ import (
)
var (
apiBase = "https://api.github.com/repos/oxpoe/lazyrun/releases"
repoURL = "https://github.com/oxpoe/lazyrun"
apiBase = "https://gitea.oxpoe.qzz.io/api/v1/repos/oxpoe/lazyrun/releases"
repoURL = "https://gitea.oxpoe.qzz.io/oxpoe/lazyrun"
)
// LAZYRUN_UPDATE_API bisa dipakai untuk mengarahkan cek update ke server lain
@@ -38,22 +38,22 @@ func RepoURL() string { return repoURL }
type Release struct {
Tag string // tag asli, mis. "v1.1.0"
Version string // versi tanpa awalan v, mis. "1.1.0"
Notes string // catatan rilis (markdown GitHub)
PageURL string // halaman rilis di GitHub
Notes string // catatan rilis (markdown Gitea)
PageURL string // halaman rilis di Gitea
AppImage string // URL unduhan AppImage (kosong kalau tidak ada)
Zsync string // URL berkas .zsync (opsional)
}
var client = &http.Client{Timeout: 20 * time.Second}
// Latest mengambil rilis terbaru dari GitHub.
// Latest mengambil rilis terbaru dari Gitea.
func Latest() (Release, error) {
var rel Release
req, err := http.NewRequest(http.MethodGet, apiBase+"/latest", nil)
if err != nil {
return rel, err
}
req.Header.Set("Accept", "application/vnd.github+json")
req.Header.Set("Accept", "application/json")
req.Header.Set("User-Agent", "LazyRun")
resp, err := client.Do(req)
@@ -62,7 +62,7 @@ func Latest() (Release, error) {
}
defer resp.Body.Close()
if resp.StatusCode != http.StatusOK {
return rel, fmt.Errorf("GitHub menjawab %s", resp.Status)
return rel, fmt.Errorf("Gitea menjawab %s", resp.Status)
}
var payload struct {
+3 -3
View File
@@ -46,12 +46,12 @@ func TestNewerIgnoresSameAndOlder(t *testing.T) {
func TestLatestParsesRelease(t *testing.T) {
srv := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
if r.Header.Get("User-Agent") == "" {
t.Error("GitHub butuh header User-Agent")
t.Error("Gitea butuh header User-Agent")
}
_, _ = w.Write([]byte(`{
"tag_name": "v1.2.0",
"body": " - ikon online\n - animasi ",
"html_url": "https://github.com/oxpoe/lazyrun/releases/tag/v1.2.0",
"html_url": "https://gitea.oxpoe.qzz.io/oxpoe/lazyrun/releases/tag/v1.2.0",
"assets": [
{"name": "lazyrun-1.2.0-x86_64.AppImage.zsync", "browser_download_url": "https://contoh/zsync"},
{"name": "lazyrun-1.2.0-x86_64.AppImage", "browser_download_url": "https://contoh/appimage"}
@@ -61,7 +61,7 @@ func TestLatestParsesRelease(t *testing.T) {
defer srv.Close()
SetEndpoint(srv.URL)
t.Cleanup(func() { SetEndpoint("https://api.github.com/repos/oxpoe/lazyrun/releases") })
t.Cleanup(func() { SetEndpoint("https://gitea.oxpoe.qzz.io/api/v1/repos/oxpoe/lazyrun/releases") })
rel, err := Latest()
if err != nil {
+2 -2
View File
@@ -127,7 +127,7 @@ Setiap kali membuat shortcut, pengguna memilih lokasi via **checkbox** yang flek
- Bundle AppImage dengan dukungan **zsync**.
- Menu **"Check for Updates"** memanggil `AppImageUpdate`.
- Update otomatis dari GitHub Releases.
- Update otomatis dari Gitea Releases.
---
@@ -336,7 +336,7 @@ ln -s usr/bin/lazyrun lazyrun.AppDir/AppRun
# 3. Build AppImage dengan dukungan update
./appimagetool-x86_64.AppImage \
-u "gh-releases-zsync|user|lazyrun|latest|lazyrun-*.AppImage.zsync" \
-u "zsync|https://gitea.oxpoe.qzz.io/oxpoe/lazyrun/releases/download/<tag>/lazyrun-<ver>-x86_64.AppImage.zsync" \
lazyrun.AppDir
```