Skip to content

Commit

Permalink
ci: Add arm64 macos jobs
Browse files Browse the repository at this point in the history
  • Loading branch information
Mizux committed Aug 27, 2024
1 parent 8f21377 commit 4a2eaf5
Show file tree
Hide file tree
Showing 7 changed files with 315 additions and 20 deletions.
54 changes: 54 additions & 0 deletions .github/workflows/arm64_macos_bazel.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
# ref: https://github.com/actions/runner-images
name: arm64 MacOS Bazel

on: [push, pull_request, workflow_dispatch]

# Building using the github runner environement directly.
jobs:
native:
strategy:
matrix:
python: [
{version: '3.9'},
{version: '3.10'},
{version: '3.11'},
{version: '3.12'},
]
fail-fast: false
name: MacOS • Bazel • Python-${{ matrix.python.version }}
runs-on: macos-latest # macos arm64 based runner
steps:
- uses: actions/checkout@v4
- name: Set Java to OpenJDK 17 (Temurin)
uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: '17'
- name: Check mvn
run: mvn --version
- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python.version }}
- name: Check Python
run: python --version
- name: Check Bazel
run: bazel version
- name: Change Python in WORKSPACE
run: >
sed
-i ''
-e 's/\(DEFAULT_PYTHON =\) "3.[0-9]*"/\1 "${{ matrix.python.version }}"/g'
WORKSPACE
- name: Build
run: >
bazel build
-c opt
--subcommands=pretty_print
//ortools/... //examples/...
- name: Test
run: >
bazel test
-c opt
--test_output=errors
//ortools/... //examples/...
47 changes: 47 additions & 0 deletions .github/workflows/arm64_macos_cmake_cpp.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# ref: https://github.com/actions/runner-images
name: arm64 MacOS CMake C++

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 }} • C++
runs-on: macos-latest # macos arm64 based runner
steps:
- uses: actions/checkout@v4
- name: Check cmake
run: cmake --version
- name: Configure
run: >
cmake -S. -Bbuild
-G "${{ matrix.cmake.generator }}"
-DCMAKE_BUILD_TYPE=${{ matrix.cmake.config }}
-DBUILD_DEPS=ON
-DCMAKE_INSTALL_PREFIX=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
58 changes: 58 additions & 0 deletions .github/workflows/arm64_macos_cmake_dotnet.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
# ref: https://github.com/actions/runner-images
name: arm64 MacOS CMake .Net

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 }} • .Net
runs-on: macos-latest # macos arm64 based runner
steps:
- uses: actions/checkout@v4
- name: Swig install
run: |
brew install swig
swig -version
- name: Setup .NET 6.0
uses: actions/setup-dotnet@v4
with:
dotnet-version: 6.0.x
- name: Check dotnet
run: dotnet --info
- name: Check cmake
run: cmake --version
- name: Configure
run: >
cmake -S. -Bbuild
-G "${{ matrix.cmake.generator }}"
-DCMAKE_BUILD_TYPE=${{ matrix.cmake.config }}
-DBUILD_CXX_SAMPLES=OFF -DBUILD_CXX_EXAMPLES=OFF
-DBUILD_DOTNET=ON
-DCMAKE_INSTALL_PREFIX=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
54 changes: 54 additions & 0 deletions .github/workflows/arm64_macos_cmake_java.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
# ref: https://github.com/actions/runner-images
name: arm64 MacOS CMake Java

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 }} • Java
runs-on: macos-latest # macos arm64 based runner
steps:
- uses: actions/checkout@v4
- name: Swig install
run: |
brew install swig
swig -version
- name: Check java
run: java -version
- name: Check cmake
run: cmake --version
- name: Configure
run: >
cmake -S. -Bbuild
-G "${{ matrix.cmake.generator }}"
-DCMAKE_BUILD_TYPE=${{ matrix.cmake.config }}
-DBUILD_CXX_SAMPLES=OFF -DBUILD_CXX_EXAMPLES=OFF
-DBUILD_JAVA=ON -DSKIP_GPG=ON
-DCMAKE_INSTALL_PREFIX=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
66 changes: 66 additions & 0 deletions .github/workflows/arm64_macos_cmake_python.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 CMake Python

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},
]
python: [
{version: "3.9"},
{version: "3.10"},
{version: "3.11"},
{version: "3.12"}
]
fail-fast: false
name: MacOS • ${{ matrix.cmake.generator }} • Python-${{ matrix.python.version }}
runs-on: macos-latest # macos arm64 based runner
steps:
- uses: actions/checkout@v4
- name: Swig install
run: |
brew install swig
swig -version
- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python.version }}
- name: Update Path
run: |
echo "$HOME/Library/Python/${{ matrix.python.version }}/bin" >> $GITHUB_PATH
echo "$HOME/.local/bin" >> $GITHUB_PATH
- name: Check cmake
run: cmake --version
- name: Configure
run: >
cmake -S. -Bbuild
-G "${{ matrix.cmake.generator }}"
-DCMAKE_BUILD_TYPE=${{ matrix.cmake.config }}
-DBUILD_CXX_SAMPLES=OFF -DBUILD_CXX_EXAMPLES=OFF
-DBUILD_PYTHON=ON
-DCMAKE_INSTALL_PREFIX=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
20 changes: 13 additions & 7 deletions bazel/README.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,20 @@
# OR-Tools Bazel Build Instructions
| OS | C++ |
|:-------- | :---: |
| Linux | [![Status][linux_svg]][linux_link] |
| MacOS | [![Status][macos_svg]][macos_link] |
| Windows | [![Status][windows_svg]][windows_link] |
| OS | C++ |
|:---- | :---: |
| amd64 Linux | [![Status][linux_svg]][linux_link] |
| arm64 MacOS | [![Status][arm64_macos_svg]][arm64_macos_link] |
| amd64 MacOS | [![Status][amd64_macos_svg]][amd64_macos_link] |
| amd64 Windows | [![Status][windows_svg]][windows_link] |

