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

[POC] Github Actions support for OSX platform #17054

Draft
wants to merge 121 commits into
base: develop2
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
121 commits
Select commit Hold shift + click to select a range
cf88f0d
Initial OSX draft for CI
uilianries Sep 24, 2024
ffe856c
Update tools paths for osx
uilianries Sep 24, 2024
99a470a
Remove performance tests
perseoGI Sep 26, 2024
5e67b70
Install bazel
uilianries Oct 8, 2024
0c2bdf6
Install make and libtool
uilianries Oct 8, 2024
8c3fa75
Install extra packages using homebrew
uilianries Oct 8, 2024
22f4328
Fix Android SDK path
uilianries Oct 8, 2024
9ffc3b3
Try to configure xcode
uilianries Oct 8, 2024
634e859
debug: show xcrun compiler
uilianries Oct 8, 2024
2067aac
Use brute force to configure clang
uilianries Oct 8, 2024
5179087
Skip test_editable_cmake_osx for now
uilianries Oct 8, 2024
1555741
rosetta already installed
czoido Oct 9, 2024
8b696d0
adjustments
czoido Oct 9, 2024
58bacb0
wip
czoido Oct 9, 2024
2bdc5d8
wip
czoido Oct 9, 2024
dae1ca4
one python
czoido Oct 9, 2024
aa711dc
use macos-14
czoido Oct 9, 2024
a2a7bd6
wip
czoido Oct 9, 2024
699472e
wip
czoido Oct 9, 2024
a1a8d71
update default profile
czoido Oct 9, 2024
90cb422
cache installations
czoido Oct 9, 2024
7f8f46c
dont run in parallel
czoido Oct 9, 2024
ce66ecd
wip
czoido Oct 9, 2024
6367438
remove cache
czoido Oct 9, 2024
3bc955e
wip
czoido Oct 10, 2024
cae43b5
change cmake default, output debug data
czoido Oct 10, 2024
49970d2
wip
czoido Oct 10, 2024
c521dd4
get android ndk from env
czoido Oct 10, 2024
958740b
wip
czoido Oct 10, 2024
a915b99
wip
czoido Oct 10, 2024
dc69f4c
wip
czoido Oct 10, 2024
3c067c3
explicit xcode
czoido Oct 10, 2024
5fc134b
wip
czoido Oct 10, 2024
dba6dea
wip
czoido Oct 10, 2024
4afeabe
check bazel
czoido Oct 10, 2024
78caceb
fix bazel
czoido Oct 10, 2024
fa6428d
wip
czoido Oct 10, 2024
b4debe4
add cmake 3.15 to path
czoido Oct 10, 2024
2a14e84
check cmake
czoido Oct 10, 2024
899e45a
wip
czoido Oct 10, 2024
e9a1f87
wip
czoido Oct 10, 2024
38e212a
wip
czoido Oct 10, 2024
af774b2
update sdk version
czoido Oct 10, 2024
d58f242
fix test
czoido Oct 10, 2024
d6dff48
run apple tests
czoido Oct 10, 2024
8f2df0c
run cmake tests
czoido Oct 10, 2024
3988a15
build cmake from sources
czoido Oct 10, 2024
78df1ab
dont reinstall things with brew
czoido Oct 10, 2024
06c7985
wip
czoido Oct 10, 2024
7807d01
cache cmake
czoido Oct 10, 2024
ee3c44b
minor changes
czoido Oct 10, 2024
fce7ea5
wip
czoido Oct 10, 2024
263329c
wip
czoido Oct 10, 2024
0f037c5
wip
czoido Oct 10, 2024
8b79f27
wip
czoido Oct 10, 2024
4b2c529
wip
czoido Oct 10, 2024
b36d741
wip
czoido Oct 10, 2024
d4e1a1b
bump to cmake 3.23 some tests
czoido Oct 10, 2024
e5c4bcd
wip
czoido Oct 10, 2024
37e9960
wip
czoido Oct 10, 2024
e278b40
wip
czoido Oct 10, 2024
a427aa7
wip
czoido Oct 10, 2024
7d1b2db
no spaces
czoido Oct 10, 2024
32e2406
wip
czoido Oct 10, 2024
504c654
wip
czoido Oct 10, 2024
6237280
wip
czoido Oct 10, 2024
ba7936a
wip
czoido Oct 10, 2024
8ef7aef
wip
czoido Oct 10, 2024
d492ea5
revert
czoido Oct 10, 2024
f444ea5
bump
czoido Oct 10, 2024
1bc4952
wip
czoido Oct 10, 2024
c15abaa
wip
czoido Oct 10, 2024
7b19513
wip
czoido Oct 10, 2024
c6e2bd0
wip
czoido Oct 10, 2024
aa70cf7
wip
czoido Oct 10, 2024
b736192
output
czoido Oct 10, 2024
30fc36f
wip
czoido Oct 10, 2024
65781eb
wip
czoido Oct 10, 2024
7789d22
add CMAKE_XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY
czoido Oct 10, 2024
e0d55c2
wip
czoido Oct 10, 2024
c51d111
wip
czoido Oct 10, 2024
be1f765
wip
czoido Oct 10, 2024
731e376
update cmake 3.23 version
czoido Oct 10, 2024
53b4433
fix test
czoido Oct 10, 2024
76c5b9d
wip
czoido Oct 10, 2024
367e84c
all tests
czoido Oct 10, 2024
3d70168
some cleaning
czoido Oct 10, 2024
b3e8e3c
some fixes
czoido Oct 10, 2024
6891040
dont need cmake for this
czoido Oct 10, 2024
83c289a
minor changes
czoido Oct 10, 2024
23d39aa
better workflow
czoido Oct 10, 2024
c16b437
fix tests
czoido Oct 10, 2024
8910996
more fixes
czoido Oct 10, 2024
99a7f9c
update catalyst test
czoido Oct 10, 2024
951bec5
check test
czoido Oct 10, 2024
05681ed
run all
czoido Oct 10, 2024
4cfbacf
Merge branch 'develop2' of github.com:conan-io/conan into ci/gh-actio…
czoido Oct 10, 2024
e377f7b
fix tests
czoido Oct 10, 2024
f0d3ac7
xfail test
czoido Oct 11, 2024
b127412
add id
czoido Oct 11, 2024
9b8f247
fix cache?
czoido Oct 11, 2024
bbc62b7
test cache
czoido Oct 11, 2024
739a347
testing cache
czoido Oct 11, 2024
4057814
use ~
czoido Oct 11, 2024
9a0febe
more things in cache
czoido Oct 11, 2024
e939f8a
wip
czoido Oct 11, 2024
893068e
test paralell run
czoido Oct 11, 2024
36f50a4
remove -v
czoido Oct 11, 2024
5e0fdae
more caching
czoido Oct 11, 2024
5be2b5b
remove jenkins
czoido Oct 11, 2024
0943c22
use macos 13
czoido Oct 11, 2024
c5b9cac
revert changes
czoido Oct 11, 2024
33adc50
Merge branch 'develop2' into ci/gh-action-osx
czoido Oct 25, 2024
1cd4dca
use -n auto
czoido Oct 25, 2024
8b1ed16
Merge branch 'develop2' into ci/gh-action-osx
czoido Oct 28, 2024
6ee9006
Update .github/workflows/osx-tests.yml
czoido Oct 28, 2024
500f25b
Update .github/workflows/osx-tests.yml
czoido Oct 28, 2024
7619880
Update .github/workflows/osx-tests.yml
czoido Oct 29, 2024
138fb5b
Merge branch 'develop2' into ci/gh-action-osx
czoido Oct 29, 2024
e171227
Merge branch 'develop2' into ci/gh-action-osx
czoido Oct 29, 2024
9737d74
Merge branch 'develop2' of github.com:conan-io/conan into ci/gh-actio…
czoido Nov 26, 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
Empty file removed .ci/__init__.py
Empty file.
184 changes: 0 additions & 184 deletions .ci/jenkins/testsv2.jenkins

