Compare commits

...

10 Commits

Author SHA1 Message Date
jared adb017804d Shallow submodule clone on Windows to fix checkout timeout
Build Lotus Chat Desktop / prepare-release (push) Successful in 8s
Build Lotus Chat Desktop / build-linux (push) Successful in 23m26s
Build Lotus Chat Desktop / build-windows (push) Failing after 32m33s
2026-06-06 17:26:03 -04:00
jared 0e700b335a Restructure: publish direct to release, no artifact storage
Build Lotus Chat Desktop / prepare-release (push) Successful in 8s
Build Lotus Chat Desktop / build-windows (push) Failing after 17m29s
Build Lotus Chat Desktop / build-linux (push) Successful in 23m46s
2026-06-06 16:49:49 -04:00
jared a7b93deb98 Add xdg-utils for AppImage bundler
Build Lotus Chat Desktop / build-linux (push) Failing after 16m51s
Build Lotus Chat Desktop / build-windows (push) Failing after 30m24s
Build Lotus Chat Desktop / publish (push) Has been skipped
2026-06-06 16:13:59 -04:00
jared 99fb77b867 Fix shell: use powershell not pwsh on Windows
Build Lotus Chat Desktop / build-windows (push) Failing after 41s
Build Lotus Chat Desktop / build-linux (push) Failing after 15m5s
Build Lotus Chat Desktop / publish (push) Has been skipped
2026-06-06 14:12:57 -04:00
jared 6f543f8bef Install full Tauri 2 Linux deps (webkit4.1 + soup3 + xdo)
Build Lotus Chat Desktop / build-windows (push) Failing after 27s
Build Lotus Chat Desktop / publish (push) Has been cancelled
Build Lotus Chat Desktop / build-linux (push) Has been cancelled
2026-06-06 13:59:42 -04:00
jared 473028491c Use pre-installed Node on Windows runner
Build Lotus Chat Desktop / build-windows (push) Failing after 35s
Build Lotus Chat Desktop / build-linux (push) Failing after 10m23s
Build Lotus Chat Desktop / publish (push) Has been skipped
2026-06-06 13:58:19 -04:00
jared a598ba6049 Fix webkit package for Bullseye
Build Lotus Chat Desktop / build-windows (push) Failing after 5s
Build Lotus Chat Desktop / build-linux (push) Failing after 9m18s
Build Lotus Chat Desktop / publish (push) Has been skipped
2026-06-06 13:21:46 -04:00
jared a7ced9d477 Add Lotus Chat desktop build workflow
Build Lotus Chat Desktop / build-linux (push) Failing after 36s
Build Lotus Chat Desktop / build-windows (push) Failing after 2m12s
Build Lotus Chat Desktop / publish (push) Has been skipped
2026-06-06 13:03:30 -04:00
jared 646da8276a Update cinny submodule to lotus branch tip 2026-06-06 12:56:03 -04:00
jared af9ad2eb6f Point cinny submodule at LotusGuild/cinny lotus branch 2026-06-06 12:55:13 -04:00
3 changed files with 178 additions and 2 deletions
+175
View File
@@ -0,0 +1,175 @@
name: Build Lotus Chat Desktop
on:
push:
branches: [main]
workflow_dispatch:
env:
GITEA_URL: https://code.lotusguild.org
REPO: LotusGuild/cinny-desktop
jobs:
prepare-release:
runs-on: ubuntu-latest
outputs:
release_id: ${{ steps.create.outputs.release_id }}
version: ${{ steps.create.outputs.version }}
steps:
- uses: actions/checkout@v4
- name: Create rolling latest release
id: create
env:
TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
VERSION=$(python3 -c "import json; print(json.load(open('src-tauri/tauri.conf.json'))['version'])")
echo "version=$VERSION" >> $GITHUB_OUTPUT
# Delete existing latest release+tag if present
OLD=$(curl -sf "$GITEA_URL/api/v1/repos/$REPO/releases/tags/latest" \
-H "Authorization: token $TOKEN" 2>/dev/null || true)
OLD_ID=$(echo "$OLD" | python3 -c "import sys,json; print(json.load(sys.stdin).get('id',''))" 2>/dev/null || true)
if [ -n "$OLD_ID" ] && [ "$OLD_ID" != "None" ] && [ "$OLD_ID" != "" ]; then
curl -sf -X DELETE "$GITEA_URL/api/v1/repos/$REPO/releases/$OLD_ID" -H "Authorization: token $TOKEN" || true
curl -f -X DELETE "$GITEA_URL/api/v1/repos/$REPO/tags/latest" -H "Authorization: token $TOKEN" || true
fi
# Create fresh release
RELEASE_ID=$(curl -sf -X POST "$GITEA_URL/api/v1/repos/$REPO/releases" \
-H "Authorization: token $TOKEN" \
-H "Content-Type: application/json" \
-d "{\"tag_name\":\"latest\",\"name\":\"Lotus Chat $VERSION\",\"prerelease\":true,\"body\":\"Built from ${{ github.sha }}\"}" \
| python3 -c "import sys,json; print(json.load(sys.stdin)['id'])")
echo "release_id=$RELEASE_ID" >> $GITHUB_OUTPUT
build-windows:
needs: prepare-release
runs-on: windows
steps:
- uses: actions/checkout@v4
- name: Checkout submodules (shallow)
shell: powershell
run: git submodule update --init --depth=1
- name: Get version
id: version
shell: powershell
run: |
$v = (Get-Content src-tauri\tauri.conf.json | ConvertFrom-Json).version
"version=$v" >> $env:GITHUB_OUTPUT
- uses: Swatinem/rust-cache@v2
with:
workspaces: src-tauri
- name: Install frontend deps
shell: powershell
run: cd cinny; npm ci
- name: Install Tauri deps
shell: powershell
run: npm ci
- name: Build
shell: powershell
env:
TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }}
TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ''
NODE_OPTIONS: '--max_old_space_size=4096'
run: npm run tauri -- build
- name: Upload to release
shell: powershell
env:
TOKEN: ${{ secrets.GITHUB_TOKEN }}
RELEASE_ID: ${{ needs.prepare-release.outputs.release_id }}
VERSION: ${{ needs.prepare-release.outputs.version }}
run: |
$msi = "src-tauri\target\release\bundle\msi"
$files = @(
"$msi\Cinny_${VERSION}_x64_en-US.msi",
"$msi\Cinny_${VERSION}_x64_en-US.msi.zip",
"$msi\Cinny_${VERSION}_x64_en-US.msi.zip.sig"
)
$names = @("LotusChat-x86_64.msi", "LotusChat-x86_64.msi.zip", "LotusChat-x86_64.msi.zip.sig")
for ($i = 0; $i -lt $files.Length; $i++) {
$bytes = [System.IO.File]::ReadAllBytes($files[$i])
Invoke-RestMethod -Uri "$env:GITEA_URL/api/v1/repos/$env:REPO/releases/$RELEASE_ID/assets?name=$($names[$i])" `
-Method Post `
-Headers @{ Authorization = "token $TOKEN"; "Content-Type" = "application/octet-stream" } `
-Body $bytes
}
build-linux:
needs: prepare-release
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: true
- uses: actions/setup-node@v4
with:
node-version-file: .node-version
- name: Get version
id: version
run: |
echo "version=$(python3 -c "import json; print(json.load(open('src-tauri/tauri.conf.json'))['version'])")" >> $GITHUB_OUTPUT
- name: Install system deps
run: |
apt-get update
apt-get install -y \
curl wget file \
libwebkit2gtk-4.1-dev \
libssl-dev \
libxdo-dev \
libayatana-appindicator3-dev \
librsvg2-dev \
patchelf \
xdg-utils
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
with:
workspaces: src-tauri
- name: Install frontend deps
run: cd cinny && npm ci
- name: Install Tauri deps
run: npm ci
- name: Build
env:
TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }}
TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ''
NODE_OPTIONS: '--max_old_space_size=4096'
run: npm run tauri -- build
- name: Upload to release
env:
TOKEN: ${{ secrets.GITHUB_TOKEN }}
RELEASE_ID: ${{ needs.prepare-release.outputs.release_id }}
VERSION: ${{ steps.version.outputs.version }}
run: |
deb="src-tauri/target/release/bundle/deb/Cinny_${VERSION}_amd64.deb"
appimage="src-tauri/target/release/bundle/appimage/Cinny_${VERSION}_amd64.AppImage"
declare -A uploads=(
["LotusChat-x86_64.deb"]="$deb"
["LotusChat-x86_64.AppImage"]="$appimage"
["LotusChat-x86_64.AppImage.tar.gz"]="${appimage}.tar.gz"
["LotusChat-x86_64.AppImage.tar.gz.sig"]="${appimage}.tar.gz.sig"
)
for name in "${!uploads[@]}"; do
echo "Uploading $name"
curl -sf -X POST \
"$GITEA_URL/api/v1/repos/$REPO/releases/$RELEASE_ID/assets?name=$name" \
-H "Authorization: token $TOKEN" \
-H "Content-Type: application/octet-stream" \
--data-binary @"${uploads[$name]}"
done
+2 -1
View File
@@ -1,3 +1,4 @@
[submodule "cinny"] [submodule "cinny"]
path = cinny path = cinny
url = https://github.com/cinnyapp/cinny.git url = https://code.lotusguild.org/LotusGuild/cinny.git
branch = lotus
+1 -1
Submodule cinny updated: 80fd8863c9...71386f4ef2