diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index cdc504f..2c79068 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -3,7 +3,8 @@ name: Linux on: [ push, pull_request ] env: - DOCKER_NAME: hstyi/jbr:21.0.7b1038.58 + JBR_MAJOR: 21.0.7 + JBR_PATCH: b1038.58 jobs: build: @@ -25,6 +26,10 @@ jobs: restore-keys: | ${{ runner.os }}-${{ runner.arch }}-gradlexyz- + - name: Set dynamic DOCKER_NAME + run: | + echo "DOCKER_NAME=hstyi/jbr:${{ env.JBR_MAJOR }}${{ env.JBR_PATCH }}" >> $GITHUB_ENV + - name: Create docker-run.sh helper script shell: bash run: | diff --git a/.github/workflows/osx.yml b/.github/workflows/osx.yml index a3eb23e..8a4ea24 100644 --- a/.github/workflows/osx.yml +++ b/.github/workflows/osx.yml @@ -8,6 +8,8 @@ env: # 只有发布版本时才需要公证 TERMORA_MAC_NOTARY: "${{ startsWith(github.event.head_commit.message, 'release: ') && github.repository == 'TermoraDev/termora' }}" TERMORA_MAC_NOTARY_KEYCHAIN_PROFILE: ${{ secrets.TERMORA_MAC_NOTARY_KEYCHAIN_PROFILE }} + JBR_MAJOR: 21.0.7 + JBR_PATCH: b1038.58 jobs: build: @@ -60,7 +62,7 @@ jobs: else ARCH="x64" fi - wget -q -O $RUNNER_TEMP/java_package.tar.gz https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-21.0.7-osx-$ARCH-b1034.51.tar.gz + wget -q -O $RUNNER_TEMP/java_package.tar.gz https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-${{ env.JBR_MAJOR }}-osx-$ARCH-${{ env.JBR_PATCH }}.tar.gz # install jdk - name: Installing Java diff --git a/.github/workflows/windows-x86-64.yml b/.github/workflows/windows.yml similarity index 59% rename from .github/workflows/windows-x86-64.yml rename to .github/workflows/windows.yml index 555b4b5..1981365 100644 --- a/.github/workflows/windows-x86-64.yml +++ b/.github/workflows/windows.yml @@ -1,15 +1,31 @@ -name: Windows x86-64 +name: Windows on: [ push, pull_request ] +env: + JBR_MAJOR: 21.0.7 + JBR_PATCH: b1038.58 + jobs: build: - runs-on: windows-latest + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ windows-11-arm, windows-latest ] steps: - uses: actions/checkout@v4 with: fetch-depth: 0 + - name: Set architecture + id: set-arch + run: | + if ($env:PROCESSOR_ARCHITECTURE -eq "ARM64") { + echo "ARCH=aarch64" >> $env:GITHUB_ENV + } else { + echo "ARCH=x64" >> $env:GITHUB_ENV + } + - name: Install zip run: | $system32 = [System.Environment]::GetEnvironmentVariable("WINDIR") + "\System32" @@ -21,9 +37,13 @@ jobs: - name: Installing Java run: | - curl -s --output ${{ runner.temp }}\java_package.zip -L https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-21.0.7-windows-x64-b1034.51.zip - unzip -q ${{ runner.temp }}\java_package.zip -d ${{ runner.temp }}\jbr - echo "JAVA_HOME=${{ runner.temp }}\jbr\jbrsdk-21.0.7-windows-x64-b1034.51" >> $env:GITHUB_ENV + $zipPath = "${{ runner.temp }}\java_package.zip" + $extractDir = "${{ runner.temp }}\jbr" + $url = "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-${{ env.JBR_MAJOR }}-windows-${{ env.ARCH }}-${{ env.JBR_PATCH }}.zip" + curl -s --output $zipPath -L $url + unzip -q $zipPath -d $extractDir + $jbrDir = Get-ChildItem $extractDir | Select-Object -First 1 + echo "JAVA_HOME=$($jbrDir.FullName)" >> $env:GITHUB_ENV - uses: actions/cache@v4 with: @@ -49,7 +69,7 @@ jobs: - name: Upload artifact uses: actions/upload-artifact@v4 with: - name: termora-windows-x86-64 + name: termora-windows-${{ runner.arch }} path: | build/distributions/*.zip build/distributions/*.exe diff --git a/build.gradle.kts b/build.gradle.kts index a652a92..1b88afe 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -480,10 +480,6 @@ tasks.register("jpackage") { } if (os.isWindows) { - arguments.add("--win-dir-chooser") - arguments.add("--win-shortcut") - arguments.add("--win-shortcut-prompt") - arguments.addAll(listOf("--win-upgrade-uuid", "E1D93CAD-5BF8-442E-93BA-6E90DE601E4C")) arguments.addAll(listOf("--icon", "${projectDir.absolutePath}/src/main/resources/icons/termora.ico")) } @@ -496,7 +492,7 @@ tasks.register("jpackage") { if (os.isMacOsX) { arguments.add("dmg") } else if (os.isWindows) { - arguments.add("msi") + arguments.add("app-image") } else if (os.isLinux) { arguments.add(if (isDeb) "deb" else "app-image") if (isDeb) { @@ -568,7 +564,7 @@ tasks.register("check-license") { * 创建 zip、msi */ fun packOnWindows(distributionDir: Directory, finalFilenameWithoutExtension: String, projectName: String) { - val dir = layout.buildDirectory.dir("jpackage/images/win-msi.image/").get().asFile + val dir = layout.buildDirectory.dir("distributions").get().asFile val cfg = FileUtils.getFile(dir, projectName, "app", "${projectName}.cfg") val configText = cfg.readText() @@ -593,21 +589,12 @@ fun packOnWindows(distributionDir: Directory, finalFilenameWithoutExtension: Str "/DMyAppVersion=${appVersion}", "/DMyOutputDir=${distributionDir.asFile.absolutePath}", "/DMySetupIconFile=${FileUtils.getFile(projectDir, "src", "main", "resources", "icons", "termora.ico")}", - "/DMySourceDir=${layout.buildDirectory.dir("jpackage/images/win-msi.image/${projectName}").get().asFile}", + "/DMySourceDir=${FileUtils.getFile(dir, projectName).absolutePath}", "/F${finalFilenameWithoutExtension}", FileUtils.getFile(projectDir, "src", "main", "resources", "termora.iss") ) } - // msi - exec { - commandLine( - "cmd", "/c", "move", - "${projectName}-${appVersion}.msi", - "${finalFilenameWithoutExtension}.msi" - ) - workingDir = distributionDir.asFile - } } /**