Skip to content

Commit 31e20eb

Browse files
committed
Linux musl builds
Signed-off-by: Prabhu Subramanian <[email protected]>
1 parent b2e464d commit 31e20eb

File tree

22 files changed

+193
-5
lines changed

22 files changed

+193
-5
lines changed

.github/workflows/native-builds.yml

Lines changed: 25 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -43,24 +43,45 @@ jobs:
4343
- name: Build
4444
run: |
4545
bash thirdparty/sourcekitten/build.sh
46+
ls -al thirdparty/sourcekitten/SourceKitten/.build
4647
ls -l thirdparty/sourcekitten/SourceKitten/.build/release
4748
echo $GITHUB_TOKEN | oras login ghcr.io -u $GITHUB_USERNAME --password-stdin
4849
env:
4950
GITHUB_USERNAME: ${{ github.actor }}
5051
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
5152
- name: Upload linux amd64
5253
run: |
53-
cd thirdparty/sourcekitten/SourceKitten/.build/release/
54-
oras push ghcr.io/cyclonedx/cdxgen-plugins-bin:linux-amd64 \
54+
pushd thirdparty/trivy
55+
make build/linuxmusl_amd64
56+
popd
57+
sudo chown -R $USER:$USER thirdparty/trivy/build/
58+
mkdir -p uploads
59+
cp thirdparty/trivy/build/trivy* uploads/
60+
cp thirdparty/sourcekitten/SourceKitten/.build/release/sourcekitten uploads/
61+
cp thirdparty/sourcekitten/SourceKitten/.build/release/sourcekitten.sha256 uploads/
62+
cd uploads
63+
oras push --verbose --disable-path-validation ghcr.io/cyclonedx/cdxgen-plugins-bin:linux-amd64 \
5564
--artifact-type application/vnd.oras.config.v1+json \
65+
./trivy-cdxgen-linuxmusl-amd64:application/vnd.cyclonedx.plugins.layer.v1+tar \
66+
./trivy-cdxgen-linuxmusl-amd64.sha256:application/vnd.cyclonedx.plugins.layer.v1+tar \
5667
./sourcekitten:application/vnd.cyclonedx.plugins.layer.v1+tar \
5768
./sourcekitten.sha256:application/vnd.cyclonedx.plugins.layer.v1+tar
5869
if: matrix.os == 'ubuntu-24.04'
5970
- name: Upload linux arm64
6071
run: |
61-
cd thirdparty/sourcekitten/SourceKitten/.build/release/
62-
oras push ghcr.io/cyclonedx/cdxgen-plugins-bin:linux-arm64 \
72+
pushd thirdparty/trivy
73+
make build/linuxmusl_arm64
74+
popd
75+
sudo chown -R $USER:$USER thirdparty/trivy/build/
76+
mkdir -p uploads
77+
cp thirdparty/trivy/build/trivy* uploads/
78+
cp thirdparty/sourcekitten/SourceKitten/.build/release/sourcekitten uploads/
79+
cp thirdparty/sourcekitten/SourceKitten/.build/release/sourcekitten.sha256 uploads/
80+
cd uploads
81+
oras push --verbose --disable-path-validation ghcr.io/cyclonedx/cdxgen-plugins-bin:linux-arm64 \
6382
--artifact-type application/vnd.oras.config.v1+json \
83+
./trivy-cdxgen-linuxmusl-arm64:application/vnd.cyclonedx.plugins.layer.v1+tar \
84+
./trivy-cdxgen-linuxmusl-arm64.sha256:application/vnd.cyclonedx.plugins.layer.v1+tar \
6485
./sourcekitten:application/vnd.cyclonedx.plugins.layer.v1+tar \
6586
./sourcekitten.sha256:application/vnd.cyclonedx.plugins.layer.v1+tar
6687
if: matrix.os == 'ubuntu-24.04-arm'

.github/workflows/release.yml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,10 @@ jobs:
2525
if: matrix.os == 'ubuntu-latest'
2626
with:
2727
swift-version: '6.0'
28+
- name: Set up QEMU
29+
uses: docker/setup-qemu-action@v3
30+
- name: Set up Docker Buildx
31+
uses: docker/setup-buildx-action@v3
2832
- uses: oras-project/setup-oras@v1
2933
- run: oras version
3034
- name: Trim CI agent
@@ -66,6 +70,20 @@ jobs:
6670
npm publish --access=public --@cyclonedx:registry='https://registry.npmjs.org'
6771
popd
6872
73+
pushd packages/linuxmusl-amd64
74+
echo "cyclonedx:registry=https://npm.pkg.github.com" > ~/.npmrc
75+
npm publish --access=public --@cyclonedx:registry='https://npm.pkg.github.com'
76+
echo "cyclonedx:registry=https://registry.npmjs.org" > ~/.npmrc
77+
npm publish --access=public --@cyclonedx:registry='https://registry.npmjs.org'
78+
popd
79+
80+
pushd packages/linuxmusl-arm64
81+
echo "cyclonedx:registry=https://npm.pkg.github.com" > ~/.npmrc
82+
npm publish --access=public --@cyclonedx:registry='https://npm.pkg.github.com'
83+
echo "cyclonedx:registry=https://registry.npmjs.org" > ~/.npmrc
84+
npm publish --access=public --@cyclonedx:registry='https://registry.npmjs.org'
85+
popd
86+
6987
pushd packages/linux-riscv64
7088
echo "cyclonedx:registry=https://npm.pkg.github.com" > ~/.npmrc
7189
npm publish --access=public --@cyclonedx:registry='https://npm.pkg.github.com'

