name: CI on: [push, pull_request, workflow_dispatch] jobs: build_linux: name: Ubuntu Build, Check, and Test runs-on: ubuntu-latest steps: - uses: actions/checkout@v1 - name: Download LLVM run: sudo apt-get install llvm-11 clang-11 - name: build odin run: ./build_odin.sh release - name: Odin version run: ./odin version timeout-minutes: 1 - name: Odin report run: ./odin report timeout-minutes: 1 - name: Odin check run: ./odin check examples/demo -vet timeout-minutes: 10 - name: Odin run run: ./odin run examples/demo timeout-minutes: 10 - name: Odin run -debug run: ./odin run examples/demo -debug timeout-minutes: 10 - name: Odin check examples/all run: ./odin check examples/all -strict-style timeout-minutes: 10 - name: Core library tests run: | cd tests/core make timeout-minutes: 10 - name: Vendor library tests run: | cd tests/vendor make timeout-minutes: 10 - name: Odin internals tests run: | cd tests/internal make timeout-minutes: 10 - name: Odin check examples/all for Linux i386 run: ./odin check examples/all -vet -strict-style -target:linux_i386 timeout-minutes: 10 - name: Odin check examples/all for Linux arm64 run: ./odin check examples/all -vet -strict-style -target:linux_arm64 timeout-minutes: 10 - name: Odin check examples/all for FreeBSD amd64 run: ./odin check examples/all -vet -strict-style -target:freebsd_amd64 timeout-minutes: 10 - name: Odin check examples/all for OpenBSD amd64 run: ./odin check examples/all -vet -strict-style -target:openbsd_amd64 timeout-minutes: 10 build_macOS: name: MacOS Build, Check, and Test runs-on: macos-latest steps: - uses: actions/checkout@v1 - 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 - name: build odin run: ./build_odin.sh release - name: Odin version run: ./odin version timeout-minutes: 1 - name: Odin report run: ./odin report timeout-minutes: 1 - name: Odin check run: ./odin check examples/demo -vet timeout-minutes: 10 - name: Odin run run: ./odin run examples/demo timeout-minutes: 10 - name: Odin run -debug run: ./odin run examples/demo -debug timeout-minutes: 10 - name: Odin check examples/all run: ./odin check examples/all -strict-style timeout-minutes: 10 - name: Core library tests run: | cd tests/core make timeout-minutes: 10 - name: Odin internals tests run: | cd tests/internal make timeout-minutes: 10 build_macOS_arm: name: MacOS ARM Build, Check, and Test runs-on: macos-14 # This is an arm/m1 runner. steps: - uses: actions/checkout@v1 - name: Download LLVM and setup PATH run: | brew install llvm@13 echo "/opt/homebrew/opt/llvm@13/bin" >> $GITHUB_PATH TMP_PATH=$(xcrun --show-sdk-path)/user/include echo "CPATH=$TMP_PATH" >> $GITHUB_ENV - name: build odin run: ./build_odin.sh release - name: Odin version run: ./odin version timeout-minutes: 1 - name: Odin report run: ./odin report timeout-minutes: 1 - name: Odin check run: ./odin check examples/demo -vet timeout-minutes: 10 - name: Odin run run: ./odin run examples/demo timeout-minutes: 10 - name: Odin run -debug run: ./odin run examples/demo -debug timeout-minutes: 10 - name: Odin check examples/all run: ./odin check examples/all -strict-style timeout-minutes: 10 # - name: Core library tests # run: | # cd tests/core # make # timeout-minutes: 10 - name: Odin internals tests run: | cd tests/internal make timeout-minutes: 10 build_windows: name: Windows Build, Check, and Test runs-on: windows-2022 steps: - uses: actions/checkout@v1 - name: build Odin shell: cmd run: | call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat ./build.bat 1 - name: Odin version run: ./odin version timeout-minutes: 1 - name: Odin report run: ./odin report timeout-minutes: 1 - name: Odin check shell: cmd run: | call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat odin check examples/demo -vet timeout-minutes: 10 - name: Odin run shell: cmd run: | call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat odin run examples/demo timeout-minutes: 10 - name: Odin run -debug shell: cmd run: | call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat odin run examples/demo -debug timeout-minutes: 10 - name: Odin check examples/all shell: cmd run: | call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat odin check examples/all -strict-style timeout-minutes: 10 - name: Core library tests shell: cmd run: | call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat cd tests\core call build.bat timeout-minutes: 10 - name: Vendor library tests shell: cmd run: | call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat cd tests\vendor call build.bat timeout-minutes: 10 - name: Odin internals tests shell: cmd run: | call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat cd tests\internal call build.bat timeout-minutes: 10 - name: Odin documentation tests shell: cmd run: | call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat cd tests\documentation rem call build.bat timeout-minutes: 10 - name: core:math/big tests shell: cmd run: | call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat cd tests\core\math\big call build.bat timeout-minutes: 10 - name: Odin check examples/all for Windows 32bits shell: cmd run: | call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat odin check examples/all -strict-style -target:windows_i386 timeout-minutes: 10