[linux_svg]: ./../../../actions/workflows/amd64_linux_bazel.yml/badge.svg?branch=main
[linux_link]: ./../../../actions/workflows/amd64_linux_bazel.yml
[macos_svg]: ./../../../actions/workflows/amd64_macos_bazel.yml/badge.svg?branch=main
[macos_link]: ./../../../actions/workflows/amd64_macos_bazel.yml

[arm64_macos_svg]: ./../../../actions/workflows/arm64_macos_bazel.yml/badge.svg?branch=main
[arm64_macos_link]: ./../../../actions/workflows/arm64_macos_bazel.yml

[amd64_macos_svg]: ./../../../actions/workflows/amd64_macos_bazel.yml/badge.svg?branch=main
[amd64_macos_link]: ./../../../actions/workflows/amd64_macos_bazel.yml

[windows_svg]: ./../../../actions/workflows/amd64_windows_bazel.yml/badge.svg?branch=main
[windows_link]: ./../../../actions/workflows/amd64_windows_bazel.yml

Expand Down
36 changes: 23 additions & 13 deletions cmake/README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
# OR-Tools CMake Build Instructions

| OS | C++ | Python | Java | .NET |
|:-------- | :---: | :------: | :----: | :----: |
| Linux | [![Status][linux_cpp_svg]][linux_cpp_link] | [![Status][linux_python_svg]][linux_python_link] | [![Status][linux_java_svg]][linux_java_link] | [![Status][linux_dotnet_svg]][linux_dotnet_link] |
| MacOS | [![Status][macos_cpp_svg]][macos_cpp_link] | [![Status][macos_python_svg]][macos_python_link] | [![Status][macos_java_svg]][macos_java_link] | [![Status][macos_dotnet_svg]][macos_dotnet_link] |
| Windows | [![Status][windows_cpp_svg]][windows_cpp_link] | [![Status][windows_python_svg]][windows_python_link] | [![Status][windows_java_svg]][windows_java_link] | [![Status][windows_dotnet_svg]][windows_dotnet_link] |
| OS | C++ | Python | Java | .NET |
|:---- | :---: | :------: | :----: | :----: |
| amd64 Linux | [![Status][linux_cpp_svg]][linux_cpp_link] | [![Status][linux_python_svg]][linux_python_link] | [![Status][linux_java_svg]][linux_java_link] | [![Status][linux_dotnet_svg]][linux_dotnet_link] |
| arm64 MacOS | [![Status][arm64_macos_cpp_svg]][arm64_macos_cpp_link] | [![Status][arm64_macos_python_svg]][arm64_macos_python_link] | [![Status][arm64_macos_java_svg]][arm64_macos_java_link] | [![Status][arm64_macos_dotnet_svg]][arm64_macos_dotnet_link] |
| amd64 MacOS | [![Status][amd64_macos_cpp_svg]][amd64_macos_cpp_link] | [![Status][amd64_macos_python_svg]][amd64_macos_python_link] | [![Status][amd64_macos_java_svg]][amd64_macos_java_link] | [![Status][amd64_macos_dotnet_svg]][amd64_macos_dotnet_link] |
| amd64 Windows | [![Status][windows_cpp_svg]][windows_cpp_link] | [![Status][windows_python_svg]][windows_python_link] | [![Status][windows_java_svg]][windows_java_link] | [![Status][windows_dotnet_svg]][windows_dotnet_link] |

