mirror of
https://github.com/moku-project/Moku.git
synced 2026-06-13 01:09:56 -05:00
Feat: Static & Flatpak Workflow + Recent Fix
This commit is contained in:
@@ -0,0 +1,80 @@
|
||||
name: Build Flatpak
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
version:
|
||||
description: "Version to build (e.g. 0.9.0)"
|
||||
required: true
|
||||
|
||||
permissions:
|
||||
contents: write
|
||||
|
||||
jobs:
|
||||
flatpak:
|
||||
name: Build Flatpak bundle
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Free up disk space
|
||||
run: |
|
||||
sudo rm -rf /usr/local/lib/android /opt/ghc /usr/share/dotnet /opt/hostedtoolcache/CodeQL
|
||||
sudo docker image prune -af || true
|
||||
|
||||
- name: Install flatpak tooling
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y flatpak flatpak-builder
|
||||
flatpak --user remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
|
||||
|
||||
- name: Cache flatpak runtimes/SDKs
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: ~/.local/share/flatpak
|
||||
key: flatpak-runtimes-gnome48-rust-stable
|
||||
|
||||
- name: Install runtime, SDK and rust-stable extension
|
||||
run: |
|
||||
flatpak --user install -y --noninteractive flathub \
|
||||
org.gnome.Platform//48 \
|
||||
org.gnome.Sdk//48 \
|
||||
org.freedesktop.Sdk.Extension.rust-stable//48
|
||||
|
||||
- name: Build flatpak
|
||||
run: |
|
||||
rm -rf build-dir repo
|
||||
flatpak-builder \
|
||||
--user \
|
||||
--install-deps-from=flathub \
|
||||
--repo=repo \
|
||||
--force-clean \
|
||||
build-dir \
|
||||
io.github.moku_project.Moku.yml
|
||||
|
||||
- name: Bundle flatpak
|
||||
run: |
|
||||
flatpak build-bundle \
|
||||
--runtime-repo=https://flathub.org/repo/flathub.flatpakrepo \
|
||||
repo \
|
||||
moku.flatpak \
|
||||
io.github.moku_project.Moku
|
||||
|
||||
- name: Upload Flatpak artifact to release
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: |
|
||||
for i in $(seq 1 12); do
|
||||
RELEASE_ID=$(curl -s -H "Authorization: Bearer $GITHUB_TOKEN" \
|
||||
"https://api.github.com/repos/moku-project/Moku/releases" \
|
||||
| jq -r '.[] | select(.tag_name == "v${{ github.event.inputs.version }}") | .id' | head -1)
|
||||
[ -n "$RELEASE_ID" ] && break
|
||||
echo "Waiting for release... attempt $i"; sleep 15
|
||||
done
|
||||
[ -z "$RELEASE_ID" ] && { echo "ERROR: release not found"; exit 1; }
|
||||
|
||||
curl -s -X POST \
|
||||
-H "Authorization: Bearer $GITHUB_TOKEN" \
|
||||
-H "Content-Type: application/octet-stream" \
|
||||
--data-binary @"moku.flatpak" \
|
||||
"https://uploads.github.com/repos/moku-project/Moku/releases/$RELEASE_ID/assets?name=moku.flatpak"
|
||||
@@ -0,0 +1,51 @@
|
||||
name: Build Static WebUI
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
version:
|
||||
description: "Version to build (e.g. 0.9.0)"
|
||||
required: true
|
||||
|
||||
permissions:
|
||||
contents: write
|
||||
|
||||
jobs:
|
||||
build:
|
||||
name: Build static frontend
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: pnpm/action-setup@v4
|
||||
with: { version: latest }
|
||||
- uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: 22
|
||||
cache: pnpm
|
||||
|
||||
- run: pnpm install --frozen-lockfile
|
||||
- run: pnpm build:static
|
||||
|
||||
- name: Zip static build
|
||||
run: |
|
||||
cd dist
|
||||
zip -r "../moku-webui-${{ github.event.inputs.version }}.zip" .
|
||||
|
||||
- name: Upload WebUI artifact to release
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: |
|
||||
for i in $(seq 1 12); do
|
||||
RELEASE_ID=$(curl -s -H "Authorization: Bearer $GITHUB_TOKEN" \
|
||||
"https://api.github.com/repos/moku-project/Moku/releases" \
|
||||
| jq -r '.[] | select(.tag_name == "v${{ github.event.inputs.version }}") | .id' | head -1)
|
||||
[ -n "$RELEASE_ID" ] && break
|
||||
echo "Waiting for release... attempt $i"; sleep 15
|
||||
done
|
||||
[ -z "$RELEASE_ID" ] && { echo "ERROR: release not found"; exit 1; }
|
||||
|
||||
curl -s -X POST \
|
||||
-H "Authorization: Bearer $GITHUB_TOKEN" \
|
||||
-H "Content-Type: application/zip" \
|
||||
--data-binary @"moku-webui-${{ github.event.inputs.version }}.zip" \
|
||||
"https://uploads.github.com/repos/moku-project/Moku/releases/$RELEASE_ID/assets?name=moku-webui-${{ github.event.inputs.version }}.zip"
|
||||
Reference in New Issue
Block a user