mirror of
https://github.com/pepaskopec-blip/Graduately.git
synced 2026-10-27 15:14:35 +00:00
Build all apps from Markdown content; Compose Desktop replaces GTK on Linux and Windows
- content/ + scripts/build-content.py produce content.json for every app - stable lesson IDs with one-time progress migration (Swift, Kotlin) - shared answer-check tests (tests/answers.json) for Kotlin and Swift - android/desktop: Compose app with updater, speech and GTK progress import - CI packages AppImage and Windows zip with ProGuard, runs the tests Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
parent
b324496334
commit
c3bc32113b
964 changed files with 57285 additions and 1156 deletions
72
.github/workflows/build.yml
vendored
72
.github/workflows/build.yml
vendored
|
|
@ -24,19 +24,27 @@ jobs:
|
|||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Install dependencies
|
||||
# ProGuard and jlink need a JDK that ships jmods; Temurin 21 does.
|
||||
- uses: actions/setup-java@v4
|
||||
with:
|
||||
distribution: temurin
|
||||
java-version: 21
|
||||
|
||||
- uses: gradle/actions/setup-gradle@v4
|
||||
with:
|
||||
build-root-directory: android
|
||||
|
||||
- name: Answer checks
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y \
|
||||
build-essential pkg-config curl \
|
||||
libgtk-4-dev librsvg2-dev \
|
||||
desktop-file-utils \
|
||||
appstream
|
||||
chmod +x android/gradlew
|
||||
cd android
|
||||
./gradlew :desktop:test --no-daemon
|
||||
|
||||
- name: Build AppImage
|
||||
env:
|
||||
COMMIT: ${{ github.sha }}
|
||||
run: |
|
||||
export PACKAGE_JDK="$JAVA_HOME"
|
||||
chmod +x scripts/bundle-linux.sh
|
||||
./scripts/bundle-linux.sh
|
||||
|
||||
|
|
@ -51,38 +59,35 @@ jobs:
|
|||
runs-on: windows-latest
|
||||
defaults:
|
||||
run:
|
||||
shell: msys2 {0}
|
||||
shell: bash
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- uses: msys2/setup-msys2@v2
|
||||
- uses: actions/setup-java@v4
|
||||
with:
|
||||
msystem: UCRT64
|
||||
update: true
|
||||
install: >-
|
||||
make
|
||||
zip
|
||||
mingw-w64-ucrt-x86_64-gcc
|
||||
mingw-w64-ucrt-x86_64-gtk4
|
||||
mingw-w64-ucrt-x86_64-pkg-config
|
||||
mingw-w64-ucrt-x86_64-make
|
||||
distribution: temurin
|
||||
java-version: 21
|
||||
|
||||
- name: Build and bundle
|
||||
- uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: "3.12"
|
||||
|
||||
- uses: gradle/actions/setup-gradle@v4
|
||||
with:
|
||||
build-root-directory: android
|
||||
|
||||
- name: Build zip
|
||||
env:
|
||||
COMMIT: ${{ github.sha }}
|
||||
run: |
|
||||
make bundle
|
||||
cd dist
|
||||
zip -qry ../graduately-windows-x64.zip .
|
||||
cd ..
|
||||
mkdir -p dist-out
|
||||
mv graduately-windows-x64.zip dist-out/
|
||||
export PACKAGE_JDK="$JAVA_HOME"
|
||||
bash scripts/bundle-windows.sh
|
||||
|
||||
- name: Upload artifact
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: graduately-windows
|
||||
path: dist-out/graduately-windows-x64.zip
|
||||
path: dist/graduately-windows-x64.zip
|
||||
|
||||
macos:
|
||||
name: macOS app
|
||||
|
|
@ -173,11 +178,11 @@ jobs:
|
|||
with:
|
||||
build-root-directory: android
|
||||
|
||||
- name: Extract content and build APK
|
||||
- name: Build content and APK
|
||||
env:
|
||||
COMMIT: ${{ github.sha }}
|
||||
run: |
|
||||
python3 scripts/extract-android-content.py
|
||||
python3 scripts/build-content.py
|
||||
chmod +x android/gradlew
|
||||
cd android
|
||||
./gradlew :app:assembleRelease --no-daemon
|
||||
|
|
@ -198,7 +203,14 @@ jobs:
|
|||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Extract content and build IPA
|
||||
- name: Answer checks
|
||||
env:
|
||||
DEVELOPER_DIR: /Applications/Xcode.app/Contents/Developer
|
||||
run: |
|
||||
chmod +x scripts/test-answers-swift.sh
|
||||
./scripts/test-answers-swift.sh
|
||||
|
||||
- name: Build content and IPA
|
||||
env:
|
||||
COMMIT: ${{ github.sha }}
|
||||
DEVELOPER_DIR: /Applications/Xcode.app/Contents/Developer
|
||||
|
|
@ -253,6 +265,8 @@ jobs:
|
|||
[ -f fresh/graduately-android.apk ] && echo "${{ github.sha }}" > staged/VERSION-android
|
||||
[ -f fresh/graduately-ios.ipa ] && echo "${{ github.sha }}" > staged/VERSION-ios
|
||||
ls fresh/graduately-macos-*.zip >/dev/null 2>&1 && echo "${{ github.sha }}" > staged/VERSION-macos
|
||||
[ -f fresh/graduately-windows-x64.zip ] && echo "${{ github.sha }}" > staged/VERSION-windows
|
||||
[ -f fresh/graduately-linux-x86_64.AppImage ] && echo "${{ github.sha }}" > staged/VERSION-linux
|
||||
# Compatibility aliases so older installers/updaters still find packages.
|
||||
[ -f staged/graduately-macos-arm64.zip ] && cp -f staged/graduately-macos-arm64.zip staged/maturita-macos-arm64.zip
|
||||
[ -f staged/graduately-macos-x86_64.zip ] && cp -f staged/graduately-macos-x86_64.zip staged/maturita-macos-x86_64.zip
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue