Skip to content

Commit b69e593

Browse files
committed
Add Apple Silicon support
1 parent ad84e12 commit b69e593

File tree

4 files changed

+42
-26
lines changed

4 files changed

+42
-26
lines changed

.github/workflows/build.yml

+19-12
Original file line numberDiff line numberDiff line change
@@ -14,18 +14,25 @@ jobs:
1414
- os: ubuntu-latest
1515
cli_assembly_id: linux-amd64
1616
cli_assembly_format: tar.gz
17+
cli_assembly_arch: x86-64-v3
1718
- os: windows-latest
1819
cli_assembly_id: windows-amd64
1920
cli_assembly_format: zip
21+
cli_assembly_arch: x86-64-v3
2022
gu_executable_ext: .cmd
21-
- os: macos-latest
23+
- os: macos-13
2224
cli_assembly_id: macos-amd64
2325
cli_assembly_format: tar.gz
26+
cli_assembly_arch: x86-64-v3
27+
- os: macos-latest
28+
cli_assembly_id: macos-aarch64
29+
cli_assembly_format: tar.gz
30+
cli_assembly_arch: armv8-a
2431
steps:
2532
- uses: ilammy/msvc-dev-cmd@v1
26-
if: ${{ matrix.os == 'windows-latest'}}
33+
if: ${{ runner.os == 'Windows'}}
2734
- run: ldd --version
28-
if: ${{ matrix.os == 'ubuntu-latest'}}
35+
if: ${{ runner.os == 'Linux'}}
2936
- uses: actions/checkout@v4
3037
- uses: actions/cache@v4
3138
with:
@@ -37,24 +44,24 @@ jobs:
3744
path: ~/.m2
3845
key: ${{ runner.os }}-m2-${{ hashFiles('pom.xml') }}
3946
restore-keys: ${{ runner.os }}-m2
40-
- uses: Project-Env/project-env-github-action@v1.4.0
47+
- uses: Project-Env/project-env-github-action@v1.5.0
4148
- uses: repolevedavaj/[email protected]
4249
with:
4350
nsis-version: 3.08
44-
if: ${{ matrix.os == 'windows-latest'}}
45-
- run: mvn -B -s etc/m2/settings.xml verify -Pnative-image -Psonar "-Dcli.assembly.id=${{ matrix.cli_assembly_id }}" "-Dcli.assembly.format=${{ matrix.cli_assembly_format }}"
46-
if: ${{ matrix.os == 'ubuntu-latest' && github.actor != 'dependabot[bot]' }}
51+
if: ${{ runner.os == 'Windows'}}
52+
- run: mvn -B -s etc/m2/settings.xml verify -Pnative-image -Psonar "-Dcli.assembly.id=${{ matrix.cli_assembly_id }}" "-Dcli.assembly.format=${{ matrix.cli_assembly_format }}" "-Dcli.binary.arch=${{ matrix.cli_assembly_arch }}"
53+
if: ${{ runner.os == 'Linux' && github.actor != 'dependabot[bot]' }}
4754
env:
4855
GITHUB_USER: ${{ github.actor }}
4956
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
5057
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
51-
- run: mvn -B -s etc/m2/settings.xml verify -Pnative-image "-Dcli.assembly.id=${{ matrix.cli_assembly_id }}" "-Dcli.assembly.format=${{ matrix.cli_assembly_format }}"
52-
if: ${{ matrix.os != 'ubuntu-latest' || github.actor == 'dependabot[bot]' }}
58+
- run: mvn -B -s etc/m2/settings.xml verify -Pnative-image "-Dcli.assembly.id=${{ matrix.cli_assembly_id }}" "-Dcli.assembly.format=${{ matrix.cli_assembly_format }}" "-Dcli.binary.arch=${{ matrix.cli_assembly_arch }}"
59+
if: ${{ runner.os != 'Linux' || github.actor == 'dependabot[bot]' }}
5360
env:
5461
GITHUB_USER: ${{ github.actor }}
5562
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
5663
- name: Sign and notarize executable
57-
if: ${{ matrix.os == 'macos-latest' && github.actor != 'dependabot[bot]' }}
64+
if: ${{ runner.os == 'macOS' && github.actor != 'dependabot[bot]' }}
5865
run: ../../../etc/github-actions/sign-and-notarize-executable.sh
5966
working-directory: code/cli/target
6067
env:
@@ -73,14 +80,14 @@ jobs:
7380
name: cli-dev-${{ matrix.cli_assembly_id }}.${{ matrix.cli_assembly_format }}
7481
path: code/cli/target/cli-dev-${{ matrix.cli_assembly_id }}.${{ matrix.cli_assembly_format }}
7582
- uses: repolevedavaj/create-cli-app-nsis-installer@main
76-
if: ${{ matrix.os == 'windows-latest'}}
83+
if: ${{ runner.os == 'Windows'}}
7784
with:
7885
package-identifier: ProjectEnv.ProjectEnvCli
7986
package-name: Project-Env Cli
8087
package-version: dev
8188
source-directory: code/cli/target/cli-dev-windows-amd64
8289
- uses: actions/upload-artifact@v4
83-
if: ${{ matrix.os == 'windows-latest' && github.actor != 'dependabot[bot]' }}
90+
if: ${{ runner.os == 'Windows' && github.actor != 'dependabot[bot]' }}
8491
with:
8592
name: cli-dev-${{ matrix.cli_assembly_id }}-setup.exe
8693
path: code/cli/target/cli-dev-${{ matrix.cli_assembly_id }}-setup.exe