This file was deleted.

140 changes: 140 additions & 0 deletions .github/workflows/osx-tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,140 @@
name: OSX Tests

on:
push:
branches:
- develop2
- release/*
pull_request:
branches:
- '*'

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

jobs:
testing:
strategy:
fail-fast: true
matrix:
python-version: ['3.8', '3.12', '3.13']
test-type: [unittests, integration, functional]

runs-on: macos-14

name: Conan (${{ matrix.test-type }}) (${{ matrix.python-version }})

steps:

- name: Checkout code
uses: actions/checkout@v4

- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}

- name: Cache pip packages
id: cache-pip
uses: actions/cache@v4
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('conans/requirements*.txt') }}

- name: Install Python requirements
run: |
pip install --upgrade pip
pip install -r conans/requirements.txt
pip install -r conans/requirements_server.txt
pip install -r conans/requirements_dev.txt
pip install meson

- name: Uninstall default CMake
run: brew uninstall cmake || true

- name: Cache Homebrew packages
id: cache-brew
uses: actions/cache@v4
with:
path: ~/Library/Caches/Homebrew
key: ${{ runner.os }}-brew

- name: Install homebrew dependencies
if: matrix.test-type == 'functional'
run: |
brew install xcodegen make libtool zlib autoconf automake ninja

- name: Cache CMake and Bazel installations
if: matrix.test-type == 'functional'
id: cache-tools
uses: actions/cache@v4
with:
path: |
~/Applications/CMake/3.15.7
~/Applications/CMake/3.19.7
~/Applications/CMake/3.23.5
~/Applications/bazel/6.3.2
~/Applications/bazel/7.1.2
key: ${{ runner.os }}-conan-tools-cache

- name: Build CMake old versions not available for ARM
if: matrix.test-type == 'functional' && steps.cache-tools.outputs.cache-hit != 'true'
run: |
set -e
CMAKE_BUILD_VERSIONS=("3.15.7")
for version in "${CMAKE_BUILD_VERSIONS[@]}"; do
echo "Compiling CMake version ${version} from source for ARM..."
wget -q --no-check-certificate https://cmake.org/files/v${version%.*}/cmake-${version}.tar.gz
tar -xzf cmake-${version}.tar.gz
cd cmake-${version}
mkdir build && cd build
../bootstrap --prefix=${HOME}/Applications/CMake/${version} -- -DCMAKE_USE_OPENSSL=ON
make -j$(sysctl -n hw.ncpu)
make install
${HOME}/Applications/CMake/${version}/bin/cmake --version
cd ../../
rm -rf cmake-${version} cmake-${version}.tar.gz
done

- name: Install universal CMake versions
if: matrix.test-type == 'functional' && steps.cache-tools.outputs.cache-hit != 'true'
run: |
set -e
CMAKE_PRECOMP_VERSIONS=("3.19.7" "3.23.5")
for version in "${CMAKE_PRECOMP_VERSIONS[@]}"; do
echo "Downloading and installing precompiled universal CMake version ${version}..."
wget -q --no-check-certificate https://cmake.org/files/v${version%.*}/cmake-${version}-macos-universal.tar.gz
tar -xzf cmake-${version}-macos-universal.tar.gz \
--exclude=CMake.app/Contents/bin/cmake-gui \
--exclude=CMake.app/Contents/doc/cmake \
--exclude=CMake.app/Contents/share/cmake-${version%.*}/Help \
--exclude=CMake.app/Contents/share/vim
mkdir -p ${HOME}/Applications/CMake/${version}
cp -fR cmake-${version}-macos-universal/CMake.app/Contents/* ${HOME}/Applications/CMake/${version}
${HOME}/Applications/CMake/${version}/bin/cmake --version
rm -rf cmake-${version}-macos-universal
rm cmake-${version}-macos-universal.tar.gz
done

- name: Install Bazel versions
if: matrix.test-type == 'functional' && steps.cache-tools.outputs.cache-hit != 'true'
run: |
set -e
for version in 6.3.2 7.1.2; do
mkdir -p ${HOME}/Applications/bazel/${version}
wget -q -O ${HOME}/Applications/bazel/${version}/bazel https://github.com/bazelbuild/bazel/releases/download/${version}/bazel-${version}-darwin-arm64
chmod +x ${HOME}/Applications/bazel/${version}/bazel
done

- name: Run Tests
run: |
if [ "${{ matrix.test-type }}" == "unittests" ]; then
pytest test/unittests --durations=20 -n auto
elif [ "${{ matrix.test-type }}" == "integration" ]; then
pytest test/integration --durations=20 -n auto
elif [ "${{ matrix.test-type }}" == "functional" ]; then
export PATH=${HOME}/Applications/CMake/3.15.7/bin:$PATH:/usr/local/bin:/opt/homebrew/bin:/usr/bin:/bin:/usr/sbin:/sbin
cmake --version
pytest test/functional --durations=20 -n auto
fi
16 changes: 7 additions & 9 deletions test/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -68,27 +68,25 @@
"default": "3.15",
"3.15": {
"path": {'Windows': 'C:/cmake/cmake-3.15.7-win64-x64/bin',
'Darwin': '/Users/jenkins/cmake/cmake-3.15.7/bin',
'Darwin': '/Users/runner/Applications/CMake/3.15.7/bin',
'Linux': '/usr/share/cmake-3.15.7/bin'}
},
"3.16": {
"path": {'Windows': 'C:/cmake/cmake-3.16.9-win64-x64/bin',
'Darwin': '/Users/jenkins/cmake/cmake-3.16.9/bin',
'Linux': '/usr/share/cmake-3.16.9/bin'}
},
"3.17": {
"path": {'Windows': 'C:/cmake/cmake-3.17.5-win64-x64/bin',
'Darwin': '/Users/jenkins/cmake/cmake-3.17.5/bin',
'Linux': '/usr/share/cmake-3.17.5/bin'}
},
"3.19": {
"path": {'Windows': 'C:/cmake/cmake-3.19.7-win64-x64/bin',
'Darwin': '/Users/jenkins/cmake/cmake-3.19.7/bin',
'Darwin': '/Users/runner/Applications/CMake/3.19.7/bin',
'Linux': '/usr/share/cmake-3.19.7/bin'}
},
"3.23": {
"path": {'Windows': 'C:/cmake/cmake-3.23.1-win64-x64/bin',
'Darwin': '/Users/jenkins/cmake/cmake-3.23.1/bin',
'Darwin': '/Users/runner/Applications/CMake/3.23.5/bin',
'Linux': "/usr/share/cmake-3.23.5/bin"}
},
"3.28": {
Expand Down Expand Up @@ -158,10 +156,10 @@
"default": "6.3.2",
"6.3.2": {"path": {'Linux': '/usr/share/bazel-6.3.2/bin',
'Windows': 'C:/bazel-6.3.2/bin',
'Darwin': '/Users/jenkins/bazel-6.3.2/bin'}},
"7.1.2": {"path": {'Linux': '/usr/share/bazel-7.1.2/bin',
'Darwin': '/Users/runner/Applications/bazel/6.3.2'}},
"7.1.2": {"path": {'Linux': '/usr/share/bazel-7.1.2',
'Windows': 'C:/bazel-7.1.2/bin',
'Darwin': '/Users/jenkins/bazel-7.1.2/bin'}},
'Darwin': '/Users/runner/Applications/bazel/7.1.2'}},
},
'premake': {
"exe": "premake5",
Expand All @@ -178,7 +176,7 @@
"exe": "ndk-build",
"default": "system",
"system": {
"path": {'Darwin': f'{homebrew_root}/share/android-ndk'}
"path": {'Darwin': os.getenv("ANDROID_NDK")}
}
},
"qbs": {"disabled": True},
Expand Down
4 changes: 2 additions & 2 deletions test/functional/layout/test_editable_cmake.py
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ def test_editable_cmake_linux(generator):

@pytest.mark.skipif(platform.system() != "Darwin", reason="Requires Macos")
@pytest.mark.parametrize("generator", [None, "Ninja", "Xcode"])
@pytest.mark.tool("cmake", "3.19")
@pytest.mark.tool("cmake", "3.23")
def test_editable_cmake_osx(generator):
editable_cmake(generator)

Expand Down Expand Up @@ -154,6 +154,6 @@ def test_editable_cmake_linux_exe(generator):

@pytest.mark.skipif(platform.system() != "Darwin", reason="Requires Macos")
@pytest.mark.parametrize("generator", [None, "Ninja", "Xcode"])
@pytest.mark.tool("cmake", "3.19")
@pytest.mark.tool("cmake", "3.23")
def test_editable_cmake_osx_exe(generator):
editable_cmake_exe(generator)
Loading
Loading