mirror of
https://github.com/c3lang/c3c.git
synced 2026-02-27 12:01:16 +00:00
204 lines
6.2 KiB
YAML
204 lines
6.2 KiB
YAML
name: CI
|
|
|
|
on:
|
|
push:
|
|
branches: [ master, dev, ci_testing ]
|
|
pull_request:
|
|
branches: [ master ]
|
|
|
|
jobs:
|
|
|
|
build-msvc:
|
|
runs-on: windows-latest
|
|
strategy:
|
|
# Don't abort runners if a single one fails
|
|
fail-fast: false
|
|
matrix:
|
|
build_type: [ Release, Debug ]
|
|
|
|
defaults:
|
|
run:
|
|
shell: cmd
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- name: CMake
|
|
run: |
|
|
cmake -B build -G "Visual Studio 17 2022" -A x64 -DCMAKE_BUILD_TYPE=${{ matrix.build_type }}
|
|
cmake --build build --config ${{ matrix.build_type }}
|
|
|
|
- name: Build testproject
|
|
run: |
|
|
cd resources/testproject
|
|
..\..\build\${{ matrix.build_type }}\c3c.exe --debug-log run hello_world_win32
|
|
|
|
- name: run compiler tests
|
|
run: |
|
|
cd test
|
|
python3.exe src/tester.py ..\build\${{ matrix.build_type }}\c3c.exe test_suite/
|
|
|
|
build-msys2-mingw:
|
|
runs-on: windows-latest
|
|
strategy:
|
|
# Don't abort runners if a single one fails
|
|
fail-fast: false
|
|
matrix:
|
|
build_type: [Release, Debug]
|
|
|
|
defaults:
|
|
run:
|
|
shell: msys2 {0}
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- uses: msys2/setup-msys2@v2
|
|
with:
|
|
msystem: MINGW64
|
|
update: true
|
|
install: git binutils mingw-w64-x86_64-ninja mingw-w64-x86_64-cmake mingw-w64-x86_64-toolchain mingw-w64-x86_64-python
|
|
- shell: msys2 {0}
|
|
run: |
|
|
pacman --noconfirm -U https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-llvm-13.0.1-2-any.pkg.tar.zst
|
|
pacman --noconfirm -U https://mirror.msys2.org/mingw/mingw64/mingw-w64-x86_64-lld-13.0.1-2-any.pkg.tar.zst
|
|
- name: CMake
|
|
run: |
|
|
cmake -B build -G Ninja -DCMAKE_BUILD_TYPE=${{ matrix.build_type }}
|
|
cmake --build build
|
|
|
|
- name: Build testproject
|
|
run: |
|
|
cd resources/testproject
|
|
../../build/c3c run --debug-log
|
|
|
|
- name: run compiler tests
|
|
run: |
|
|
cd test
|
|
python3 src/tester.py ../build/c3c.exe test_suite/
|
|
|
|
|
|
build-msys2-clang:
|
|
runs-on: windows-latest
|
|
if: ${{ false }}
|
|
strategy:
|
|
# Don't abort runners if a single one fails
|
|
fail-fast: false
|
|
matrix:
|
|
build_type: [Release, Debug]
|
|
|
|
defaults:
|
|
run:
|
|
shell: msys2 {0}
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- uses: msys2/setup-msys2@v2
|
|
with:
|
|
msystem: CLANG64
|
|
update: false
|
|
install: git binutils mingw-w64-clang-x86_64-cmake mingw-w64-clang-x86_64-toolchain mingw-w64-clang-x86_64-python
|
|
|
|
- name: CMake
|
|
run: |
|
|
cmake -B build -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=${{ matrix.build_type }}
|
|
cmake --build build
|
|
- name: Build testproject
|
|
run: |
|
|
cd resources/testproject
|
|
../../build/c3c run --debug-log
|
|
|
|
- name: run compiler tests
|
|
run: |
|
|
cd test
|
|
python3 src/tester.py ../build/c3c.exe test_suite/
|
|
|
|
build-linux:
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
# Don't abort runners if a single one fails
|
|
fail-fast: false
|
|
matrix:
|
|
build_type: [Release, Debug]
|
|
llvm_version: [12, 13, 14, 16]
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- name: Install common deps
|
|
run: |
|
|
sudo apt-get install zlib1g zlib1g-dev python3 ninja-build
|
|
|
|
- name: Install Clang ${{ matrix.llvm_version }}
|
|
run: |
|
|
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
|
|
if [[ "${{matrix.llvm_version}}" < 16 ]]; then
|
|
sudo add-apt-repository "deb http://apt.llvm.org/focal/ llvm-toolchain-focal-${{matrix.llvm_version}} main"
|
|
else
|
|
sudo add-apt-repository "deb http://apt.llvm.org/focal/ llvm-toolchain-focal main"
|
|
fi
|
|
sudo apt-get update
|
|
sudo apt-get install -y clang-${{matrix.llvm_version}} llvm-${{matrix.llvm_version}} llvm-${{matrix.llvm_version}}-dev lld-${{matrix.llvm_version}} liblld-${{matrix.llvm_version}}-dev
|
|
|
|
if [[ "${{matrix.llvm_version}}" > 12 ]]; then
|
|
sudo apt-get install -y libmlir-${{matrix.llvm_version}} libmlir-${{matrix.llvm_version}}-dev mlir-${{matrix.llvm_version}}-tools
|
|
fi
|
|
|
|
- name: CMake
|
|
run: |
|
|
cmake -B build -G Ninja -DCMAKE_C_COMPILER=clang-${{matrix.llvm_version}} -DCMAKE_CXX_COMPILER=clang++-${{matrix.llvm_version}} -DC3_LLVM_VERSION=${{matrix.llvm_version}} -DCMAKE_BUILD_TYPE=${{ matrix.build_type }}
|
|
cmake --build build
|
|
|
|
- name: Build testproject
|
|
run: |
|
|
cd resources/testproject
|
|
../../build/c3c run --debug-log
|
|
|
|
- name: Build testproject direct linker
|
|
run: |
|
|
cd resources/testproject
|
|
../../build/c3c run --debug-log --forcelinker
|
|
|
|
- name: run compiler tests
|
|
run: |
|
|
cd test
|
|
if [[ "${{matrix.llvm_version}}" < 15 ]]; then
|
|
python3 src/tester.py ../build/c3c test_suite/
|
|
else
|
|
python3 src/tester.py ../build/c3c test_suite2/
|
|
fi
|
|
|
|
build-mac:
|
|
runs-on: macos-latest
|
|
strategy:
|
|
# Don't abort runners if a single one fails
|
|
fail-fast: false
|
|
matrix:
|
|
build_type: [Release, Debug]
|
|
llvm_version: [12, 13, 14]
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- name: Download LLVM
|
|
run: |
|
|
brew install llvm@${{ matrix.llvm_version }} botan ninja
|
|
echo "/usr/local/opt/llvm@${{ matrix.llvm_version }}/bin" >> $GITHUB_PATH
|
|
TMP_PATH=$(xcrun --show-sdk-path)/user/include
|
|
echo "CPATH=$TMP_PATH" >> $GITHUB_ENV
|
|
|
|
- name: CMake
|
|
run: |
|
|
cmake -B build -G Ninja -DC3_LLVM_VERSION=${{matrix.llvm_version}} -DCMAKE_BUILD_TYPE=${{ matrix.build_type }}
|
|
cmake --build build
|
|
|
|
- name: Build testproject
|
|
run: |
|
|
cd resources/testproject
|
|
../../build/c3c run --debug-log
|
|
|
|
- name: Build testproject direct linker
|
|
run: |
|
|
cd resources/testproject
|
|
../../build/c3c run --debug-log --forcelinker
|
|
|
|
- name: run compiler tests
|
|
run: |
|
|
cd test
|
|
python3 src/tester.py ../build/c3c test_suite/
|