diff --git a/.github/workflows/linux_clang.yml b/.github/workflows/linux_clang.yml new file mode 100644 index 0000000..edba95e --- /dev/null +++ b/.github/workflows/linux_clang.yml @@ -0,0 +1,49 @@ +name: Linux build(clang) + +on: + pull_request: + push: + paths-ignore: + - '.gitignore' + - 'LICENSE' + - 'README.md' + +jobs: + build: + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest] + arch: [x86_64] + mode: [debug, release] + + runs-on: ${{ matrix.os }} + if: "!contains(github.event.head_commit.message, 'ci skip')" + + steps: + - name: Get current date as package key + id: cache_key + run: echo "key=$(date +'%W')" >> $GITHUB_OUTPUT + + - name: Checkout repository + uses: actions/checkout@v4 + + # Install system dependencies + - name: Install Vulkan SDK + uses: humbletim/install-vulkan-sdk@v1.1.1 + with: + version: 1.3.204.1 + cache: true + + - name: Install system dependencies + run: | + sudo apt-get update + sudo apt-get -y install mesa-common-dev clang libsdl2-2.0-0 libsdl2-dev build-essential + + # Build the lib + - name: Build MacroLibX + run: make -j + + # Build the test + - name: Build Test + run: cd test && clang main.c ../libmlx.so -lSDL2 diff --git a/.github/workflows/linux_gcc.yml b/.github/workflows/linux_gcc.yml new file mode 100644 index 0000000..a509048 --- /dev/null +++ b/.github/workflows/linux_gcc.yml @@ -0,0 +1,50 @@ +name: Linux build(gcc) + +on: + pull_request: + push: + paths-ignore: + - '.gitignore' + - 'LICENSE' + - 'README.md' + +jobs: + build: + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest] + arch: [x86_64] + mode: [debug, release] + + runs-on: ${{ matrix.os }} + if: "!contains(github.event.head_commit.message, 'ci skip')" + + steps: + - name: Get current date as package key + id: cache_key + run: echo "key=$(date +'%W')" >> $GITHUB_OUTPUT + + - name: Checkout repository + uses: actions/checkout@v4 + + # Install system dependencies + - name: Install Vulkan SDK + uses: humbletim/install-vulkan-sdk@v1.1.1 + with: + version: 1.3.204.1 + cache: true + + - name: Install system dependencies + run: | + sudo apt-get update + sudo apt-get -y install mesa-common-dev libsdl2-2.0-0 libsdl2-dev build-essential + + # Build the lib + - name: Build MacroLibX + run: make -j + + # Build the test + - name: Build Test + run: cd test && clang main.c ../libmlx.so -lSDL2 + diff --git a/.github/workflows/macos_x86.yml b/.github/workflows/macos_x86.yml new file mode 100644 index 0000000..bc192a4 --- /dev/null +++ b/.github/workflows/macos_x86.yml @@ -0,0 +1,49 @@ +name: MacOS build + +on: + pull_request: + push: + paths-ignore: + - '.gitignore' + - 'LICENSE' + - 'README.md' + +jobs: + build: + strategy: + fail-fast: false + matrix: + os: [macOS-latest] + arch: [x86_64] + mode: [debug, release] + + runs-on: ${{ matrix.os }} + if: "!contains(github.event.head_commit.message, 'ci skip')" + + steps: + - name: Get current date as package key + id: cache_key + run: echo "key=$(date +'%W')" >> $GITHUB_OUTPUT + + - name: Checkout repository + uses: actions/checkout@v4 + + # Install system dependencies + - name: Install Vulkan SDK + uses: humbletim/install-vulkan-sdk@v1.1.1 + with: + version: 1.3.204.1 + cache: true + + - name: Install system dependencies + run: | + brew install SDL2 + + # Build the lib + - name: Build MacroLibX + run: make -j + + # Build the test + - name: Build Test + run: cd test && clang main.c ../libmlx.so -lSDL2 +