Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CI: osx and osx_arm64 #5

Open
wants to merge 28 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
afae6d6
Remove ros-humble packages.
oursland Sep 15, 2024
d83ebcc
Remove homebrew from $PATH.
oursland Sep 15, 2024
ce05747
Run pixi with verbosity.
oursland Sep 15, 2024
2a4135c
Use the rattler-build branch of vinca.
oursland Sep 15, 2024
056800d
Set protobuf version to match conda-forge dependencies.
oursland Oct 8, 2024
76010fc
Add build and run dependencies.
oursland Oct 8, 2024
057c804
Build with Python 3.11.*
oursland Oct 8, 2024
047acb5
Add ros-jazzy-rviz-ogre-vendor.patch.
oursland Sep 12, 2024
11889f0
Add ros-jazzy-python-qt-binding.patch
oursland Oct 8, 2024
7acc473
Add ros-jazzy-qt-gui-cpp.patch
oursland Oct 8, 2024
b171664
Add ros-jazzy-rosidl-generator-py.patch
oursland Oct 8, 2024
b82cb10
Add ros-jazzy-ament-cmake-vendor-package.patch
oursland Oct 8, 2024
cfc968a
Add ros-jazzy-gz-ogre-next-vendor.patch
oursland Oct 8, 2024
efb2e9a
Add ros-jazzy-ros-gz-image.patch
oursland Oct 8, 2024
9acb6b5
Add ros-jazzy-rosbag2-py.osx.patch
oursland Oct 8, 2024
a22c989
Add ros-jazzy-rosidl-generator-py.osx.patch.
oursland Oct 8, 2024
adbe79b
Rename ros-jazzy-rclpy.patch to ros-jazzy-rclpy.osx.patch
oursland Oct 8, 2024
eef3d3a
Build ros-jazzy-desktop, with some exceptions.
oursland Sep 14, 2024
fac10b2
Update pixi.lock
oursland Oct 8, 2024
f916d0e
testpr: use rattler-build.
oursland Sep 15, 2024
d753848
Add dependencies to de-vendor gz-* packages
traversaro Oct 9, 2024
420a27a
WIP: build gazebo without vendoring.
oursland Oct 10, 2024
9f08062
Fix setting GZ_RELAX_VERSION_MATCH.
oursland Oct 10, 2024
b9e6b4c
WIP: more de-vendoring effort.
oursland Oct 11, 2024
5fc6344
WIP: use protobuf 5.27.5
oursland Oct 11, 2024
e3a7dc5
Update .ci_support/conda_forge_pinnings.yaml to match authoritative u…
oursland Oct 11, 2024
977762e
WIP: de-vendoring nearly complete.
oursland Oct 12, 2024
23bcf6e
HACK: force de-vendoring of gz-dartsim and gz-ogre-next.
oursland Oct 13, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
464 changes: 275 additions & 189 deletions .ci_support/conda_forge_pinnings.yaml

Large diffs are not rendered by default.

15 changes: 0 additions & 15 deletions .github/testpr_environment.yml

This file was deleted.

93 changes: 39 additions & 54 deletions .github/workflows/testpr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ jobs:
matrix:
os: [ubuntu-latest, macos-latest, macos-14, windows-2019]
platform: [linux-64, linux-aarch64, osx-64, win-64, osx-arm64]
environment: [beta]
exclude:
- os: ubuntu-latest
platform: win-64
Expand Down Expand Up @@ -46,25 +47,25 @@ jobs:
- os: windows-2019
platform: osx-arm64
steps:
- uses: actions/checkout@v4
with:
persist-credentials: false # otherwise, the token used is the GITHUB_TOKEN, instead of your personal token
fetch-depth: 0 # otherwise, you will failed to push refs to dest repo

- uses: prefix-dev/[email protected]
with:
environments: ${{ matrix.environment }}
frozen: true

# Workaround for https://github.com/RoboStack/ros-humble/pull/141#issuecomment-1941919816
- name: Clean up PATH
if: contains(matrix.os, 'windows')
uses: egor-tensin/cleanup-path@v4
with:
# cygpath in C:\Program Files\Git\usr\bin is used by install micromamba
# git in C:\Program Files\Git\bin is used by pip install git+
# git in C:\Program Files\Git\bin is used by pip install git+
dirs: 'C:\Program Files\Git\usr\bin;C:\Program Files\Git\bin;C:\Program Files\Git\cmd;C:\Program Files\Git\mingw64\bin'

- uses: actions/checkout@master
- name: install micromamba
uses: mamba-org/setup-micromamba@main
with:
environment-file: .github/testpr_environment.yml
condarc: |
channels:
- robostack-staging
- conda-forge

