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, 15] 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}}" < 15 ]]; 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 python3 src/tester.py ../build/c3c test_suite/ 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] 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/