Skip to content

Commit 76c8c53

Browse files
authored
Add Mac action (#126)
1 parent 4ee600c commit 76c8c53

8 files changed

Lines changed: 130 additions & 12 deletions

File tree

.github/workflows/mac.yml

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
name: Mac OSX
2+
3+
on:
4+
push:
5+
branches:
6+
- master
7+
pull_request:
8+
schedule:
9+
- cron: '0 5 * * *'
10+
11+
jobs:
12+
build-macos:
13+
strategy:
14+
fail-fast: false
15+
matrix:
16+
config:
17+
- runner: macos-15-intel
18+
vcpkg_triplet: x64-osx-dynamic-release
19+
arch: x64
20+
homebrew_root: /usr/local
21+
- runner: macos-15
22+
vcpkg_triplet: arm64-osx-dynamic-release
23+
arch: arm64
24+
homebrew_root: /opt/homebrew
25+
runs-on: ${{ matrix.config.runner }}
26+
steps:
27+
- uses: actions/checkout@v6
28+
with:
29+
path: target_ws/src
30+
- uses: actions/setup-python@v6
31+
id: setup-python
32+
with:
33+
python-version: '3.12'
34+
- name: brew
35+
run: |
36+
brew install libomp cmake automake autoconf autoconf-archive libtool gcc ninja
37+
- name: vcpkg build
38+
uses: johnwason/vcpkg-action@v8
39+
with:
40+
pkgs: console-bridge eigen3 boost-graph gtest boost-preprocessor boost-format
41+
triplet: ${{ matrix.config.vcpkg_triplet }}
42+
extra-args: --clean-after-build --overlay-triplets=${{ github.workspace }}/target_ws/src/.github/workflows/vcpkg_triplets
43+
token: ${{ github.token }}
44+
cache-key: osx-${{ matrix.config.arch }}-vcpkg
45+
revision: master
46+
- name: update environment
47+
shell: bash
48+
run: |
49+
echo "DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:$GITHUB_WORKSPACE/vcpkg/installed/${{ matrix.config.vcpkg_triplet }}/lib" >> "$GITHUB_ENV"
50+
echo "CMAKE_PREFIX_PATH=$CMAKE_PREFIX_PATH:$GITHUB_WORKSPACE/vcpkg/installed/${{ matrix.config.vcpkg_triplet }}" >> "$GITHUB_ENV"
51+
- name: Build and Tests
52+
uses: tesseract-robotics/colcon-action@v14
53+
with:
54+
ccache-prefix: ci-mac-build-${{ matrix.config.name }}
55+
vcs-file: dependencies.repos
56+
rosdep-enabled: false
57+
upstream-args: >-
58+
--merge-install
59+
--cmake-args -G "Ninja" -DVCPKG_TARGET_TRIPLET=${{ matrix.config.vcpkg_triplet }} -DCMAKE_BUILD_TYPE=Release
60+
-DVCPKG_APPLOCAL_DEPS=OFF \
61+
-DCMAKE_OSX_DEPLOYMENT_TARGET=12.0 \
62+
-DOpenMP_CXX_INCLUDE_DIR=${{ matrix.config.homebrew_root }}/opt/libomp/include \
63+
-DOpenMP_C_INCLUDE_DIR=${{ matrix.config.homebrew_root }}/opt/libomp/include \
64+
-DOpenMP_CXX_LIB_NAMES=libomp -DOpenMP_CXX_FLAGS="-Xpreprocessor -fopenmp" \
65+
-DOpenMP_C_LIB_NAMES=libomp -DOpenMP_C_FLAGS="-Xpreprocessor -fopenmp" \
66+
-DOpenMP_libomp_LIBRARY=${{ matrix.config.homebrew_root }}/opt/libomp/lib/libomp.dylib
67+
target-path: target_ws/src
68+
target-args: >-
69+
--merge-install
70+
--cmake-args -G "Ninja" -DVCPKG_TARGET_TRIPLET=${{ matrix.config.vcpkg_triplet }}
71+
-DCMAKE_BUILD_TYPE=Release -DDESCARTES_ENABLE_TESTING=ON \
72+
-DVCPKG_APPLOCAL_DEPS=OFF \
73+
-DCMAKE_OSX_DEPLOYMENT_TARGET=12.0 \
74+
-DOpenMP_CXX_INCLUDE_DIR=${{ matrix.config.homebrew_root }}/opt/libomp/include \
75+
-DOpenMP_C_INCLUDE_DIR=${{ matrix.config.homebrew_root }}/opt/libomp/include \
76+
-DOpenMP_CXX_LIB_NAMES=libomp -DOpenMP_CXX_FLAGS="-Xpreprocessor -fopenmp" \
77+
-DOpenMP_C_LIB_NAMES=libomp -DOpenMP_C_FLAGS="-Xpreprocessor -fopenmp" \
78+
-DOpenMP_libomp_LIBRARY=${{ matrix.config.homebrew_root }}/opt/libomp/lib/libomp.dylib
79+
run-tests-args: --merge-install
80+
81+
- name: collect logs
82+
if: failure()
83+
uses: actions/upload-artifact@v7
84+
with:
85+
name: ci-mac-logs-${{ matrix.config.runner }}
86+
path: ./**/*.log
87+
retention-days: 7
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
set(VCPKG_TARGET_ARCHITECTURE arm64)
2+
set(VCPKG_CRT_LINKAGE dynamic)
3+
set(VCPKG_LIBRARY_LINKAGE dynamic)
4+
5+
set(VCPKG_CMAKE_SYSTEM_NAME Darwin)
6+
set(VCPKG_OSX_ARCHITECTURES arm64)
7+
8+
set(VCPKG_BUILD_TYPE release)
9+
set(VCPKG_OSX_DEPLOYMENT_TARGET 14.0)
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
set(VCPKG_TARGET_ARCHITECTURE x64)
2+
set(VCPKG_CRT_LINKAGE dynamic)
3+
set(VCPKG_LIBRARY_LINKAGE dynamic)
4+
5+
set(VCPKG_CMAKE_SYSTEM_NAME Darwin)
6+
set(VCPKG_OSX_ARCHITECTURES x86_64)
7+
8+
set(VCPKG_BUILD_TYPE release)
9+
set(VCPKG_OSX_DEPLOYMENT_TARGET 12.0)
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
set(VCPKG_TARGET_ARCHITECTURE x64)
2+
set(VCPKG_CRT_LINKAGE dynamic)
3+
set(VCPKG_LIBRARY_LINKAGE dynamic)
4+
set(VCPKG_BUILD_TYPE release)
5+
6+
set(VCPKG_PLATFORM_TOOLSET "v142")
7+
set(VCPKG_DEP_INFO_OVERRIDE_VARS "v142")
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
set(VCPKG_TARGET_ARCHITECTURE x64)
2+
set(VCPKG_CRT_LINKAGE dynamic)
3+
set(VCPKG_LIBRARY_LINKAGE dynamic)
4+
set(VCPKG_BUILD_TYPE release)
5+
6+
set(VCPKG_PLATFORM_TOOLSET "v143")
7+
set(VCPKG_DEP_INFO_OVERRIDE_VARS "v143")

.github/workflows/windows.yml

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -23,22 +23,14 @@ jobs:
2323
with:
2424
path: target_ws/src
2525

26-
- name: Setup cmake
27-
uses: jwlawson/actions-setup-cmake@v2
28-
with:
29-
cmake-version: '3.28.x'
30-
3126
- name: vcpkg build
32-
uses: johnwason/vcpkg-action@v6
27+
uses: johnwason/vcpkg-action@v8
3328
with:
34-
pkgs: console-bridge eigen3 boost-graph gtest
29+
pkgs: console-bridge eigen3 boost-graph gtest boost-preprocessor boost-format
3530
triplet: x64-windows-release
3631
extra-args: --clean-after-build
3732
token: ${{ github.token }}
3833
cache-key: ci-${{ matrix.os }}
39-
github-binarycache: true
40-
revision: 2024.01.12
41-
4234
- name: configure-msvc
4335
uses: ilammy/msvc-dev-cmd@v1
4436
with:
@@ -61,3 +53,10 @@ jobs:
6153
target-path: target_ws/src
6254
target-args: --cmake-args -G "Ninja" -DVCPKG_TARGET_TRIPLET=x64-windows-release -DCMAKE_BUILD_TYPE=Release -DDESCARTES_ENABLE_TESTING=ON
6355
run-tests: true
56+
- name: collect logs
57+
if: failure()
58+
uses: actions/upload-artifact@v7
59+
with:
60+
name: ci-win-logs-win2022
61+
path: ./**/*.log
62+
retention-days: 7

dependencies.repos

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
- git:
22
local-name: ros_industrial_cmake_boilerplate
33
uri: https://github.com/ros-industrial/ros_industrial_cmake_boilerplate.git
4-
version: 0.7.1
4+
version: 0.7.4

descartes_light/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
cmake_minimum_required(VERSION 3.5.0)
1+
cmake_minimum_required(VERSION 3.5.0...3.99)
22

33
# Extract package name and version
44
find_package(ros_industrial_cmake_boilerplate REQUIRED)

0 commit comments

Comments
 (0)