diff --git a/.github/workflows/release-gradle.yml b/.github/workflows/release-gradle.yml index a24fff81b..7ffa024f2 100644 --- a/.github/workflows/release-gradle.yml +++ b/.github/workflows/release-gradle.yml @@ -7,7 +7,7 @@ jobs: version: runs-on: ubuntu-latest outputs: - build_number: ${{ steps.tag_info.outputs.build_number }} + revision: ${{ steps.tag_info.outputs.revision }} version: ${{ steps.tag_info.outputs.version }} steps: - name: Extract version and revision @@ -149,6 +149,8 @@ jobs: ORG_GRADLE_PROJECT_compose.desktop.mac.notarization.appleID: ${{ secrets.PROCESSING_APPLE_ID }} ORG_GRADLE_PROJECT_compose.desktop.mac.notarization.password: ${{ secrets.PROCESSING_APP_PASSWORD }} ORG_GRADLE_PROJECT_compose.desktop.mac.notarization.teamID: ${{ secrets.PROCESSING_TEAM_ID }} + SNAPCRAFT_STORE_CREDENTIALS: ${{ secrets.PROCESSING_SNAPCRAFT_TOKEN }} + ORG_GRADLE_PROJECT_snapname: ${{ vars.SNAP_NAME }} - name: Upload portables to release uses: svenstaro/upload-release-action@v2 diff --git a/app/build.gradle.kts b/app/build.gradle.kts index db69d9eb0..507e5c154 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -174,22 +174,25 @@ tasks.register("packageCustomMsi"){ ) } +val snapname = findProperty("snapname") ?: rootProject.name +val snaparch = when (System.getProperty("os.arch")) { + "amd64", "x86_64" -> "amd64" + "aarch64" -> "arm64" + else -> System.getProperty("os.arch") +} tasks.register("generateSnapConfiguration"){ onlyIf { org.gradle.internal.os.OperatingSystem.current().isLinux } val distributable = tasks.named("createDistributable").get() dependsOn(distributable) - val arch = when (System.getProperty("os.arch")) { - "amd64", "x86_64" -> "amd64" - "aarch64" -> "arm64" - else -> System.getProperty("os.arch") - } + val version = if(version == "unspecified") "1.0.0" else version + val dir = distributable.destinationDir.get() val content = """ - name: ${rootProject.name} + name: $snapname version: $version base: core22 summary: A creative coding editor @@ -210,13 +213,14 @@ tasks.register("generateSnapConfiguration"){ parts: processing: plugin: dump - source: deb/processing_$version-1_$arch.deb + source: deb/processing_$version-1_$snaparch.deb source-type: deb stage-packages: - openjdk-17-jdk override-prime: | snapcraftctl prime chmod -R +x opt/processing/lib/app/resources/jdk-* + rm -vf usr/lib/jvm/java-17-openjdk-*/lib/security/cacerts """.trimIndent() dir.file("../snapcraft.yaml").asFile.writeText(content) } @@ -230,6 +234,17 @@ tasks.register("packageSnap"){ workingDir = distributable.destinationDir.dir("../").get().asFile commandLine("snapcraft") + commandLine("cp ${snapname}_${version}_${snaparch}.snap ${name}_${version}_${snaparch}.snap") +} +tasks.register("uploadSnap"){ + onlyIf { org.gradle.internal.os.OperatingSystem.current().isLinux } + dependsOn("packageSnap") + group = "compose desktop" + + val distributable = tasks.named("createDistributable").get() + workingDir = distributable.destinationDir.dir("../").get().asFile + + commandLine("snapcraft upload ${snapname}_${version}_${snaparch}.snap") } tasks.register("zipDistributable"){ dependsOn("createDistributable") @@ -262,7 +277,7 @@ afterEvaluate{ if(compose.desktop.application.nativeDistributions.macOS.notarization.appleID.isPresent){ dependsOn("notarizeDmg") } - dependsOn("packageSnap") + dependsOn("packageSnap", "uploadSnap") } }