.github/workflows/release.yml

+19-12
Original file line numberDiff line numberDiff line change
@@ -34,49 +34,56 @@ jobs:
3434
- os: ubuntu-latest
3535
cli_assembly_id: linux-amd64
3636
cli_assembly_format: tar.gz
37+
cli_assembly_arch: x86-64-v3
3738
- os: windows-latest
3839
cli_assembly_id: windows-amd64
3940
cli_assembly_format: zip
41+
cli_assembly_arch: x86-64-v3
4042
gu_executable_ext: .cmd
41-
- os: macos-latest
43+
- os: macos-13
4244
cli_assembly_id: macos-amd64
4345
cli_assembly_format: tar.gz
46+
cli_assembly_arch: x86-64-v3
47+
- os: macos-latest
48+
cli_assembly_id: macos-aarch64
49+
cli_assembly_format: tar.gz
50+
cli_assembly_arch: armv8-a
4451
steps:
4552
- uses: ilammy/msvc-dev-cmd@v1
46-
if: ${{ matrix.os == 'windows-latest'}}
53+
if: ${{ runner.os == 'Windows'}}
4754
- run: ldd --version
48-
if: ${{ matrix.os == 'ubuntu-latest'}}
55+
if: ${{ runner.os == 'Linux'}}
4956
- uses: actions/checkout@v4
5057
- uses: actions/cache@v4
5158
with:
5259
path: ~/.m2
5360
key: ${{ runner.os }}-m2-${{ hashFiles('pom.xml') }}
5461
restore-keys: ${{ runner.os }}-m2
55-
- uses: Project-Env/project-env-github-action@v1.4.0
62+
- uses: Project-Env/project-env-github-action@v1.5.0
5663
- uses: repolevedavaj/[email protected]
5764
with:
5865
nsis-version: 3.08
59-
if: ${{ matrix.os == 'windows-latest'}}
60-
- run: mvn -B -s etc/m2/settings.xml deploy -Pnative-image "-Drevision=${{ needs.create-release.outputs.revision }}" "-Dcli.assembly.id=${{ matrix.cli_assembly_id }}" "-Dcli.assembly.format=${{ matrix.cli_assembly_format }}"
61-
if: ${{ matrix.os == 'ubuntu-latest' }}
66+
if: ${{ runner.os == 'Windows'}}
67+
- run: mvn -B -s etc/m2/settings.xml deploy -Pnative-image "-Drevision=${{ needs.create-release.outputs.revision }}" "-Dcli.assembly.id=${{ matrix.cli_assembly_id }}" "-Dcli.assembly.format=${{ matrix.cli_assembly_format }}" "-Dcli.binary.arch=${{ matrix.cli_assembly_arch }}"
68+
if: ${{ runner.os == 'Linux' }}
6269
env:
6370
GITHUB_USER: ${{ github.actor }}
6471
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
6572
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
66-
- run: mvn -B -s etc/m2/settings.xml verify -Pnative-image "-Drevision=${{ needs.create-release.outputs.revision }}" "-Dcli.assembly.id=${{ matrix.cli_assembly_id }}" "-Dcli.assembly.format=${{ matrix.cli_assembly_format }}"
67-
if: ${{ matrix.os != 'ubuntu-latest' }}
73+
- run: mvn -B -s etc/m2/settings.xml verify -Pnative-image "-Drevision=${{ needs.create-release.outputs.revision }}" "-Dcli.assembly.id=${{ matrix.cli_assembly_id }}" "-Dcli.assembly.format=${{ matrix.cli_assembly_format }}" "-Dcli.binary.arch=${{ matrix.cli_assembly_arch }}"
74+
if: ${{ runner.os != 'Linux' }}
6875
env:
6976
GITHUB_USER: ${{ github.actor }}
7077
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
7178
- uses: repolevedavaj/create-cli-app-nsis-installer@main
72-
if: ${{ matrix.os == 'windows-latest'}}
79+
if: ${{ runner.os == 'Windows'}}
7380
with:
7481
package-identifier: ProjectEnv.ProjectEnvCli
7582
package-name: Project-Env Cli
7683
package-version: ${{ needs.create-release.outputs.revision }}
7784
source-directory: code/cli/target/cli-${{ needs.create-release.outputs.revision }}-${{ matrix.cli_assembly_id }}
7885
- name: Sign and notarize executable
79-
if: ${{ matrix.os == 'macos-latest'}}
86+
if: ${{ runner.os == 'macOS'}}
8087
run: ../../../etc/github-actions/sign-and-notarize-executable.sh
8188
working-directory: code/cli/target
8289
env:
@@ -98,7 +105,7 @@ jobs:
98105
asset_name: cli-${{ needs.create-release.outputs.revision }}-${{ matrix.cli_assembly_id }}.${{ matrix.cli_assembly_format }}
99106
asset_content_type: application/octet-stream
100107
- uses: actions/upload-release-asset@v1
101-
if: ${{ matrix.os == 'windows-latest'}}
108+
if: ${{ runner.os == 'Windows'}}
102109
env:
103110
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
104111
with:

