Skip to content

Commit 1b55f59

Browse files
Add musl build action
1 parent 9ef71de commit 1b55f59

File tree

2 files changed

+64
-0
lines changed

2 files changed

+64
-0
lines changed

.github/workflows/build.yml

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,37 @@ jobs:
4141
- name: Run Gradle Build
4242
run: ./gradlew build -Ptarget=${{ matrix.target }}
4343

44+
linux-musl:
45+
strategy:
46+
matrix:
47+
include:
48+
- target: x86_64-unknown-linux-musl
49+
deps: |
50+
apk add musl openjdk17
51+
- target: aarch64-unknown-linux-musl
52+
deps: |
53+
apk add musl openjdk17 aarch64-linux-musl-gcc aarch64-linux-musl-binutils
54+
55+
name: Build ${{ matrix.target }}
56+
runs-on: ubuntu-latest
57+
container:
58+
image: alpine:3.20
59+
steps:
60+
- name: Checkout sources
61+
uses: taiki-e/checkout-action@v1
62+
- name: Install Essentials
63+
run: apk add build-base
64+
- name: Install Rust toolchain
65+
uses: dtolnay/rust-toolchain@stable
66+
with:
67+
toolchain: stable
68+
target: x86_64-unknown-linux-musl ${{ matrix.target }} # requires native target installed to build proc-macros2
69+
- name: Install linker dependencies
70+
run: ${{ matrix.deps }}
71+
if: ${{ matrix.deps != '' }}
72+
- name: Run Gradle Build
73+
run: ./gradlew build -Ptarget=${{ matrix.target }}
74+
4475
windows:
4576
strategy:
4677
matrix:

.github/workflows/publish.yml

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,38 @@ jobs:
5050
JRELEASER_GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
5151
run: ./gradlew native:publish native:jreleaserRelease -Ptarget=${{ matrix.target }}
5252

53+
linux-musl:
54+
strategy:
55+
matrix:
56+
include:
57+
- target: x86_64-unknown-linux-musl
58+
deps: |
59+
apk add musl openjdk17
60+
- target: aarch64-unknown-linux-musl
61+
deps: |
62+
apk add musl openjdk17 aarch64-linux-musl-gcc aarch64-linux-musl-binutils
63+
64+
name: Publish ${{ matrix.target }}
65+
environment: MavenRelease
66+
runs-on: ubuntu-latest
67+
container:
68+
image: alpine:3.20
69+
steps:
70+
- name: Checkout sources
71+
uses: taiki-e/checkout-action@v1
72+
- name: Install Essentials
73+
run: apk add build-base
74+
- name: Install Rust toolchain
75+
uses: dtolnay/rust-toolchain@stable
76+
with:
77+
toolchain: stable
78+
target: x86_64-unknown-linux-musl ${{ matrix.target }} # requires native target installed to build proc-macros2
79+
- name: Install linker dependencies
80+
run: ${{ matrix.deps }}
81+
if: ${{ matrix.deps != '' }}
82+
- name: Run Gradle Build
83+
run: ./gradlew native:publish native:jreleaserRelease -Ptarget=${{ matrix.target }}
84+
5385
windows:
5486
strategy:
5587
matrix:
@@ -85,6 +117,7 @@ jobs:
85117

86118
macos:
87119
name: Build macOS universal binary
120+
environment: MavenRelease
88121
runs-on: macos-14
89122
steps:
90123
- name: Checkout sources

0 commit comments

Comments
 (0)