- shell: bash -l {0}
if: matrix.platform == 'linux-aarch64'
run: |
Expand All @@ -81,17 +82,6 @@ jobs:
sudo apt-get update
sudo apt-get install -y libgl1-mesa-dev libglu1-mesa-dev libx11-dev libxi-dev libxmu-dev

- shell: bash -l {0}
run: |
conda config --show channels | grep defaults && conda config --remove channels defaults
conda info
conda config --show
micromamba install -y pip rospkg networkx "catkin_pkg>=0.4.16" "ruamel.yaml>=0.16.6" "rosdistro>=0.8.0" "empy>=3.3.4" boa
- name: install vinca
shell: bash -l {0}
run: |
# use no-deps for now, otherwise problems with ruamel.
pip install git+https://github.com/RoboStack/vinca.git --no-deps
# For some reason, the Strawberry perl's pkg-config is found
# instead of the conda's one, so let's delete the /c/Strawberry directory
- name: Debug pkg-config problem
Expand Down Expand Up @@ -121,82 +111,77 @@ jobs:
shell: bash -l {0}
if: steps.filecheck.outputs.LINUX_YAML_CHANGED == 1 && matrix.os == 'ubuntu-latest' && matrix.platform == 'linux-64'
run: |
git clean -fdx
cp vinca_linux_64.yaml vinca.yaml
vinca --platform linux-64
ls
cat recipe.yaml
mkdir -p recipes
$HOME/.pixi/bin/pixi run -e beta -v vinca --platform linux-64 -m -n
ls -la recipes
- name: Generate recipes for linux-aarch64
shell: bash -l {0}
if: steps.filecheck.outputs.LINUX_AARCH_YAML_CHANGED == 1 && matrix.os == 'ubuntu-latest' && matrix.platform == 'linux-aarch64'
run: |
git clean -fdx
cp vinca_linux_aarch64.yaml vinca.yaml
vinca --platform linux-aarch64
ls
cat recipe.yaml
mkdir -p recipes
$HOME/.pixi/bin/pixi run -e beta -v vinca --platform linux-aarch64 -m -n
ls -la recipes
- name: Generate recipes for osx-64
shell: bash -l {0}
if: steps.filecheck.outputs.OSX_YAML_CHANGED == 1 && matrix.os == 'macos-latest' && matrix.platform == 'osx-64'
run: |
git clean -fdx
cp vinca_osx.yaml vinca.yaml
vinca --platform osx-64
ls
cat recipe.yaml
mkdir -p recipes
$HOME/.pixi/bin/pixi run -e beta -v vinca --platform osx-64 -m -n
ls -la recipes
- name: Generate recipes for osx-arm64
shell: bash -l {0}
if: steps.filecheck.outputs.OSX_ARM_YAML_CHANGED == 1 && matrix.os == 'macos-14' && matrix.platform == 'osx-arm64'
run: |
git clean -fdx
cp vinca_osx_arm64.yaml vinca.yaml
vinca --platform osx-arm64
ls
cat recipe.yaml
mkdir -p recipes
$HOME/.pixi/bin/pixi run -e beta -v vinca --platform osx-arm64 -m -n
ls -la recipes
- name: Generate recipes for win-64
shell: bash -l {0}
if: steps.filecheck.outputs.WIN_YAML_CHANGED == 1 && matrix.os == 'windows-2019' && matrix.platform == 'win-64'
run: |
git clean -fdx
cp vinca_win.yaml vinca.yaml
vinca --platform win-64
ls
cat recipe.yaml
mkdir -p recipes
$HOME/.pixi/bin/pixi run -e beta -v vinca --platform win-64 -m -n
ls -la recipes cp vinca_win.yaml vinca.yaml
- name: Check if there are packages to be built
id: newrecipecheck
shell: bash -l {0}
run: |
# continue on error
set +e
grep -q "outputs: \[\]" recipe.yaml > /dev/null
test ! -d recipes
echo "::set-output name=RECIPE_CREATED::${?}"
- name: Build recipes for linux-64
shell: bash -l {0}
run: |
boa build additional_recipes/ros2-distro-mutex/ -m ./.ci_support/conda_forge_pinnings.yaml -m ./conda_build_config.yaml
boa build . -m ./.ci_support/conda_forge_pinnings.yaml -m ./conda_build_config.yaml
if: steps.newrecipecheck.outputs.RECIPE_CREATED == 1 && steps.filecheck.outputs.LINUX_YAML_CHANGED == 1 && matrix.os == 'ubuntu-latest' && matrix.platform == 'linux-64'
run: |
env -i $HOME/.pixi/bin/pixi run -e beta rattler-build build --recipe additional_recipes/ros2-distro-mutex/ -m ./conda_build_config.yaml -c robostack-jazzy -c conda-forge --skip-existing
env -i $HOME/.pixi/bin/pixi run -e beta rattler-build build --recipe-dir recipes -m ./conda_build_config.yaml -c robostack-jazzy -c conda-forge --skip-existing
- name: Build recipes for linux-aarch64
shell: bash -l {0}
if: steps.newrecipecheck.outputs.RECIPE_CREATED == 1 && steps.filecheck.outputs.LINUX_AARCH_YAML_CHANGED == 1 && matrix.os == 'ubuntu-latest' && matrix.platform == 'linux-aarch64'
run: |
boa build additional_recipes/ros2-distro-mutex/ -m ./.ci_support/conda_forge_pinnings.yaml -m ./conda_build_config.yaml --target-platform=linux-aarch64
boa build . -m ./.ci_support/conda_forge_pinnings.yaml -m ./conda_build_config.yaml --target-platform=linux-aarch64
env -i $HOME/.pixi/bin/pixi run -e beta rattler-build build --recipe additional_recipes/ros2-distro-mutex/ -m ./conda_build_config.yaml -c robostack-jazzy -c conda-forge --skip-existing
env -i $HOME/.pixi/bin/pixi run -e beta rattler-build build --recipe-dir recipes -m ./conda_build_config.yaml -c robostack-jazzy -c conda-forge --skip-existing
- name: Build recipes for osx-64
shell: bash -l {0}
if: steps.newrecipecheck.outputs.RECIPE_CREATED == 1 && steps.filecheck.outputs.OSX_YAML_CHANGED == 1 && matrix.os == 'macos-latest' && matrix.platform == 'osx-64'
run: |
boa build additional_recipes/ros2-distro-mutex/ -m ./.ci_support/conda_forge_pinnings.yaml -m ./conda_build_config.yaml
boa build . -m ./.ci_support/conda_forge_pinnings.yaml -m ./conda_build_config.yaml
env -i $HOME/.pixi/bin/pixi run -e beta rattler-build build --recipe additional_recipes/ros2-distro-mutex/ -m ./conda_build_config.yaml -c robostack-jazzy -c conda-forge --skip-existing
env -i $HOME/.pixi/bin/pixi run -e beta rattler-build build --recipe-dir recipes -m ./conda_build_config.yaml -c robostack-jazzy -c conda-forge --skip-existing
- name: Build recipes for osx-arm64
shell: bash -l {0}
if: steps.newrecipecheck.outputs.RECIPE_CREATED == 1 && steps.filecheck.outputs.OSX_ARM_YAML_CHANGED == 1 && matrix.os == 'macos-14' && matrix.platform == 'osx-arm64'
run: |
boa build additional_recipes/ros2-distro-mutex/ -m ./.ci_support/conda_forge_pinnings.yaml -m ./conda_build_config.yaml --target-platform=osx-arm64
boa build . -m ./.ci_support/conda_forge_pinnings.yaml -m ./conda_build_config.yaml
env -i $HOME/.pixi/bin/pixi run -e beta rattler-build build --recipe additional_recipes/ros2-distro-mutex/ -m ./conda_build_config.yaml -c robostack-jazzy -c conda-forge --skip-existing
env -i $HOME/.pixi/bin/pixi run -e beta rattler-build build --recipe-dir recipes -m ./conda_build_config.yaml -c robostack-jazzy -c conda-forge --skip-existing
- name: Build recipes for win-64
shell: bash -l {0}
if: steps.newrecipecheck.outputs.RECIPE_CREATED == 1 && steps.filecheck.outputs.WIN_YAML_CHANGED == 1 && matrix.os == 'windows-2019' && matrix.platform == 'win-64'
run: |
boa build additional_recipes/ros2-distro-mutex/ -m ./.ci_support/conda_forge_pinnings.yaml -m ./conda_build_config.yaml
boa build . -m ./.ci_support/conda_forge_pinnings.yaml -m ./conda_build_config.yaml
env -i $HOME/.pixi/bin/pixi run -e beta rattler-build build --recipe additional_recipes/ros2-distro-mutex/ -m ./conda_build_config.yaml -c robostack-jazzy -c conda-forge --skip-existing
env -i $HOME/.pixi/bin/pixi run -e beta rattler-build build --recipe-dir recipes -m ./conda_build_config.yaml -c robostack-jazzy -c conda-forge --skip-existing
2 changes: 1 addition & 1 deletion .scripts/build_linux.sh
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ pwd
cd ${FEEDSTOCK_ROOT}

