chore: windows action

This commit is contained in:
hstyi
2025-07-11 09:53:24 +08:00
committed by hstyi
parent 18a7a5059b
commit c58e84d2ae
4 changed files with 38 additions and 24 deletions

View File

@@ -3,7 +3,8 @@ name: Linux
on: [ push, pull_request ] on: [ push, pull_request ]
env: env:
DOCKER_NAME: hstyi/jbr:21.0.7b1038.58 JBR_MAJOR: 21.0.7
JBR_PATCH: b1038.58
jobs: jobs:
build: build:
@@ -25,6 +26,10 @@ jobs:
restore-keys: | restore-keys: |
${{ runner.os }}-${{ runner.arch }}-gradlexyz- ${{ 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 - name: Create docker-run.sh helper script
shell: bash shell: bash
run: | run: |

View File

@@ -8,6 +8,8 @@ env:
# 只有发布版本时才需要公证 # 只有发布版本时才需要公证
TERMORA_MAC_NOTARY: "${{ startsWith(github.event.head_commit.message, 'release: ') && github.repository == 'TermoraDev/termora' }}" 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 }} TERMORA_MAC_NOTARY_KEYCHAIN_PROFILE: ${{ secrets.TERMORA_MAC_NOTARY_KEYCHAIN_PROFILE }}
JBR_MAJOR: 21.0.7
JBR_PATCH: b1038.58
jobs: jobs:
build: build:
@@ -60,7 +62,7 @@ jobs:
else else
ARCH="x64" ARCH="x64"
fi 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 # install jdk
- name: Installing Java - name: Installing Java

View File

@@ -1,15 +1,31 @@
name: Windows x86-64 name: Windows
on: [ push, pull_request ] on: [ push, pull_request ]
env:
JBR_MAJOR: 21.0.7
JBR_PATCH: b1038.58
jobs: jobs:
build: build:
runs-on: windows-latest runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ windows-11-arm, windows-latest ]
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
with: with:
fetch-depth: 0 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 - name: Install zip
run: | run: |
$system32 = [System.Environment]::GetEnvironmentVariable("WINDIR") + "\System32" $system32 = [System.Environment]::GetEnvironmentVariable("WINDIR") + "\System32"
@@ -21,9 +37,13 @@ jobs:
- name: Installing Java - name: Installing Java
run: | 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 $zipPath = "${{ runner.temp }}\java_package.zip"
unzip -q ${{ runner.temp }}\java_package.zip -d ${{ runner.temp }}\jbr $extractDir = "${{ runner.temp }}\jbr"
echo "JAVA_HOME=${{ runner.temp }}\jbr\jbrsdk-21.0.7-windows-x64-b1034.51" >> $env:GITHUB_ENV $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 - uses: actions/cache@v4
with: with:
@@ -49,7 +69,7 @@ jobs:
- name: Upload artifact - name: Upload artifact
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v4
with: with:
name: termora-windows-x86-64 name: termora-windows-${{ runner.arch }}
path: | path: |
build/distributions/*.zip build/distributions/*.zip
build/distributions/*.exe build/distributions/*.exe

View File

@@ -480,10 +480,6 @@ tasks.register<Exec>("jpackage") {
} }
if (os.isWindows) { 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")) arguments.addAll(listOf("--icon", "${projectDir.absolutePath}/src/main/resources/icons/termora.ico"))
} }
@@ -496,7 +492,7 @@ tasks.register<Exec>("jpackage") {
if (os.isMacOsX) { if (os.isMacOsX) {
arguments.add("dmg") arguments.add("dmg")
} else if (os.isWindows) { } else if (os.isWindows) {
arguments.add("msi") arguments.add("app-image")
} else if (os.isLinux) { } else if (os.isLinux) {
arguments.add(if (isDeb) "deb" else "app-image") arguments.add(if (isDeb) "deb" else "app-image")
if (isDeb) { if (isDeb) {
@@ -568,7 +564,7 @@ tasks.register("check-license") {
* 创建 zip、msi * 创建 zip、msi
*/ */
fun packOnWindows(distributionDir: Directory, finalFilenameWithoutExtension: String, projectName: String) { 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 cfg = FileUtils.getFile(dir, projectName, "app", "${projectName}.cfg")
val configText = cfg.readText() val configText = cfg.readText()
@@ -593,21 +589,12 @@ fun packOnWindows(distributionDir: Directory, finalFilenameWithoutExtension: Str
"/DMyAppVersion=${appVersion}", "/DMyAppVersion=${appVersion}",
"/DMyOutputDir=${distributionDir.asFile.absolutePath}", "/DMyOutputDir=${distributionDir.asFile.absolutePath}",
"/DMySetupIconFile=${FileUtils.getFile(projectDir, "src", "main", "resources", "icons", "termora.ico")}", "/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}", "/F${finalFilenameWithoutExtension}",
FileUtils.getFile(projectDir, "src", "main", "resources", "termora.iss") FileUtils.getFile(projectDir, "src", "main", "resources", "termora.iss")
) )
} }
// msi
exec {
commandLine(
"cmd", "/c", "move",
"${projectName}-${appVersion}.msi",
"${finalFilenameWithoutExtension}.msi"
)
workingDir = distributionDir.asFile
}
} }
/** /**