name: ci
on:
push:
branches:
- master
- ci
paths-ignore:
- '**.md' pull_request:
paths-ignore:
- '**.md'
permissions:
contents: read
env:
CATAPULT_LOG: 'info'
RUST_BACKTRACE: '1'
jobs:
check-formatting:
name: Check formatting
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- run: cargo fmt --check --verbose
test:
name: Cargo Test
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- run: cargo test
ubuntu-ninja-gcc:
name: Build and Run (Ubuntu / Ninja / GCC)
runs-on: ubuntu-latest
steps:
- run: >
sudo apt-get install -y
llvm
nasm
ninja-build
- name: Checkout
uses: actions/checkout@v4
- run: cargo build
- run: ./target/debug/catapult -S test_data/test_01 -B build -G Ninja -T test_data/toolchain_gcc.toml
- run: tree build
- run: cat build/build.ninja
- run: ninja -C build -v myexe mytest
- run: tree build
- run: ./build/test_one/myexe abc def
- run: ./build/my_depend/mytest
ubuntu-ninja-clang:
name: Build and Run (Ubuntu / Ninja / Clang)
runs-on: ubuntu-latest
steps:
- run: >
sudo apt-get install -y
llvm
nasm
ninja-build
- name: Checkout
uses: actions/checkout@v4
- run: cargo build
- run: ./target/debug/catapult --source-dir test_data/test_01 --build-dir build_debug --generator Ninja --toolchain test_data/toolchain_clang.toml --profile Debug
- run: tree build_debug
- run: cat build_debug/build.ninja
- run: ninja -C build_debug -v myexe mytest
- run: tree build_debug
- run: ./build_debug/test_one/myexe abc def
- run: ./build_debug/my_depend/mytest
- run: ./target/debug/catapult --source-dir test_data/test_01 --build-dir build_release --generator Ninja --toolchain test_data/toolchain_clang.toml --profile Release
- run: tree build_release
- run: cat build_release/build.ninja
- run: ninja -C build_release -v myexe mytest
- run: tree build_release
- run: ./build_release/test_one/myexe abc def
- run: ./build_release/my_depend/mytest
ubuntu-ninja-emscripten:
name: Build and Run (Ubuntu / Ninja / Emscripten)
runs-on: ubuntu-latest
steps:
- run: >
sudo apt-get install -y
ninja-build
- name: Checkout
uses: actions/checkout@v4
- name: Install Emscripten
uses: ./.github/install-emscripten
- run: cargo build
- run: ./target/debug/catapult --source-dir test_data/test_01 --build-dir build_debug --generator Ninja --toolchain test_data/toolchain_emscripten.toml --profile Debug
- run: tree build_debug
- run: cat build_debug/build.ninja
- run: ninja -C build_debug -v myexe mytest
- run: tree build_debug
- run: node ./build_debug/test_one/myexe abc def
- run: node ./build_debug/my_depend/mytest
- run: ./target/debug/catapult --source-dir test_data/test_01 --build-dir build_release --generator Ninja --toolchain test_data/toolchain_emscripten.toml --profile Release
- run: tree build_release
- run: cat build_release/build.ninja
- run: ninja -C build_release -v myexe mytest
- run: tree build_release
- run: node ./build_release/test_one/myexe abc def
- run: node ./build_release/my_depend/mytest
windows-msvc:
name: Build and Run (Windows / MSVC)
runs-on: windows-latest
steps:
- run: >
choco install
nasm
- name: Checkout
uses: actions/checkout@v4
- run: cargo build
- run: ./target/debug/catapult --source-dir test_data/test_01 --build-dir build --generator MSVC --toolchain test_data/toolchain_msvc.toml
- run: tree /f build
- shell: cmd
run: >
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat"
&& MSBuild build/test_one.sln
- run: tree /f build
- run: ./build/x64/Debug/myexe.exe abc def
- shell: cmd
run: >
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat"
&& MSBuild build/test_one.sln -property:Configuration=MinSizeRel;Platform=x64
- run: tree /f build
- run: ./build/x64/MinSizeRel/myexe.exe abc def
- shell: cmd
run: >
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat"
&& MSBuild build/test_one.sln -property:Configuration=RelWithDebInfo;Platform=x64
- run: tree /f build
- run: ./build/x64/RelWithDebInfo/myexe.exe abc def
- shell: cmd
run: >
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat"
&& MSBuild build/test_one.sln -property:Configuration=Release;Platform=x64
- run: tree /f build
- run: ./build/x64/Release/myexe.exe abc def
windows-ninja-clang:
name: Build and Run (Windows / Ninja / Clang)
runs-on: windows-latest
steps:
- run: >
choco install
nasm
ninja
- name: Checkout
uses: actions/checkout@v4
- run: cargo build
- run: ./target/debug/catapult --source-dir test_data/test_01 --build-dir build --generator Ninja --toolchain test_data/toolchain_clang_win.toml --profile Debug
- run: tree /f build
- run: Get-Content build/build.ninja
- run: ninja -C build -v myexe mytest
- run: tree /f build
- run: ./build/test_one/myexe.exe abc def
- run: ./build/my_depend/mytest.exe