WARNING: THIS SITE IS A MIRROR OF GITHUB.COM / IT CANNOT LOGIN OR REGISTER ACCOUNTS / THE CONTENTS ARE PROVIDED AS-IS / THIS SITE ASSUMES NO RESPONSIBILITY FOR ANY DISPLAYED CONTENT OR LINKS / IF YOU FOUND SOMETHING MAY NOT GOOD FOR EVERYONE, CONTACT ADMIN AT ilovescratch@foxmail.com
Skip to content

Commit 3a72119

Browse files
authored
Linux musl builds (#32)
* Linux musl builds Signed-off-by: Prabhu Subramanian <[email protected]> * Linux musl builds Signed-off-by: Prabhu Subramanian <[email protected]> * Setup upx Signed-off-by: Prabhu Subramanian <[email protected]> * Setup upx Signed-off-by: Prabhu Subramanian <[email protected]> --------- Signed-off-by: Prabhu Subramanian <[email protected]>
1 parent b2e464d commit 3a72119

File tree

22 files changed

+207
-3
lines changed

22 files changed

+207
-3
lines changed

.github/workflows/native-builds.yml

Lines changed: 39 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,20 @@ jobs:
2222
packages: write
2323
steps:
2424
- uses: actions/checkout@v4
25+
- name: setup upx
26+
run: |
27+
wget https://github.com/upx/upx/releases/download/v5.0.1/upx-5.0.1-amd64_linux.tar.xz
28+
tar -xvf upx-5.0.1-amd64_linux.tar.xz
29+
chmod +x upx-5.0.1-amd64_linux/upx
30+
sudo cp upx-5.0.1-amd64_linux/upx /usr/local/bin/
31+
if: matrix.os == 'ubuntu-24.04'
32+
- name: setup upx
33+
run: |
34+
wget https://github.com/upx/upx/releases/download/v5.0.1/upx-5.0.1-arm64_linux.tar.xz
35+
tar -xvf upx-5.0.1-arm64_linux.tar.xz
36+
chmod +x upx-5.0.1-arm64_linux/upx
37+
sudo cp upx-5.0.1-arm64_linux/upx /usr/local/bin/
38+
if: matrix.os == 'ubuntu-24.04-arm'
2539
- name: Setup swift
2640
if: matrix.os == 'ubuntu-24.04' || matrix.os == 'ubuntu-24.04-arm'
2741
run: |
@@ -43,24 +57,47 @@ jobs:
4357
- name: Build
4458
run: |
4559
bash thirdparty/sourcekitten/build.sh
60+
ls -al thirdparty/sourcekitten/SourceKitten/.build
4661
ls -l thirdparty/sourcekitten/SourceKitten/.build/release
4762
echo $GITHUB_TOKEN | oras login ghcr.io -u $GITHUB_USERNAME --password-stdin
4863
env:
4964
GITHUB_USERNAME: ${{ github.actor }}
5065
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
5166
- name: Upload linux amd64
5267
run: |
53-
cd thirdparty/sourcekitten/SourceKitten/.build/release/
68+
pushd thirdparty/trivy
69+
make build/linuxmusl_amd64
70+
sudo chown -R $USER:$USER build/
71+
upx -9 --lzma ./build/trivy-cdxgen-linuxmusl-amd64
72+
popd
73+
mkdir -p uploads
74+
cp thirdparty/trivy/build/trivy* uploads/
75+
cp thirdparty/sourcekitten/SourceKitten/.build/release/sourcekitten uploads/
76+
cp thirdparty/sourcekitten/SourceKitten/.build/release/sourcekitten.sha256 uploads/
77+
cd uploads
5478
oras push ghcr.io/cyclonedx/cdxgen-plugins-bin:linux-amd64 \
5579
--artifact-type application/vnd.oras.config.v1+json \
80+
./trivy-cdxgen-linuxmusl-amd64:application/vnd.cyclonedx.plugins.layer.v1+tar \
81+
./trivy-cdxgen-linuxmusl-amd64.sha256:application/vnd.cyclonedx.plugins.layer.v1+tar \
5682
./sourcekitten:application/vnd.cyclonedx.plugins.layer.v1+tar \
5783
./sourcekitten.sha256:application/vnd.cyclonedx.plugins.layer.v1+tar
5884
if: matrix.os == 'ubuntu-24.04'
5985
- name: Upload linux arm64
6086
run: |
61-
cd thirdparty/sourcekitten/SourceKitten/.build/release/
87+
pushd thirdparty/trivy
88+
make build/linuxmusl_arm64
89+
sudo chown -R $USER:$USER build/
90+
upx -9 --lzma ./build/trivy-cdxgen-linuxmusl-arm64
91+
popd
92+
mkdir -p uploads
93+
cp thirdparty/trivy/build/trivy* uploads/
94+
cp thirdparty/sourcekitten/SourceKitten/.build/release/sourcekitten uploads/
95+
cp thirdparty/sourcekitten/SourceKitten/.build/release/sourcekitten.sha256 uploads/
96+
cd uploads
6297
oras push ghcr.io/cyclonedx/cdxgen-plugins-bin:linux-arm64 \
6398
--artifact-type application/vnd.oras.config.v1+json \
99+
./trivy-cdxgen-linuxmusl-arm64:application/vnd.cyclonedx.plugins.layer.v1+tar \
100+
./trivy-cdxgen-linuxmusl-arm64.sha256:application/vnd.cyclonedx.plugins.layer.v1+tar \
64101
./sourcekitten:application/vnd.cyclonedx.plugins.layer.v1+tar \
65102
./sourcekitten.sha256:application/vnd.cyclonedx.plugins.layer.v1+tar
66103
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)