Skip to content

Commit a04b032

Browse files
committed
Support cx-linux-arm aka running om Mac Docker
1 parent 49ea290 commit a04b032

File tree

5 files changed

+30
-6
lines changed

5 files changed

+30
-6
lines changed

.gitattributes

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
src/main/resources/cx-linux filter=lfs diff=lfs merge=lfs -text
2+
src/main/resources/cx-linux-arm filter=lfs diff=lfs merge=lfs -text
23
src/main/resources/cx.exe filter=lfs diff=lfs merge=lfs -text
34
src/main/resources/cx-mac filter=lfs diff=lfs merge=lfs -text

.github/scripts/update_cli.sh

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
release=$1
44
filename_windows=ast-cli_${release}_windows_x64.zip
55
filename_linux=ast-cli_${release}_linux_x64.tar.gz
6+
filename_linuxarm=ast-cli_${release}_linux_arm64.tar.gz
67
filename_darwin=ast-cli_${release}_darwin_x64.tar.gz
78

89
#Windows
@@ -22,6 +23,15 @@ mv ./tmp/cx ./src/main/resources/cx-linux
2223
rm -r tmp
2324
rm ${filename_linux}
2425

26+
#linuxarm
27+
echo "Updating linuxarm binary"
28+
wget https://github.com/checkmarx/ast-cli/releases/download/${release}/${filename_linuxarm}
29+
mkdir ./tmp/
30+
tar -xvzf ${filename_linuxarm} -C ./tmp/
31+
mv ./tmp/cx ./src/main/resources/cx-linux-arm
32+
rm -r tmp
33+
rm ${filename_linuxarm}
34+
2535
#darwin
2636
echo "Updating mac binary"
2737
wget https://github.com/checkmarx/ast-cli/releases/download/${release}/${filename_darwin}

.github/workflows/ci.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,11 @@ jobs:
4141
if [ ! -f "src/main/resources/cx-linux" ]; then
4242
echo "cx-linux binary does not exist"; exit 1;
4343
fi
44+
- name: Check existence of cx-linux-arm binary
45+
run: |
46+
if [ ! -f "src/main/resources/cx-linux-arm" ]; then
47+
echo "cx-linux-arm binary does not exist"; exit 1;
48+
fi
4449
- name: Check existence of cx.exe binary
4550
run: |
4651
if [ ! -f "src/main/resources/cx.exe" ]; then

.github/workflows/update-cli.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,10 +50,11 @@ jobs:
5050
if: steps.checkmarx-ast-cli.outputs.current_tag != steps.checkmarx-ast-cli.outputs.release_tag
5151
run: |
5252
git lfs track "src/main/resources/cx-linux"
53+
git lfs track "src/main/resources/cx-linux-arm"
5354
git lfs track "src/main/resources/cx.exe"
5455
git lfs track "src/main/resources/cx-mac"
5556
git add .gitattributes
56-
git add src/main/resources/cx-linux src/main/resources/cx.exe src/main/resources/cx-mac
57+
git add src/main/resources/cx-linux src/main/resources/cx-linux-arm src/main/resources/cx.exe src/main/resources/cx-mac
5758
git commit -m "Track Checkmarx CLI binaries with Git LFS"
5859
5960
- name: Create Pull Request

src/main/java/com/checkmarx/ast/wrapper/Execution.java

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ private Execution() {
2828
private static final String OS_WINDOWS = "windows";
2929
private static final List<String> OS_MAC = Arrays.asList("mac os x", "darwin", "osx");
3030
private static final String FILE_NAME_LINUX = "cx-linux";
31+
private static final String FILE_NAME_LINUX_ARM = "cx-linux-arm";
3132
private static final String FILE_NAME_MAC = "cx-mac";
3233
private static final String FILE_NAME_WINDOWS = "cx.exe";
3334
private static final String LINE_SEPARATOR = System.getProperty("line.separator");
@@ -143,15 +144,21 @@ private static Process buildProcess(List<String> commands) throws IOException {
143144
}
144145

145146
private static String detectBinaryName() {
146-
String arch = OS_NAME;
147+
String osName = OS_NAME;
148+
String osArch = System.getProperty("os.arch").toLowerCase(Locale.ENGLISH);
147149
String fileName = null;
148-
if (arch.contains(OS_LINUX)) {
149-
fileName = FILE_NAME_LINUX;
150-
} else if (arch.contains(OS_WINDOWS)) {
150+
151+
if (osName.contains(OS_LINUX)) {
152+
if (osArch.contains("arm") || osArch.contains("aarch64")) {
153+
fileName = FILE_NAME_LINUX_ARM;
154+
} else {
155+
fileName = FILE_NAME_LINUX;
156+
}
157+
} else if (osName.contains(OS_WINDOWS)) {
151158
fileName = FILE_NAME_WINDOWS;
152159
} else {
153160
for (String macStr : OS_MAC) {
154-
if (arch.contains(macStr)) {
161+
if (osName.contains(macStr)) {
155162
fileName = FILE_NAME_MAC;
156163
break;
157164
}

0 commit comments

Comments
 (0)