aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDanielGavin <danielgavin5@hotmail.com>2024-01-30 10:28:39 +0100
committerGitHub <noreply@github.com>2024-01-30 10:28:39 +0100
commitbf7fd9443c1d8cadbe47309a82210fbf2392f66b (patch)
treefdd8f28be44582a23a3a34a83e97b28f99ac697d
parentd93559abe647e733b0338cf0707aba09c350481a (diff)
parent676809ffbdb2896f703e7b84cc19f9fd0ef2a0e2 (diff)
Merge pull request #302 from laytan/arm64-builds
Darwin arm64 builds
-rw-r--r--.github/workflows/nightly.yml42
-rwxr-xr-xbuild.sh26
2 files changed, 62 insertions, 6 deletions
diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml
index 8c789a5..8d5a3bd 100644
--- a/.github/workflows/nightly.yml
+++ b/.github/workflows/nightly.yml
@@ -7,6 +7,36 @@ on:
#- cron: 0 20 * * *
jobs:
+ dist-arm64-darwin:
+ runs-on: macos-latest
+ timeout-minutes: 15
+ steps:
+ - uses: actions/checkout@v1
+ - name: Download LLVM and setup PATH
+ run: |
+ brew install llvm@14
+ echo "/usr/local/opt/llvm@14/bin" >> $GITHUB_PATH
+ TMP_PATH=$(xcrun --show-sdk-path)/user/include
+ echo "CPATH=$TMP_PATH" >> $GITHUB_ENV
+ - name: Download Odin
+ run: |
+ git clone https://github.com/odin-lang/Odin
+ - name: Build Odin
+ run: |
+ cd Odin
+ make release
+ - name: Build ols
+ run: ./build.sh CI_NO_TESTS -target:darwin_arm64 -extra-linker-flags:"--target=arm64-apple-macos"
+ - name: Move to Dist
+ run: |
+ mkdir dist
+ mv ols dist/ols-arm64-darwin
+ - name: Upload artifacts
+ uses: actions/upload-artifact@v2
+ with:
+ name: dist-arm64-darwin
+ path: ./dist
+
dist-x86_64-darwin:
runs-on: macos-latest
timeout-minutes: 15
@@ -98,7 +128,7 @@ jobs:
name: publish
runs-on: ubuntu-latest
timeout-minutes: 30
- needs: ['dist-x86_64-pc-windows-msvc', 'dist-x86_64-unknown-linux-gnu', 'dist-x86_64-darwin']
+ needs: ['dist-x86_64-pc-windows-msvc', 'dist-x86_64-unknown-linux-gnu', 'dist-x86_64-darwin', 'dist-arm64-darwin']
steps:
- name: Install Nodejs
uses: actions/setup-node@v1
@@ -124,14 +154,24 @@ jobs:
with:
name: dist-x86_64-darwin
path: dist
+ - uses: actions/download-artifact@v2
+ with:
+ name: dist-arm64-darwin
+ path: dist
- run: |
ls -al ./dist
cd dist
zip -r ols-x86_64-pc-windows-msvc.zip ols-x86_64-pc-windows-msvc.exe builtin
+
chmod +x ols-x86_64-unknown-linux-gnu
zip -r ols-x86_64-unknown-linux-gnu.zip ols-x86_64-unknown-linux-gnu builtin
+
chmod +x ols-x86_64-darwin
zip -r ols-x86_64-darwin.zip ols-x86_64-darwin builtin
+
+ chmod +x ols-arm64-darwin
+ zip -r ols-arm64-darwin.zip ols-arm64-darwin builtin
+
rm -rf builtin
- name: Publish Release
uses: ./.github/actions/github-release
diff --git a/build.sh b/build.sh
index 8845ed6..c5e78f5 100755
--- a/build.sh
+++ b/build.sh
@@ -3,11 +3,13 @@
if [[ $1 == "CI" ]]
then
+ shift
+
export PATH=$PATH:$PWD/Odin
#BUG in odin test, it makes the executable with the same name as a folder and gets confused.
cd tests
- odin test ../tests -collection:shared=../src -o:speed
+ odin test ../tests -collection:shared=../src -o:speed $@
if ([ $? -ne 0 ])
then
@@ -26,12 +28,22 @@ then
#exit 1
fi
fi
+if [[ $1 == "CI_NO_TESTS" ]]
+then
+ shift
+
+ export PATH=$PATH:$PWD/Odin
+fi
if [[ $1 == "single_test" ]]
then
+ shift
+
#BUG in odin test, it makes the executable with the same name as a folder and gets confused.
cd tests
- odin test ../tests -collection:shared=../src -test-name:$2
+ odin test ../tests -collection:shared=../src -test-name:$@
+
+ shift
if ([ $? -ne 0 ])
then
@@ -44,10 +56,12 @@ fi
if [[ $1 == "test" ]]
then
+ shift
+
#BUG in odin test, it makes the executable with the same name as a folder and gets confused.
cd tests
- odin test ../tests -collection:shared=../src
+ odin test ../tests -collection:shared=../src $@
if ([ $? -ne 0 ])
then
@@ -59,9 +73,11 @@ then
fi
if [[ $1 == "debug" ]]
then
- odin build src/ -collection:shared=src -out:ols -use-separate-modules -debug
+ shift
+
+ odin build src/ -collection:shared=src -out:ols -use-separate-modules -debug $@
exit 0
fi
-odin build src/ -collection:shared=src -out:ols -o:speed
+odin build src/ -collection:shared=src -out:ols -o:speed $@