[linux_cpp_svg]: ./../../../actions/workflows/amd64_linux_cmake_cpp.yml/badge.svg?branch=main
[linux_cpp_link]: ./../../../actions/workflows/amd64_linux_cmake_cpp.yml
Expand All @@ -15,14 +16,23 @@
[linux_dotnet_svg]: ./../../../actions/workflows/amd64_linux_cmake_dotnet.yml/badge.svg?branch=main
[linux_dotnet_link]: ./../../../actions/workflows/amd64_linux_cmake_dotnet.yml

[macos_cpp_svg]: ./../../../actions/workflows/amd64_macos_cmake_cpp.yml/badge.svg?branch=main
[macos_cpp_link]: ./../../../actions/workflows/amd64_macos_cmake_cpp.yml
[macos_python_svg]: ./../../../actions/workflows/amd64_macos_cmake_python.yml/badge.svg?branch=main
[macos_python_link]: ./../../../actions/workflows/amd64_macos_cmake_python.yml
[macos_java_svg]: ./../../../actions/workflows/amd64_macos_cmake_java.yml/badge.svg?branch=main
[macos_java_link]: ./../../../actions/workflows/amd64_macos_cmake_java.yml
[macos_dotnet_svg]: ./../../../actions/workflows/amd64_macos_cmake_dotnet.yml/badge.svg?branch=main
[macos_dotnet_link]: ./../../../actions/workflows/amd64_macos_cmake_dotnet.yml
[arm64_macos_cpp_svg]: ./../../../actions/workflows/arm64_macos_cmake_cpp.yml/badge.svg?branch=main
[arm64_macos_cpp_link]: ./../../../actions/workflows/arm64_macos_cmake_cpp.yml
[arm64_macos_python_svg]: ./../../../actions/workflows/arm64_macos_cmake_python.yml/badge.svg?branch=main
[arm64_macos_python_link]: ./../../../actions/workflows/arm64_macos_cmake_python.yml
[arm64_macos_java_svg]: ./../../../actions/workflows/arm64_macos_cmake_java.yml/badge.svg?branch=main
[arm64_macos_java_link]: ./../../../actions/workflows/arm64_macos_cmake_java.yml
[arm64_macos_dotnet_svg]: ./../../../actions/workflows/arm64_macos_cmake_dotnet.yml/badge.svg?branch=main
[arm64_macos_dotnet_link]: ./../../../actions/workflows/arm64_macos_cmake_dotnet.yml

[amd64_macos_cpp_svg]: ./../../../actions/workflows/amd64_macos_cmake_cpp.yml/badge.svg?branch=main
[amd64_macos_cpp_link]: ./../../../actions/workflows/amd64_macos_cmake_cpp.yml
[amd64_macos_python_svg]: ./../../../actions/workflows/amd64_macos_cmake_python.yml/badge.svg?branch=main
[amd64_macos_python_link]: ./../../../actions/workflows/amd64_macos_cmake_python.yml
[amd64_macos_java_svg]: ./../../../actions/workflows/amd64_macos_cmake_java.yml/badge.svg?branch=main
[amd64_macos_java_link]: ./../../../actions/workflows/amd64_macos_cmake_java.yml
[amd64_macos_dotnet_svg]: ./../../../actions/workflows/amd64_macos_cmake_dotnet.yml/badge.svg?branch=main
[amd64_macos_dotnet_link]: ./../../../actions/workflows/amd64_macos_cmake_dotnet.yml

[windows_cpp_svg]: ./../../../actions/workflows/amd64_windows_cmake_cpp.yml/badge.svg?branch=main
[windows_cpp_link]: ./../../../actions/workflows/amd64_windows_cmake_cpp.yml
Expand Down

0 comments on commit 4a2eaf5

Please sign in to comment.