for recipe in ${CURRENT_RECIPES[@]}; do
pixi run rattler-build build \
pixi run -v rattler-build build \
--recipe ${FEEDSTOCK_ROOT}/recipes/${recipe} \
-m ${FEEDSTOCK_ROOT}/conda_build_config.yaml \
-c robostack-jazzy -c conda-forge \
Expand Down
7 changes: 5 additions & 2 deletions .scripts/build_osx.sh
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,11 @@ export "CONDA_BLD_PATH=$HOME/conda-bld/"
curl -fsSL https://pixi.sh/install.sh | bash
export PATH="$HOME/.pixi/bin:$PATH"

# Remove homebrew from $PATH
export PATH=$(echo $PATH | tr ":" "\n" | grep -v 'homebrew' | xargs | tr ' ' ':')

for recipe in ${CURRENT_RECIPES[@]}; do
pixi run rattler-build build \
pixi run -v rattler-build build \
--recipe ${FEEDSTOCK_ROOT}/recipes/${recipe} \
-m ${FEEDSTOCK_ROOT}/conda_build_config.yaml \
-c robostack-jazzy -c conda-forge \
Expand All @@ -19,4 +22,4 @@ for recipe in ${CURRENT_RECIPES[@]}; do
# -m ${FEEDSTOCK_ROOT}/.ci_support/conda_forge_pinnings.yaml \
done

