diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..2656af2 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,101 @@ +name: Build + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + workflow_dispatch: + +jobs: + build-android: + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Set up JDK 17 + uses: actions/setup-java@v4 + with: + java-version: '17' + distribution: 'temurin' + cache: gradle + + - name: Grant execute permission for gradlew + run: chmod +x gradlew + + - name: Build Android APK + run: ./gradlew :composeApp:assembleRelease + + - name: Upload Android APK + uses: actions/upload-artifact@v4 + with: + name: android-apk + path: composeApp/build/outputs/apk/release/*.apk + retention-days: 30 + + build-desktop-windows: + runs-on: windows-latest + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Set up JDK 17 + uses: actions/setup-java@v4 + with: + java-version: '17' + distribution: 'temurin' + cache: gradle + + - name: Build Desktop package + run: ./gradlew :composeApp:packageReleaseDistributionForCurrentOS + shell: bash + + - name: Upload Desktop artifacts + uses: actions/upload-artifact@v4 + with: + name: desktop-windows + path: composeApp/build/compose/binaries/main-release/**/* + retention-days: 30 + + build-desktop-linux: + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Set up JDK 17 + uses: actions/setup-java@v4 + with: + java-version: '17' + distribution: 'temurin' + cache: gradle + + - name: Grant execute permission for gradlew + run: chmod +x gradlew + + - name: Build Desktop package + run: ./gradlew :composeApp:packageReleaseDistributionForCurrentOS + shell: bash + + - name: Build JAR package + run: ./gradlew :composeApp:packageUberJarForCurrentOS + shell: bash + + - name: Upload Desktop artifacts + uses: actions/upload-artifact@v4 + with: + name: desktop-linux + path: composeApp/build/compose/binaries/main-release/**/* + retention-days: 30 + + - name: Upload JAR artifacts + uses: actions/upload-artifact@v4 + with: + name: desktop-jar + path: composeApp/build/compose/jars/* + retention-days: 30 + diff --git a/composeApp/build.gradle.kts b/composeApp/build.gradle.kts index 912016f..0ca4067 100644 --- a/composeApp/build.gradle.kts +++ b/composeApp/build.gradle.kts @@ -100,7 +100,7 @@ compose.desktop { } nativeDistributions { - targetFormats(TargetFormat.Dmg, TargetFormat.Msi, TargetFormat.Deb) + targetFormats(TargetFormat.Dmg, TargetFormat.Exe, TargetFormat.AppImage) packageName = "overport" packageVersion = appVersion @@ -120,3 +120,21 @@ compose.desktop { } } } + +tasks.withType { + // Need for valid signature check + exclude( + "META-INF/*.SF", + "META-INF/*.DSA", + "META-INF/*.RSA", + "META-INF/*.EC" + ) + + exclude( + "META-INF/INDEX.LIST", + "META-INF/DEPENDENCIES", + "META-INF/LICENSE*", + "META-INF/NOTICE*" + ) +} +