Skip to content

Commit

Permalink
Add CMake CI
Browse files Browse the repository at this point in the history
* Add qamd64 docker jobs
* Add amd64 native jobs
  • Loading branch information
Mizux committed Dec 6, 2024
1 parent 7788d6b commit 7693f5e
Show file tree
Hide file tree
Showing 17 changed files with 1,064 additions and 0 deletions.
21 changes: 21 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Project Files unneeded by docker
ci/cache
ci/docker
.git
.gitignore
.github
.dockerignore
.travis.yml
.clang-format
AUTHORS
INSTALL
install-sh
missing
README
README.md

build/

# Editor directories and files
*.user
*.swp
45 changes: 45 additions & 0 deletions .github/workflows/amd64_docker.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# ref: https://github.com/docker-library/official-images
name: amd64 Docker

on: [push, pull_request, workflow_dispatch]

jobs:
docker:
strategy:
matrix:
distro: [
almalinux,
alpine,
archlinux,
debian,
fedora,
opensuse,
rockylinux,
ubuntu
]
fail-fast: false
name: amd64 • ${{ matrix.distro }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Check docker
run: |
docker info
docker buildx ls
- name: Build env image
run: make --directory=ci amd64_${{ matrix.distro }}_env
- name: Build devel project
run: make --directory=ci amd64_${{ matrix.distro }}_devel
- name: Build project
run: make --directory=ci amd64_${{ matrix.distro }}_build
- name: Test project
run: make --directory=ci amd64_${{ matrix.distro }}_test

- name: Build install env image
run: make --directory=ci amd64_${{ matrix.distro }}_install_env
- name: Build install devel project
run: make --directory=ci amd64_${{ matrix.distro }}_install_devel
- name: Build install project
run: make --directory=ci amd64_${{ matrix.distro }}_install_build
- name: Test install project
run: make --directory=ci amd64_${{ matrix.distro }}_install_test
71 changes: 71 additions & 0 deletions .github/workflows/amd64_linux.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
# ref: https://github.com/actions/runner-images
name: amd64 Linux

on: [push, pull_request, workflow_dispatch]

# Building using the github runner environement directly.
jobs:
native:
strategy:
matrix:
cmake: [
{generator: "Unix Makefiles", config: "Release"},
{generator: "Ninja", config: "Release"},
{generator: "Ninja Multi-Config", config: "Release"},
]
fail-fast: false
name: Linux • ${{ matrix.cmake.generator }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install Ninja
run: |
sudo apt-get update
sudo apt-get install ninja-build
- name: Check cmake
run: cmake --version
- name: Install CoinUtils
run: >
cd /tmp
&& git clone -b stable/2.11 --depth=1 https://github.com/Mizux/CoinUtils.git
&& cd CoinUtils
&& cmake -S. -Bbuild
&& cmake --build build --config Release
&& sudo cmake --build build --config Release --target install
&& cd ..
&& rm -rf CoinUtils
- name: Install Osi
run: >
cd /tmp
&& git clone -b stable/0.108 --depth=1 https://github.com/Mizux/Osi.git
&& cd Osi
&& cmake -S. -Bbuild
&& cmake --build build --config Release
&& sudo cmake --build build --config Release --target install
&& cd ..
&& rm -rf Osi
- name: Configure
run: >
cmake -S. -Bbuild
-G "${{ matrix.cmake.generator }}"
-DCMAKE_BUILD_TYPE="$BUILD_TYPE"
-DCMAKE_INSTALL_PREFIX=build/install
- name: Build
run: >
cmake --build build
--config ${{ matrix.cmake.config }}
--target all
-v -j2
- name: Test
run: >
CTEST_OUTPUT_ON_FAILURE=1
cmake --build build
--config ${{ matrix.cmake.config }}
--target test
-v
- name: Install
run: >
cmake --build build
--config ${{ matrix.cmake.config }}
--target install
-v
66 changes: 66 additions & 0 deletions .github/workflows/amd64_macos.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
# ref: https://github.com/actions/runner-images
name: amd64 MacOS

on: [push, pull_request, workflow_dispatch]

# Building using the github runner environement directly.
jobs:
native:
strategy:
matrix:
cmake: [
{generator: "Xcode", config: Release, build_target: ALL_BUILD, test_target: RUN_TESTS, install_target: install},
{generator: "Unix Makefiles", config: Release, build_target: all, test_target: test, install_target: install},
]
fail-fast: false
name: MacOS • ${{ matrix.cmake.generator }}
runs-on: macos-13 # last macos intel based runner
steps:
- uses: actions/checkout@v4
- name: Check cmake
run: cmake --version
- name: Install CoinUtils
run: >
cd /tmp
&& git clone -b stable/2.11 --depth=1 https://github.com/Mizux/CoinUtils.git
&& cd CoinUtils
&& cmake -S. -Bbuild
&& cmake --build build --config Release
&& sudo cmake --build build --config Release --target install
&& cd ..
&& rm -rf CoinUtils
- name: Install Osi
run: >
cd /tmp
&& git clone -b stable/0.108 --depth=1 https://github.com/Mizux/Osi.git
&& cd Osi
&& cmake -S. -Bbuild
&& cmake --build build --config Release
&& sudo cmake --build build --config Release --target install
&& cd ..
&& rm -rf Osi
- name: Configure
run: >
cmake -S. -Bbuild
-G "${{ matrix.cmake.generator }}"
-DCMAKE_BUILD_TYPE=${{ matrix.cmake.config }}
-DCMAKE_INSTALL_PREFIX=build/install
- name: Build
run: >
cmake --build build
--config ${{ matrix.cmake.config }}
--target ${{ matrix.cmake.build_target }}
-v -j2
- name: Test
run: >
CTEST_OUTPUT_ON_FAILURE=1
cmake --build build
--config ${{ matrix.cmake.config }}
--target ${{ matrix.cmake.test_target }}
-v
- name: Install
run: >
cmake --build build
--config ${{ matrix.cmake.config }}
--target ${{ matrix.cmake.install_target }}
-v
68 changes: 68 additions & 0 deletions .github/workflows/amd64_windows.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
# ref: https://github.com/actions/runner-images
name: amd64 Windows

on: [push, pull_request, workflow_dispatch]

# Building using the github runner environement directly.
jobs:
native:
strategy:
matrix:
cmake: [
{generator: "Visual Studio 17 2022", config: Release, build_target: ALL_BUILD, test_target: RUN_TESTS, install_target: INSTALL},
{generator: "Visual Studio 17 2022", config: Debug, build_target: ALL_BUILD, test_target: RUN_TESTS, install_target: INSTALL},
]
fail-fast: false
name: Windows • ${{ matrix.cmake.generator }} (${{ matrix.cmake.config }})
runs-on: windows-latest
env:
CTEST_OUTPUT_ON_FAILURE: 1
steps:
- uses: actions/checkout@v4
- name: Check cmake
run: |
cmake --version
cmake -G || true
- name: Install CoinUtils
run: >
git clone -b stable/2.11 --depth=1 https://github.com/Mizux/CoinUtils.git
&& cd CoinUtils
&& cmake -S. -Bbuild
&& cmake --build build --config ${{ matrix.cmake.config }}
&& cmake --build build --config ${{ matrix.cmake.config }} --target install
&& cd ..
&& Remove-Item CoinUtils -Recurse -Include *.*
- name: Install Osi
run: >
git clone -b stable/0.108 --depth=1 https://github.com/Mizux/Osi.git
&& cd Osi
&& cmake -S. -Bbuild
&& cmake --build build --config ${{ matrix.cmake.config }}
&& cmake --build build --config ${{ matrix.cmake.config }} --target install
&& cd ..
&& Remove-Item Osi -Recurse -Include *.*
- name: Configure
run: >
cmake -S. -Bbuild
-G "${{ matrix.cmake.generator }}"
-DCMAKE_CONFIGURATION_TYPES=${{ matrix.cmake.config }}
-DBUILD_DEPS=ON
-DCMAKE_INSTALL_PREFIX=build/install
- name: Build
run: >
cmake --build build
--config ${{ matrix.cmake.config }}
--target ${{ matrix.cmake.build_target }}
-v -j2
- name: Test
run: >
cmake --build build
--config ${{ matrix.cmake.config }}
--target ${{ matrix.cmake.test_target }}
-v
- name: Install
run: >
cmake --build build
--config ${{ matrix.cmake.config }}
--target ${{ matrix.cmake.install_target }}
-v
66 changes: 66 additions & 0 deletions .github/workflows/arm64_macos.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
# ref: https://github.com/actions/runner-images
name: arm64 MacOS

on: [push, pull_request, workflow_dispatch]

# Building using the github runner environement directly.
jobs:
native:
strategy:
matrix:
cmake: [
{generator: "Xcode", config: Release, build_target: ALL_BUILD, test_target: RUN_TESTS, install_target: install},
{generator: "Unix Makefiles", config: Release, build_target: all, test_target: test, install_target: install},
]
fail-fast: false
name: MacOS • ${{ matrix.cmake.generator }}
runs-on: macos-latest # macos M1 based runner
steps:
- uses: actions/checkout@v4
- name: Check cmake
run: cmake --version
- name: Install CoinUtils
run: >
cd /tmp
&& git clone -b stable/2.11 --depth=1 https://github.com/Mizux/CoinUtils.git
&& cd CoinUtils
&& cmake -S. -Bbuild
&& cmake --build build --config Release
&& sudo cmake --build build --config Release --target install
&& cd ..
&& rm -rf CoinUtils
- name: Install Osi
run: >
cd /tmp
&& git clone -b stable/0.108 --depth=1 https://github.com/Mizux/Osi.git
&& cd Osi
&& cmake -S. -Bbuild
&& cmake --build build --config Release
&& sudo cmake --build build --config Release --target install
&& cd ..
&& rm -rf Osi
- name: Configure
run: >
cmake -S. -Bbuild
-G "${{ matrix.cmake.generator }}"
-DCMAKE_BUILD_TYPE=${{ matrix.cmake.config }}
-DCMAKE_INSTALL_PREFIX=build/install
- name: Build
run: >
cmake --build build
--config ${{ matrix.cmake.config }}
--target ${{ matrix.cmake.build_target }}
-v -j2
- name: Test
run: >
CTEST_OUTPUT_ON_FAILURE=1
cmake --build build
--config ${{ matrix.cmake.config }}
--target ${{ matrix.cmake.test_target }}
-v
- name: Install
run: >
cmake --build build
--config ${{ matrix.cmake.config }}
--target ${{ matrix.cmake.install_target }}
-v
Loading

0 comments on commit 7693f5e

Please sign in to comment.