-
-
Notifications
You must be signed in to change notification settings - Fork 704
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'master' into d3d11-annotations
- Loading branch information
Showing
1,399 changed files
with
239,128 additions
and
101,582 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1,6 @@ | ||
*.odin linguist-language=Odin | ||
* text=auto | ||
|
||
# These files must always have *nix line-endings | ||
Makefile text eol=lf | ||
*.sh text eol=lf |
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -7,10 +7,11 @@ on: | |
|
||
jobs: | ||
build_windows: | ||
name: Windows Build | ||
if: github.repository == 'odin-lang/Odin' | ||
runs-on: windows-2022 | ||
steps: | ||
- uses: actions/checkout@v1 | ||
- uses: actions/checkout@v4 | ||
- name: build Odin | ||
shell: cmd | ||
run: | | ||
|
@@ -29,102 +30,181 @@ jobs: | |
cp LICENSE dist | ||
cp LLVM-C.dll dist | ||
cp -r shared dist | ||
cp -r base dist | ||
cp -r core dist | ||
cp -r vendor dist | ||
cp -r bin dist | ||
cp -r examples dist | ||
- name: Upload artifact | ||
uses: actions/upload-artifact@v1 | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
include-hidden-files: true | ||
name: windows_artifacts | ||
path: dist | ||
build_ubuntu: | ||
build_linux: | ||
name: Linux Build | ||
if: github.repository == 'odin-lang/Odin' | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v1 | ||
- uses: actions/checkout@v4 | ||
- uses: jirutka/setup-alpine@v1 | ||
with: | ||
branch: v3.20 | ||
- name: (Linux) Download LLVM | ||
run: sudo apt-get install llvm-11 clang-11 | ||
run: | | ||
apk add --no-cache \ | ||
musl-dev llvm18-dev clang18 git mold lz4 \ | ||
libxml2-static llvm18-static zlib-static zstd-static \ | ||
make | ||
shell: alpine.sh --root {0} | ||
- name: build odin | ||
run: make nightly | ||
# NOTE: this build does slow compile times because of musl | ||
run: ci/build_linux_static.sh | ||
shell: alpine.sh {0} | ||
- name: Odin run | ||
run: ./odin run examples/demo | ||
- name: Copy artifacts | ||
run: | | ||
mkdir dist | ||
cp odin dist | ||
cp LICENSE dist | ||
cp libLLVM* dist | ||
cp -r shared dist | ||
cp -r core dist | ||
cp -r vendor dist | ||
cp -r examples dist | ||
FILE="odin-linux-amd64-nightly+$(date -I)" | ||
mkdir $FILE | ||
cp odin $FILE | ||
cp LICENSE $FILE | ||
cp -r shared $FILE | ||
cp -r base $FILE | ||
cp -r core $FILE | ||
cp -r vendor $FILE | ||
cp -r examples $FILE | ||
# Creating a tarball so executable permissions are retained, see https://github.com/actions/upload-artifact/issues/38 | ||
tar -czvf dist.tar.gz $FILE | ||
- name: Odin run | ||
run: | | ||
FILE="odin-linux-amd64-nightly+$(date -I)" | ||
$FILE/odin run examples/demo | ||
- name: Upload artifact | ||
uses: actions/upload-artifact@v1 | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: ubuntu_artifacts | ||
path: dist | ||
name: linux_artifacts | ||
path: dist.tar.gz | ||
build_macos: | ||
name: MacOS Build | ||
if: github.repository == 'odin-lang/Odin' | ||
runs-on: macOS-latest | ||
runs-on: macos-13 | ||
steps: | ||
- uses: actions/checkout@v1 | ||
- uses: actions/checkout@v4 | ||
- name: Download LLVM and setup PATH | ||
run: | | ||
brew install llvm@13 | ||
echo "/usr/local/opt/llvm@13/bin" >> $GITHUB_PATH | ||
TMP_PATH=$(xcrun --show-sdk-path)/user/include | ||
echo "CPATH=$TMP_PATH" >> $GITHUB_ENV | ||
brew install llvm@18 dylibbundler | ||
echo "/usr/local/opt/llvm@18/bin" >> $GITHUB_PATH | ||
- name: build odin | ||
run: make nightly | ||
# These -L makes the linker prioritize system libraries over LLVM libraries, this is mainly to | ||
# not link with libunwind bundled with LLVM but link with libunwind on the system. | ||
run: CXXFLAGS="-L/usr/lib/system -L/usr/lib" make nightly | ||
- name: Bundle | ||
run: | | ||
FILE="odin-macos-amd64-nightly+$(date -I)" | ||
mkdir $FILE | ||
cp odin $FILE | ||
cp LICENSE $FILE | ||
cp -r shared $FILE | ||
cp -r base $FILE | ||
cp -r core $FILE | ||
cp -r vendor $FILE | ||
cp -r examples $FILE | ||
dylibbundler -b -x $FILE/odin -d $FILE/libs -od -p @executable_path/libs | ||
# Creating a tarball so executable permissions are retained, see https://github.com/actions/upload-artifact/issues/38 | ||
tar -czvf dist.tar.gz $FILE | ||
- name: Odin run | ||
run: ./odin run examples/demo | ||
- name: Copy artifacts | ||
run: | | ||
mkdir dist | ||
cp odin dist | ||
cp LICENSE dist | ||
cp -r shared dist | ||
cp -r core dist | ||
cp -r vendor dist | ||
cp -r examples dist | ||
FILE="odin-macos-amd64-nightly+$(date -I)" | ||
$FILE/odin run examples/demo | ||
- name: Upload artifact | ||
uses: actions/upload-artifact@v1 | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: macos_artifacts | ||
path: dist | ||
path: dist.tar.gz | ||
build_macos_arm: | ||
name: MacOS ARM Build | ||
if: github.repository == 'odin-lang/Odin' | ||
runs-on: macos-14 # ARM machine | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- name: Download LLVM and setup PATH | ||
run: | | ||
brew install llvm@18 dylibbundler | ||
echo "/opt/homebrew/opt/llvm@18/bin" >> $GITHUB_PATH | ||
- name: build odin | ||
# These -L makes the linker prioritize system libraries over LLVM libraries, this is mainly to | ||
# not link with libunwind bundled with LLVM but link with libunwind on the system. | ||
run: CXXFLAGS="-L/usr/lib/system -L/usr/lib" make nightly | ||
- name: Bundle | ||
run: | | ||
FILE="odin-macos-arm64-nightly+$(date -I)" | ||
mkdir $FILE | ||
cp odin $FILE | ||
cp LICENSE $FILE | ||
cp -r shared $FILE | ||
cp -r base $FILE | ||
cp -r core $FILE | ||
cp -r vendor $FILE | ||
cp -r examples $FILE | ||
dylibbundler -b -x $FILE/odin -d $FILE/libs -od -p @executable_path/libs | ||
# Creating a tarball so executable permissions are retained, see https://github.com/actions/upload-artifact/issues/38 | ||
tar -czvf dist.tar.gz $FILE | ||
- name: Odin run | ||
run: | | ||
FILE="odin-macos-arm64-nightly+$(date -I)" | ||
$FILE/odin run examples/demo | ||
- name: Upload artifact | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: macos_arm_artifacts | ||
path: dist.tar.gz | ||
upload_b2: | ||
runs-on: [ubuntu-latest] | ||
needs: [build_windows, build_macos, build_ubuntu] | ||
needs: [build_windows, build_macos, build_macos_arm, build_linux] | ||
steps: | ||
- uses: actions/checkout@v1 | ||
- uses: actions/setup-python@v2 | ||
- uses: actions/checkout@v4 | ||
- uses: actions/setup-python@v5 | ||
with: | ||
python-version: '3.8.x' | ||
|
||
- name: Install B2 CLI | ||
- name: Install B2 SDK | ||
shell: bash | ||
run: | | ||
python -m pip install --upgrade pip | ||
pip install --upgrade b2 | ||
pip install --upgrade b2sdk | ||
- name: Display Python version | ||
run: python -c "import sys; print(sys.version)" | ||
|
||
- name: Download Windows artifacts | ||
uses: actions/download-artifact@v1 | ||
|
||
uses: actions/[email protected] | ||
with: | ||
name: windows_artifacts | ||
path: windows_artifacts | ||
|
||
- name: Download Ubuntu artifacts | ||
uses: actions/download-artifact@v1 | ||
uses: actions/download-artifact@v4.1.7 | ||
with: | ||
name: ubuntu_artifacts | ||
name: linux_artifacts | ||
path: linux_artifacts | ||
|
||
- name: Download macOS artifacts | ||
uses: actions/download-artifact@v1 | ||
uses: actions/download-artifact@v4.1.7 | ||
with: | ||
name: macos_artifacts | ||
path: macos_artifacts | ||
|
||
- name: Download macOS arm artifacts | ||
uses: actions/[email protected] | ||
with: | ||
name: macos_arm_artifacts | ||
path: macos_arm_artifacts | ||
|
||
- name: Debug | ||
run: | | ||
tree -L 2 | ||
- name: Create archives and upload | ||
shell: bash | ||
|
@@ -134,23 +214,10 @@ jobs: | |
BUCKET: ${{ secrets.B2_BUCKET }} | ||
DAYS_TO_KEEP: ${{ secrets.B2_DAYS_TO_KEEP }} | ||
run: | | ||
echo Authorizing B2 account | ||
b2 authorize-account "$APPID" "$APPKEY" | ||
echo Uploading artifcates to B2 | ||
chmod +x ./ci/upload_create_nightly.sh | ||
./ci/upload_create_nightly.sh "$BUCKET" windows-amd64 windows_artifacts/ | ||
./ci/upload_create_nightly.sh "$BUCKET" ubuntu-amd64 ubuntu_artifacts/ | ||
./ci/upload_create_nightly.sh "$BUCKET" macos-amd64 macos_artifacts/ | ||
echo Deleting old artifacts in B2 | ||
python3 ci/delete_old_binaries.py "$BUCKET" "$DAYS_TO_KEEP" | ||
echo Creating nightly.json | ||
python3 ci/create_nightly_json.py "$BUCKET" > nightly.json | ||
echo Uploading nightly.json | ||
b2 upload-file "$BUCKET" nightly.json nightly.json | ||
echo Clear B2 account info | ||
b2 clear-account | ||
file linux_artifacts/dist.tar.gz | ||
python3 ci/nightly.py artifact windows-amd64 windows_artifacts/ | ||
python3 ci/nightly.py artifact linux-amd64 linux_artifacts/dist.tar.gz | ||
python3 ci/nightly.py artifact macos-amd64 macos_artifacts/dist.tar.gz | ||
python3 ci/nightly.py artifact macos-arm64 macos_arm_artifacts/dist.tar.gz | ||
python3 ci/nightly.py prune | ||
python3 ci/nightly.py json |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.