.github/workflows/test.yml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,10 @@ jobs:
2929
if: matrix.os == 'ubuntu-latest'
3030
with:
3131
swift-version: '6.0'
32+
- name: Set up QEMU
33+
uses: docker/setup-qemu-action@v3
34+
- name: Set up Docker Buildx
35+
uses: docker/setup-buildx-action@v3
3236
- uses: oras-project/setup-oras@v1
3337
- run: oras version
3438
- name: Trim CI agent
@@ -54,6 +58,12 @@ jobs:
5458
pushd packages/linux-arm64
5559
npm publish --dry-run
5660
popd
61+
pushd packages/linuxmusl-amd64
62+
npm publish --dry-run
63+
popd
64+
pushd packages/linuxmusl-arm64
65+
npm publish --dry-run
66+
popd
5767
pushd packages/linux-riscv64
5868
npm publish --dry-run
5969
popd

build.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ done
2121
upx -9 --lzma ./plugins/trivy/trivy-cdxgen-linux-amd64
2222
./plugins/trivy/trivy-cdxgen-linux-amd64 -v
2323

24-
for flavours in windows-amd64 linux-amd64 linux-arm64 linux-riscv64 linux-arm windows-arm64 darwin-arm64 darwin-amd64 ppc64
24+
for flavours in windows-amd64 linux-amd64 linux-arm64 linuxmusl-amd64 linuxmusl-arm64 linux-riscv64 linux-arm windows-arm64 darwin-arm64 darwin-amd64 ppc64
2525
do
2626
chmod +x packages/$flavours/build-$flavours.sh
2727
pushd packages/$flavours

packages/linux-amd64/build-linux-amd64.sh

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ mkdir -p plugins/trivy plugins/osquery plugins/sourcekitten plugins/dosai
77

88
oras pull ghcr.io/cyclonedx/cdxgen-plugins-bin:linux-amd64 -o plugins/sourcekitten/
99
sha256sum plugins/sourcekitten/sourcekitten > plugins/sourcekitten/sourcekitten.sha256
10+
rm -f plugins/sourcekitten/trivy-cdxgen-*
11+
ls -l plugins/sourcekitten/
1012

1113
wget https://github.com/osquery/osquery/releases/download/5.17.0/osquery-5.17.0_1.linux_x86_64.tar.gz
1214
tar -xf osquery-5.17.0_1.linux_x86_64.tar.gz

packages/linux-amd64/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
"os": [
2929
"linux"
3030
],
31+
"libc": "glibc",
3132
"cpu": [
3233
"x64"
3334
]

packages/linux-arm/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
"os": [
2929
"linux"
3030
],
31+
"libc": "glibc",
3132
"cpu": [
3233
"arm"
3334
]

packages/linux-arm64/build-linux-arm64.sh

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ rm -rf plugins/sourcekitten
99
mkdir -p plugins/osquery plugins/dosai plugins/sourcekitten
1010

1111
oras pull ghcr.io/cyclonedx/cdxgen-plugins-bin:linux-arm64 -o plugins/sourcekitten/
12+
rm -f plugins/sourcekitten/trivy-cdxgen-*
13+
ls -l plugins/sourcekitten/
1214

1315
wget https://github.com/osquery/osquery/releases/download/5.17.0/osquery-5.17.0_1.linux_aarch64.tar.gz
1416
tar -xf osquery-5.17.0_1.linux_aarch64.tar.gz

packages/linux-arm64/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
"os": [
2929
"linux"
3030
],
31+
"libc": "glibc",
3132
"cpu": [
3233
"arm64"
3334
]
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
#!/usr/bin/env bash
2+
set -e # Exit on error
3+
4+
# Remove old plugin directories to ensure a clean build
5+
rm -rf plugins/trivy plugins/dosai
6+
mkdir -p plugins/trivy plugins/dosai
7+
8+
# Download the Dosai binary
9+
curl -L https://github.com/owasp-dep-scan/dosai/releases/latest/download/Dosai-linux-musl-x64 -o plugins/dosai/dosai
10+
chmod +x plugins/dosai/dosai
11+
sha256sum plugins/dosai/dosai > plugins/dosai/dosai.sha256
12+
13+
oras pull ghcr.io/cyclonedx/cdxgen-plugins-bin:linux-amd64 -o plugins/trivy/
14+
rm -f plugins/trivy/sourcekitten*
15+
ls -l plugins/trivy/

0 commit comments

Comments
 (0)