Build for Web, Desktop, Android #244
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: build-web-desktop-mobile | |
run-name: Build for Web, Desktop, Android | |
on: | |
push: | |
branches: | |
- master | |
paths-ignore: | |
- "README.md" | |
- "docs/*" | |
concurrency: | |
group: build-${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
build-web: | |
name: "Build for Web" | |
runs-on: ubuntu-latest | |
permissions: | |
contents: write | |
timeout-minutes: 60 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Validate Gradle Wrapper | |
uses: gradle/wrapper-validation-action@v2 | |
- name: Copy CI gradle.properties (idk about this) | |
run: mkdir -p ~/.gradle ; cp .github/ci-gradle.properties ~/.gradle/gradle.properties | |
- name: Set up JDK 17 | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'zulu' | |
java-version: 17 | |
- name: Setup Gradle | |
uses: gradle/actions/setup-gradle@v3 | |
- name: Gradle build for web | |
run: ./gradlew wasmJsBrowserDistribution | |
- name: Upload build output | |
uses: actions/upload-artifact@v4 | |
with: | |
name: Dodeclusters-web | |
path: './composeApp/build/dist/wasmJs/productionExecutable/' | |
- name: Deploy to Github Pages | |
uses: JamesIves/github-pages-deploy-action@v4 | |
with: | |
folder: './composeApp/build/dist/wasmJs/productionExecutable/' | |
branch: github-pages | |
clean-exclude: | | |
LICENSE | |
README.md | |
.gitignore | |
# absolute jdk path is bad in | |
# compose.desktop { application { javaHome } } | |
build-dektop: | |
name: "Build EXE" | |
runs-on: windows-latest | |
permissions: | |
contents: write | |
timeout-minutes: 60 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Validate Gradle Wrapper | |
uses: gradle/wrapper-validation-action@v2 | |
- name: Copy CI gradle.properties (idk about this) | |
run: mkdir -p ~/.gradle ; cp .github/ci-gradle.properties ~/.gradle/gradle.properties | |
- name: Set up JDK 17 | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'zulu' | |
java-version: 17 | |
- name: Setup Gradle | |
uses: gradle/actions/setup-gradle@v3 | |
- name: Gradle build for desktop | |
run: ./gradlew composeApp:createReleaseDistributable | |
- name: Upload build output | |
uses: actions/upload-artifact@v4 | |
with: | |
name: Dodeclusters-windows-standalone | |
path: 'composeApp/build/compose/binaries/main-release/app/com.pierbezuhoff.dodeclusters' | |
build-appimage: | |
name: "Build AppImage for Linux Desktop (WIP)" | |
runs-on: ubuntu-latest | |
permissions: | |
contents: write | |
timeout-minutes: 60 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Validate Gradle Wrapper | |
uses: gradle/wrapper-validation-action@v2 | |
- name: Copy CI gradle.properties (idk about this) | |
run: mkdir -p ~/.gradle ; cp .github/ci-gradle.properties ~/.gradle/gradle.properties | |
- name: Set up JDK 17 | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'zulu' | |
java-version: 17 | |
- name: Setup Gradle | |
uses: gradle/actions/setup-gradle@v3 | |
- name: Gradle build for AppImage AppDir | |
run: ./gradlew composeApp:packageReleaseAppImage | |
- name: Upload build output | |
uses: actions/upload-artifact@v4 | |
with: | |
name: Dodeclusters-linux-standalone | |
path: 'composeApp/build/compose/binaries/main-release/app/com.pierbezuhoff.dodeclusters' | |
build-deb: | |
name: "Build deb for Ubuntu & Debian-based systems" | |
runs-on: ubuntu-latest | |
permissions: | |
contents: write | |
timeout-minutes: 60 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Validate Gradle Wrapper | |
uses: gradle/wrapper-validation-action@v2 | |
- name: Copy CI gradle.properties (idk about this) | |
run: mkdir -p ~/.gradle ; cp .github/ci-gradle.properties ~/.gradle/gradle.properties | |
- name: Set up JDK 17 | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'zulu' | |
java-version: 17 | |
- name: Setup Gradle | |
uses: gradle/actions/setup-gradle@v3 | |
- name: Gradle build for deb package | |
run: ./gradlew composeApp:packageReleaseDeb | |
- name: Upload build output | |
uses: actions/upload-artifact@v4 | |
with: | |
name: Dodeclusters-linux-deb | |
path: 'composeApp/build/compose/binaries/main-release/deb' | |
build-android: | |
name: "Build apk for Android (debug)" | |
runs-on: ubuntu-latest | |
permissions: | |
contents: write | |
timeout-minutes: 60 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Validate Gradle Wrapper | |
uses: gradle/wrapper-validation-action@v2 | |
- name: Copy CI gradle.properties (idk about this) | |
run: mkdir -p ~/.gradle ; cp .github/ci-gradle.properties ~/.gradle/gradle.properties | |
- name: Set up JDK 17 | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'zulu' | |
java-version: 17 | |
- name: Setup Gradle | |
uses: gradle/actions/setup-gradle@v3 | |
- name: Gradle build for debug apk | |
run: ./gradlew assembleDebug | |
- name: Upload build output | |
uses: actions/upload-artifact@v4 | |
with: | |
name: Dodeclusters-android-debug | |
path: 'composeApp/build/outputs/apk/debug' | |