code/cli/pom.xml

+3-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@
1212
<artifactId>cli</artifactId>
1313

1414
<properties>
15-
<cli.binary>project-env-cli</cli.binary>
15+
<cli.binary.name>project-env-cli</cli.binary.name>
16+
<cli.binary.arch>x86-64-v3</cli.binary.arch>
1617
<cli.assembly.id>binary</cli.assembly.id>
1718
<cli.assembly.format>tar.gz</cli.assembly.format>
1819
</properties>
@@ -159,6 +160,7 @@
159160
<buildArg>--enable-url-protocols=https</buildArg>
160161
<buildArg>--no-fallback</buildArg>
161162
<buildArg>--features=io.projectenv.core.cli.nativeimage.ProjectEnvFeature</buildArg>
163+
<buildArg>-march=${cli.binary.arch}</buildArg>
162164
</buildArgs>
163165
<mainClass>io.projectenv.core.cli.ProjectEnvCli</mainClass>
164166
<imageName>${cli.binary}</imageName>

code/cli/src/assembly/assembly.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
<directory>${project.build.directory}</directory>
1717
<outputDirectory>.</outputDirectory>
1818
<includes>
19-
<include>${cli.binary}*</include>
19+
<include>${cli.binary.name}*</include>
2020
<include>*.dll</include>
2121
</includes>
2222
<excludes>

0 commit comments

Comments
 (0)