mirror of
https://github.com/odin-lang/Odin.git
synced 2025-12-29 01:14:40 +00:00
254 lines
8.5 KiB
YAML
254 lines
8.5 KiB
YAML
name: CI
|
|
on: [push, pull_request, workflow_dispatch]
|
|
|
|
jobs:
|
|
build_netbsd:
|
|
name: NetBSD Build, Check, and Test
|
|
runs-on: ubuntu-latest
|
|
env:
|
|
PKGSRC_BRANCH: 2024Q1
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Build, Check, and Test
|
|
timeout-minutes: 25
|
|
uses: vmactions/netbsd-vm@v1
|
|
with:
|
|
release: "10.0"
|
|
envs: PKGSRC_BRANCH
|
|
usesh: true
|
|
copyback: false
|
|
prepare: |
|
|
PKG_PATH="https://cdn.NetBSD.org/pub/pkgsrc/packages/NetBSD/$(uname -p)/$(uname -r | cut -d_ -f1)_${PKGSRC_BRANCH}/All" /usr/sbin/pkg_add pkgin
|
|
pkgin -y in gmake git bash python311
|
|
pkgin -y in libxml2 perl zstd
|
|
/usr/sbin/pkg_add https://github.com/andreas-jonsson/llvm17-netbsd-bin/releases/download/pkgsrc-current/llvm-17.0.6.tgz
|
|
/usr/sbin/pkg_add https://github.com/andreas-jonsson/llvm17-netbsd-bin/releases/download/pkgsrc-current/clang-17.0.6.tgz
|
|
ln -s /usr/pkg/bin/python3.11 /usr/bin/python3
|
|
ln -s /usr/pkg/bin/bash /bin/bash
|
|
run: |
|
|
git config --global --add safe.directory $(pwd)
|
|
gmake release
|
|
./odin version
|
|
./odin report
|
|
./odin check examples/all -vet -strict-style -target:netbsd_amd64
|
|
(cd tests/core; gmake all_bsd)
|
|
(cd tests/internal; gmake all_bsd)
|
|
(cd tests/issues; ./run.sh)
|
|
build_linux:
|
|
name: Ubuntu Build, Check, and Test
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v1
|
|
- name: Download LLVM
|
|
run: |
|
|
wget https://apt.llvm.org/llvm.sh
|
|
chmod +x llvm.sh
|
|
sudo ./llvm.sh 17
|
|
echo "/usr/lib/llvm-17/bin" >> $GITHUB_PATH
|
|
- 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-13
|
|
steps:
|
|
- uses: actions/checkout@v1
|
|
- name: Download LLVM, and setup PATH
|
|
run: |
|
|
brew install llvm@17
|
|
echo "/usr/local/opt/llvm@17/bin" >> $GITHUB_PATH
|
|
- 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@17
|
|
echo "/opt/homebrew/opt/llvm@17/bin" >> $GITHUB_PATH
|
|
- 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
|
|
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
|