|
6 | 6 | workflow_dispatch: |
7 | 7 |
|
8 | 8 | jobs: |
9 | | - build-musl: |
| 9 | + build-pure-musl: |
10 | 10 | runs-on: ubuntu-24.04-arm |
11 | 11 |
|
12 | 12 | steps: |
13 | | - # 1. 宿主外层检出代码(正常使用 Node) |
14 | 13 | - name: Checkout Code |
15 | 14 | uses: actions/checkout@v4 |
16 | 15 |
|
17 | 16 | - name: Grant execute permission for gradlew |
18 | 17 | run: chmod +x gradlew |
19 | 18 |
|
20 | | - # 2. 核心:在原生 Alpine Linux (musl) 容器内编译纯 musl 桌面包 |
21 | | - - name: Build inside Pure Alpine ARM64 Container |
| 19 | + # 纯原生 Alpine 容器编译(完全不安装 gcompat) |
| 20 | + - name: Build with Native Alpine musl JDK |
22 | 21 | run: | |
23 | 22 | docker run --rm \ |
24 | 23 | -v ${{ github.workspace }}:/work \ |
25 | 24 | -w /work \ |
26 | | - -e JAVA_HOME=/usr/lib/jvm/java-17-openjdk \ |
27 | 25 | alpine:edge sh -c " |
28 | 26 | set -e |
29 | 27 | apk update |
30 | | - apk add openjdk17-jdk git bash binutils fakeroot |
31 | | - ./gradlew :app:ide-desktop:createDistributable -Pkotlin.native.ignoreDisabledTargets=true --stacktrace |
| 28 | + # 仅安装 Alpine 纯原生编译依赖与原生 OpenJDK 21 |
| 29 | + apk add openjdk21-jdk git bash binutils fakeroot |
| 30 | +
|
| 31 | + # 强制禁止 Gradle 自动下载外部 glibc 工具链,强制使用 Alpine 原生 JDK |
| 32 | + ./gradlew :app:ide-desktop:createDistributable \ |
| 33 | + -Pkotlin.native.ignoreDisabledTargets=true \ |
| 34 | + -Porg.gradle.java.installations.auto-download=false \ |
| 35 | + -Porg.gradle.java.installations.paths=/usr/lib/jvm/java-21-openjdk \ |
| 36 | + --stacktrace |
32 | 37 | " |
33 | 38 |
|
34 | | - # 3. 将编译出的纯 musl 绿色包压缩打包 |
35 | 39 | - name: Package Tarball |
36 | 40 | run: | |
37 | 41 | cd app/ide-desktop/build/compose/binaries/main/app/ |
38 | | - tar -czvf ${{ github.workspace }}/CodeAssist-pmOS-musl-arm64.tar.gz * |
| 42 | + tar -czvf ${{ github.workspace }}/CodeAssist-pmOS-pure-musl-arm64.tar.gz * |
39 | 43 |
|
40 | | - # 4. 上传产物 |
41 | | - - name: Upload Musl Artifact |
| 44 | + - name: Upload Pure Musl Artifact |
42 | 45 | uses: actions/upload-artifact@v4 |
43 | 46 | with: |
44 | | - name: CodeAssist-pmOS-musl-arm64 |
45 | | - path: CodeAssist-pmOS-musl-arm64.tar.gz |
| 47 | + name: CodeAssist-pmOS-pure-musl-arm64 |
| 48 | + path: CodeAssist-pmOS-pure-musl-arm64.tar.gz |
0 commit comments