pixi run upload ${CONDA_BLD_PATH}/osx-*/*.conda --force
pixi run upload ${CONDA_BLD_PATH}/osx-*/*.conda --force
10 changes: 6 additions & 4 deletions .scripts/build_osx_arm64.sh
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,17 @@ export "CONDA_BLD_PATH=$HOME/conda-bld/"
curl -fsSL https://pixi.sh/install.sh | bash
export PATH="$HOME/.pixi/bin:$PATH"

# Remove homebrew from $PATH
export PATH=$(echo $PATH | tr ":" "\n" | grep -v 'homebrew' | xargs | tr ' ' ':')

for recipe in ${CURRENT_RECIPES[@]}; do
pixi run rattler-build build \
pixi run -v rattler-build build \
--recipe ${FEEDSTOCK_ROOT}/recipes/${recipe} \
-m ${FEEDSTOCK_ROOT}/conda_build_config.yaml \
-c robostack-jazzy -c conda-forge \
--output-dir $CONDA_BLD_PATH \
--target-platform=osx-arm64
--output-dir $CONDA_BLD_PATH

# -m ${FEEDSTOCK_ROOT}/.ci_support/conda_forge_pinnings.yaml \
done

pixi run upload ${CONDA_BLD_PATH}/osx-*/*.conda --force
pixi run upload ${CONDA_BLD_PATH}/osx-*/*.conda --force
2 changes: 1 addition & 1 deletion .scripts/build_win.bat
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ reg add HKLM\SYSTEM\CurrentControlSet\Control\FileSystem /v LongPathsEnabled /t
for %%X in (%CURRENT_RECIPES%) do (
echo "BUILDING RECIPE %%X"
cd %FEEDSTOCK_ROOT%\recipes\%%X\
pixi run rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^
pixi run -v rattler-build build --recipe %FEEDSTOCK_ROOT%\recipes\%%X\ ^
-m %FEEDSTOCK_ROOT%\conda_build_config.yaml ^
-c robostack-jazzy -c conda-forge ^
--output-dir %CONDA_BLD_PATH%
Expand Down
21 changes: 0 additions & 21 deletions additional_recipes/ros-humble-octomap/recipe.yaml

This file was deleted.

19 changes: 0 additions & 19 deletions additional_recipes/ros-humble-urdfdom-py/recipe.yaml

This file was deleted.

13 changes: 6 additions & 7 deletions additional_recipes/ros2-distro-mutex/recipe.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -25,12 +25,12 @@ requirements:
# values here should be applied from run_exports!
# if the upstream package does not have run_exports
# please change it in the conda_build_config.yaml!
run_constraints:
- libboost 1.84.*
- libboost-devel 1.84.*
- pcl 1.14.1.*
- gazebo 11.*
- libpqxx 7.*
# run_constraints:
# - libboost 1.86.*
# - libboost-devel 1.86.*
# - pcl 1.14.1.*
# - gazebo 11.*
# - libpqxx 7.*

run_exports:
weak:
Expand All @@ -46,4 +46,3 @@ about:
extra:
recipe-maintainers:
- ros-forge

14 changes: 6 additions & 8 deletions conda_build_config.yaml
Original file line number Diff line number Diff line change
@@ -1,17 +1,15 @@
gazebo:
- '11'
libpqxx:
- 7
numpy:
- 1.26
ogre:
- 14.2.*
libprotobuf:
- 4.25.3
protobuf:
- 4.25.3

cdt_name:
- ${{ "cos7" if linux }}

python:
- 3.12.* *_cpython
- 3.11.* *_cpython
python_impl:
- cpython

Expand All @@ -35,4 +33,4 @@ c_stdlib_version:
# - 11.0 # [osx and arm64]
# - 10.14 # [osx and x86_64]
# CONDA_BUILD_SYSROOT:
# - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk # [osx and arm64]
# - /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk # [osx and arm64]
Loading
Loading