mirror of
https://github.com/KRTirtho/spotube.git
synced 2026-11-04 10:13:59 +00:00
chore: update release workflow and documentation for dependency management
This commit is contained in:
parent
ced26462a9
commit
069b586d44
28
.github/workflows/spotube-release-binary.yml
vendored
28
.github/workflows/spotube-release-binary.yml
vendored
@ -34,8 +34,6 @@ concurrency:
|
|||||||
env:
|
env:
|
||||||
COMPOSE_WEBVIEW_REPO: KRTirtho/ComposeNativeWebview
|
COMPOSE_WEBVIEW_REPO: KRTirtho/ComposeNativeWebview
|
||||||
COMPOSE_WEBVIEW_COMMIT: cbd36f88927298a28a2d64c6acf7ec3b2def6f9d
|
COMPOSE_WEBVIEW_COMMIT: cbd36f88927298a28a2d64c6acf7ec3b2def6f9d
|
||||||
GRADLE_PLUGIN_REPO: team-spotube/gradle-plugin
|
|
||||||
VLCJ_BUNDLER_REPO: team-spotube/vlcj-bundler-gradle-plugin
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
prepare-deps:
|
prepare-deps:
|
||||||
@ -50,20 +48,6 @@ jobs:
|
|||||||
token: ${{ secrets.GITHUB_TOKEN }}
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
path: compose-webview
|
path: compose-webview
|
||||||
|
|
||||||
- name: Checkout gradle-plugin
|
|
||||||
uses: actions/checkout@v7
|
|
||||||
with:
|
|
||||||
repository: ${{ env.GRADLE_PLUGIN_REPO }}
|
|
||||||
token: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
path: gradle-plugin
|
|
||||||
|
|
||||||
- name: Checkout vlcj-bundler
|
|
||||||
uses: actions/checkout@v7
|
|
||||||
with:
|
|
||||||
repository: ${{ env.VLCJ_BUNDLER_REPO }}
|
|
||||||
token: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
path: vlcj-bundler
|
|
||||||
|
|
||||||
- name: Set up JDK 21
|
- name: Set up JDK 21
|
||||||
uses: actions/setup-java@v6
|
uses: actions/setup-java@v6
|
||||||
with:
|
with:
|
||||||
@ -85,18 +69,6 @@ jobs:
|
|||||||
chmod +x gradlew
|
chmod +x gradlew
|
||||||
./gradlew publishToMavenLocal
|
./gradlew publishToMavenLocal
|
||||||
|
|
||||||
- name: Publish gradle-plugin to mavenLocal
|
|
||||||
working-directory: gradle-plugin
|
|
||||||
run: |
|
|
||||||
chmod +x gradlew
|
|
||||||
./gradlew publishToMavenLocal
|
|
||||||
|
|
||||||
- name: Publish vlcj-bundler to mavenLocal
|
|
||||||
working-directory: vlcj-bundler
|
|
||||||
run: |
|
|
||||||
chmod +x gradlew
|
|
||||||
./gradlew publishToMavenLocal
|
|
||||||
|
|
||||||
- name: Upload maven local
|
- name: Upload maven local
|
||||||
uses: actions/upload-artifact@v7
|
uses: actions/upload-artifact@v7
|
||||||
with:
|
with:
|
||||||
|
|||||||
@ -59,9 +59,7 @@
|
|||||||
|
|
||||||
## Release workflow (`.github/workflows/release.yml`)
|
## Release workflow (`.github/workflows/release.yml`)
|
||||||
- Triggered by `workflow_dispatch` with a `release_type` choice input (`stable` | `nightly`).
|
- Triggered by `workflow_dispatch` with a `release_type` choice input (`stable` | `nightly`).
|
||||||
- `prepare-deps` job checks out & publishes to `mavenLocal`:
|
- `prepare-deps` job checks out & publishes `kdroidFilter/ComposeNativeWebview` (compose-webview) to `mavenLocal`. The spotube gradle plugin and vlcj-bundler now come from Maven Central.
|
||||||
- `kdroidFilter/ComposeNativeWebview` (compose-webview)
|
|
||||||
- `team-spotube/gradle-plugin` (spotubeGradle + vlcjBundler plugins)
|
|
||||||
- Build jobs per platform (Android, Linux, Windows, macOS), all `needs: prepare-deps`. Desktop jobs ship GraalVM native installers (`packageGraalvm{Deb,Rpm,Exe,Dmg}`, output in `composeApp/build/compose/binaries/main/graalvm-<format>/`), not jpackage/JVM ones.
|
- Build jobs per platform (Android, Linux, Windows, macOS), all `needs: prepare-deps`. Desktop jobs ship GraalVM native installers (`packageGraalvm{Deb,Rpm,Exe,Dmg}`, output in `composeApp/build/compose/binaries/main/graalvm-<format>/`), not jpackage/JVM ones.
|
||||||
- **Stable**: reads `versionName` from `composeApp/build.gradle.kts`, tag = `v{version}`, draft release.
|
- **Stable**: reads `versionName` from `composeApp/build.gradle.kts`, tag = `v{version}`, draft release.
|
||||||
- **Nightly**: builds with `-PversionName=nightly`, tag = `nightly` (updates existing), prerelease.
|
- **Nightly**: builds with `-PversionName=nightly`, tag = `nightly` (updates existing), prerelease.
|
||||||
|
|||||||
@ -54,10 +54,8 @@ Spotube is a Kotlin Multiplatform + Compose Multiplatform app. The desktop app i
|
|||||||
- **JDK 21** to run Gradle. The Gradle daemon JDK and the GraalVM toolchain are provisioned automatically.
|
- **JDK 21** to run Gradle. The Gradle daemon JDK and the GraalVM toolchain are provisioned automatically.
|
||||||
- **Rust** (`rustup` + `cargo`). The `composeApp` Rust library is built through [Gobley](https://gobley.dev).
|
- **Rust** (`rustup` + `cargo`). The `composeApp` Rust library is built through [Gobley](https://gobley.dev).
|
||||||
- **Android SDK**, only for Android builds.
|
- **Android SDK**, only for Android builds.
|
||||||
- **Unpublished dependencies.** Three dependencies aren't on Maven Central yet. Clone each one and run `./gradlew publishToMavenLocal` in it:
|
- **Unpublished dependency.** One dependency isn't on Maven Central yet. Clone it and run `./gradlew publishToMavenLocal` in it:
|
||||||
- [kdroidFilter/ComposeNativeWebview](https://github.com/kdroidFilter/ComposeNativeWebview), at the commit pinned in [`spotube-release-binary.yml`](.github/workflows/spotube-release-binary.yml) (`COMPOSE_WEBVIEW_COMMIT`)
|
- [kdroidFilter/ComposeNativeWebview](https://github.com/kdroidFilter/ComposeNativeWebview), at the commit pinned in [`spotube-release-binary.yml`](.github/workflows/spotube-release-binary.yml) (`COMPOSE_WEBVIEW_COMMIT`)
|
||||||
- [team-spotube/gradle-plugin](https://github.com/team-spotube/gradle-plugin)
|
|
||||||
- [team-spotube/vlcj-bundler-gradle-plugin](https://github.com/team-spotube/vlcj-bundler-gradle-plugin)
|
|
||||||
- **Linux runtime:** `webkit2gtk-4.1` for the embedded webview.
|
- **Linux runtime:** `webkit2gtk-4.1` for the embedded webview.
|
||||||
|
|
||||||
Always use the Gradle wrapper (`./gradlew`, or `gradlew.bat` on Windows).
|
Always use the Gradle wrapper (`./gradlew`, or `gradlew.bat` on Windows).
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user