Skip to content

Commit 3ee09cc

Browse files
committed
[CI] use new Conan profiles
1 parent 5e933d7 commit 3ee09cc

File tree

13 files changed

+92
-64
lines changed

13 files changed

+92
-64
lines changed

.github/workflows/linux.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ jobs:
4949
strategy:
5050
matrix:
5151
include:
52-
- { host: windows-amd64, tests: ExperimentalTest }
52+
- { host: amd64, tests: ExperimentalTest }
5353
steps:
5454
- name: Checkout
5555
uses: actions/checkout@v4
@@ -58,18 +58,18 @@ jobs:
5858
uses: ./.github/workflows/setup-conan
5959
with:
6060
python-version: '3.12'
61-
cache-key: build-${{ matrix.host }}
61+
cache-key: build-windows-${{ matrix.host }}
6262

6363
- name: Install CasADi
6464
run: python3 -m pip install casadi~=3.7.1
6565

6666
- name: Build and package
67-
run: ./scripts/ci/package-windows.ps1 ${{ matrix.host }} "${{ matrix.tests }}"
67+
run: ./scripts/ci/package-windows.ps1 ${{ matrix.host }}-windows "${{ matrix.tests }}"
6868

6969
- name: Upload
7070
uses: actions/upload-artifact@v4
7171
with:
72-
name: alpaqa-${{ matrix.host }}
72+
name: alpaqa-windows-${{ matrix.host }}
7373
retention-days: 1
7474
path: |
7575
build/pkg/alpaqa*.zip

.github/workflows/setup-conan/action.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,3 +82,4 @@ runs:
8282
armv7hf:
8383
toolchain-cpu: [null, armv8, armv7]
8484
EOF
85+
conan config install scripts/ci/conan-profiles/settings_user.yml

doxygen/scripts/gen-docs.sh

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ cd "$(dirname "$0")"
44
repodir="$PWD"/../..
55
set -x
66
cd "$repodir"
7+
export CTEST_OUTPUT_ON_FAILURE=1
78

89
mainbranch="develop"
910
output_folder="${1:-/tmp}"
@@ -42,17 +43,15 @@ function run_doxygen_coverage {
4243

4344
# Tweak Conan profile
4445
cat <<- EOF > "$tmpdir/docs.profile"
45-
include($PWD/scripts/ci/profiles/x86_64-bionic-linux-gnu.profile)
46+
include($PWD/scripts/ci/conan-profiles/profiles/platform/x86_64-bionic-linux-gnu.profile)
47+
include($PWD/scripts/ci/conan-profiles/profiles/gcc-static.profile)
48+
include($PWD/scripts/ci/conan-profiles/profiles/test/only-self.profile)
4649
[settings]
4750
&:build_type=Debug
4851
[conf]
49-
*:tools.build:skip_test=True
50-
&:tools.build:skip_test=False
5152
&:tools.build.cross_building:can_run=True
5253
&:tools.cmake.cmaketoolchain:generator=Ninja
5354
&:tools.cmake.cmaketoolchain:extra_variables*={"ALPAQA_DOXYFILE": "$tmpdir/tmp-Doxyfile"}
54-
&:tools.cmake.cmaketoolchain:extra_variables*={"CMAKE_C_COMPILER_LAUNCHER": "sccache"}
55-
&:tools.cmake.cmaketoolchain:extra_variables*={"CMAKE_CXX_COMPILER_LAUNCHER": "sccache"}
5655
&:tools.cmake.cmake_layout:build_folder_vars=['const.docs']
5756
[options]
5857
&:with_coverage=True

scripts/ci/build-linux-cross.sh

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -26,17 +26,13 @@ out_dir="${4:-dist}"
2626

2727
# Create Conan profile to inject the appropriate Python development files
2828
python_profile="$PWD/conan-python.cross.profile"
29+
profiles="$PWD/scripts/ci/conan-profiles/profiles"
2930
cat << EOF > "$python_profile"
30-
include($PWD/scripts/ci/profiles/alpaqa-python-linux.profile)
31-
[conf]
32-
tools.cmake.cmaketoolchain:user_toolchain=+['$PWD/scripts/ci/profiles/static-libgcc.cmake']
31+
include($PWD/scripts/ci/options/alpaqa-python-linux.profile)
3332
[options]
34-
coinmumps/*:static_fortran_libs=True
3533
&:with_conan_python=True
3634
[replace_requires]
3735
tttapa-python-dev/*: tttapa-python-dev/[~$python_majmin, include_prerelease]
38-
[buildenv]
39-
LDFLAGS+= -static-libstdc++ -static-libgfortran -static-libquadmath -Wl,--as-needed
4036
EOF
4137

4238
# Create a py-build-cmake configuration file for cross-compilation
@@ -47,9 +43,10 @@ implementation=cp
4743
version="$python_majmin_nodot"
4844
abi="cp$python_majmin_nodot"
4945
arch="$plat_tag"
50-
conan.profile_host=["$PWD/scripts/ci/profiles/$triple.profile", "$python_profile"]
51-
conan.cmake.options.CMAKE_C_COMPILER_LAUNCHER=sccache
52-
conan.cmake.options.CMAKE_CXX_COMPILER_LAUNCHER=sccache
46+
conan.profile_host=["$profiles/platform/$triple.profile"]
47+
conan.profile_host+=["$python_profile"]
48+
conan.profile_host+=["$profiles/gcc-static.profile"]
49+
conan.profile_host+=["$profiles/test/none.profile"]
5350
conan.cmake.args+=["--fresh"]
5451
conan.cmake.build_args+=["--verbose"]
5552
EOF

scripts/ci/build-linux-hardened.sh

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,26 @@ pkg_dir="${1:-.}"
77
out_dir="${2:-dist}"
88
build_type="${3:-debug}" # debug, release or relwithdebinfo
99

10+
# Create Conan profiles
11+
hardened_profile="$PWD/profile-hardened.local.conan"
12+
profiles="$PWD/scripts/ci/conan-profiles/profiles"
13+
cat <<- EOF > "$hardened_profile"
14+
include(default)
15+
include($profiles/color/gcc.profile)
16+
include($profiles/link/lto-auto.profile)
17+
include($profiles/visibility/hidden.profile)
18+
include($profiles/sccache/only-self.profile)
19+
include($profiles/test/only-self.profile)
20+
include($profiles/harden/$build_type.profile)
21+
include($PWD/scripts/ci/options/alpaqa-python-linux.profile)
22+
[conf]
23+
tools.cmake.cmaketoolchain:generator=Ninja Multi-Config
24+
EOF
25+
1026
# Create a py-build-cmake config file
1127
pbc_config="$PWD/native-py-build-cmake.local.pbc"
1228
cat << EOF > "$pbc_config"
13-
conan.profile_host=["default", "$PWD/scripts/ci/profiles/linux-conf-hardened-$build_type.profile"]
14-
conan.cmake.options.CMAKE_C_COMPILER_LAUNCHER=sccache
15-
conan.cmake.options.CMAKE_CXX_COMPILER_LAUNCHER=sccache
29+
conan.profile_host=["$hardened_profile"]
1630
conan.cmake.args+=["--fresh"]
1731
conan.cmake.build_args+=["--verbose"]
1832
conan.cmake.build_type=!

scripts/ci/build-linux-native.sh

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,25 @@ pkg_dir="${1:-.}"
77
out_dir="${2:-dist}"
88
install_stubs_dir="$3"
99

10+
# Create Conan profiles
11+
python_profile="$PWD/profile-python.local.conan"
12+
profiles="$PWD/scripts/ci/conan-profiles/profiles"
13+
cat <<- EOF > "$python_profile"
14+
include(default)
15+
include($profiles/color/gcc.profile)
16+
include($profiles/link/lto-auto.profile)
17+
include($profiles/visibility/hidden.profile)
18+
include($profiles/sccache/only-self.profile)
19+
include($profiles/test/none.profile)
20+
include($PWD/scripts/ci/options/alpaqa-python-linux.profile)
21+
[conf]
22+
tools.cmake.cmaketoolchain:generator=Ninja Multi-Config
23+
EOF
24+
1025
# Create a py-build-cmake config file
1126
pbc_config="$PWD/native-py-build-cmake.local.pbc"
1227
cat << EOF > "$pbc_config"
13-
conan.profile_host=["default", "$PWD/scripts/ci/profiles/linux-conf.profile", "$PWD/scripts/ci/profiles/alpaqa-python-linux.profile"]
14-
conan.cmake.options.CMAKE_C_COMPILER_LAUNCHER=sccache
15-
conan.cmake.options.CMAKE_CXX_COMPILER_LAUNCHER=sccache
28+
conan.profile_host=["$python_profile"]
1629
conan.cmake.args+=["--fresh"]
1730
conan.cmake.build_args+=["--verbose"]
1831
EOF

scripts/ci/build-matlab-windows.bat

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,10 @@ call "%vcvarsall_path%" %triple% || exit /b 1
2424
:: Create Conan profiles
2525
set "matlab_profile=%CD%\profile-matlab.local.conan"
2626
> "%matlab_profile%" (
27-
@echo.include^(%CD%\scripts\ci\profiles\windows-%triple%.profile^)
28-
@echo.include^(%CD%\scripts\ci\profiles\alpaqa-matlab.profile^)
27+
@echo.include^(%CD%\scripts\ci\conan-profiles\profiles\platform\%triple%-windows.profile^)
28+
@echo.include^(%CD%\scripts\ci\conan-profiles\profiles\test\none.profile^)
29+
@echo.include^(%CD%\scripts\ci\conan-profiles\profiles\sccache\only-self.profile^)
30+
@echo.include^(%CD%\scripts\ci\options\alpaqa-matlab.profile^)
2931
)
3032

3133
:: Remove temporary folders

scripts/ci/build-matlab.sh

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,18 +16,19 @@ shared="${5:-False}"
1616

1717
# Create Conan profiles
1818
matlab_profile="$PWD/profile-matlab.local.conan"
19+
profiles="$PWD/scripts/ci/conan-profiles/profiles"
1920
cat <<- EOF > "$matlab_profile"
20-
include($PWD/scripts/ci/profiles/$triple.profile)
21-
include($PWD/scripts/ci/profiles/alpaqa-matlab.profile)
22-
[options]
23-
alpaqa/*:shared=$shared
21+
include($profiles/platform/$triple.profile)
22+
include($profiles/test/none.profile)
23+
include($PWD/scripts/ci/options/alpaqa-matlab.profile)
2424
EOF
2525
if [[ "$OSTYPE" == "linux-gnu"* ]]; then
2626
cat <<- EOF >> "$matlab_profile"
27-
[conf]
28-
tools.cmake.cmaketoolchain:user_toolchain=+['$PWD/scripts/ci/profiles/static-libgcc.cmake']
29-
[buildenv]
30-
LDFLAGS+= -static-libstdc++ -static-libgfortran -static-libquadmath -Wl,--as-needed
27+
include($profiles/gcc-static.profile)
28+
EOF
29+
else
30+
cat <<- EOF >> "$matlab_profile"
31+
include($profiles/sccache/only-self.profile)
3132
EOF
3233
fi
3334

@@ -36,7 +37,9 @@ rm -rf "$pkg_dir"/build/matlab-{debug,release}/{generators,CMakeCache.txt}
3637
for cfg in Release; do
3738
conan install "$pkg_dir" --build=missing \
3839
-pr:h "$matlab_profile" \
39-
-s build_type=$cfg
40+
-s build_type=$cfg \
41+
-o alpaqa/\*:shared=$shared \
42+
-c \&:tools.cmake.cmaketoolchain:generator=Ninja
4043
done
4144

4245
# Build MATLAB bindings

scripts/ci/package-linux.sh

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -12,20 +12,14 @@ if [ -n "$tests" ]; then test_flags="-DALPAQA_FORCE_TEST_DISCOVERY=On"; fi
1212

1313
# Create Conan profile
1414
cpp_profile="$PWD/profile-cpp.conan"
15+
profiles="$PWD/scripts/ci/conan-profiles/profiles"
1516
cat <<- EOF > "$cpp_profile"
16-
include($PWD/scripts/ci/profiles/$triple.profile)
17-
include($PWD/scripts/ci/profiles/alpaqa-cpp-linux.profile)
17+
include($profiles/platform/$triple.profile)
18+
include($profiles/gcc-static.profile)
19+
include($profiles/test/only-self.profile)
20+
include($PWD/scripts/ci/options/alpaqa-cpp-linux.profile)
1821
[conf]
19-
tools.cmake.cmaketoolchain:user_toolchain=+['$PWD/scripts/ci/profiles/static-libgcc.cmake']
2022
tools.cmake.cmake_layout:build_folder_vars=['const.pkg']
21-
!&:tools.build:skip_test=True
22-
&:tools.build:skip_test=False
23-
[buildenv]
24-
LDFLAGS+= -static-libstdc++ -static-libgfortran -static-libquadmath -Wl,--as-needed
25-
&:CMAKE_C_COMPILER_LAUNCHER=sccache
26-
&:CMAKE_CXX_COMPILER_LAUNCHER=sccache
27-
[options]
28-
coinmumps/*:static_fortran_libs=True
2923
[replace_requires]
3024
eigen/*: eigen/3.4.0
3125
EOF

scripts/ci/package-windows.ps1

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ Set-Location (Join-Path $PSScriptRoot "..\..")
77
$env:CTEST_OUTPUT_ON_FAILURE = "1"
88

99
# Select architecture
10-
$triple = if ($args.Count -ge 1) { $args[0] } else { "windows-amd64" }
10+
$triple = if ($args.Count -ge 1) { $args[0] } else { "amd64-windows" }
1111
$tests = if ($args.Count -ge 2) { $args[1] } else { "" }
1212

1313
$test_flags = if ($tests) { "-DALPAQA_FORCE_TEST_DISCOVERY=On" } else { "" }
@@ -27,8 +27,10 @@ function Invoke-Checked {
2727
# Create Conan profile
2828
$cpp_profile = Join-Path (Get-Location) "profile-cpp.conan"
2929
@"
30-
include($(Get-Location)/scripts/ci/profiles/$triple.profile)
31-
include($(Get-Location)/scripts/ci/profiles/alpaqa-cpp-windows.profile)
30+
include($(Get-Location)/scripts/ci/conan-profiles/profiles/platform/$triple.profile)
31+
include($(Get-Location)/scripts/ci/conan-profiles/profiles/sccache/only-self.profile)
32+
include($(Get-Location)/scripts/ci/conan-profiles/profiles/test/only-self.profile)
33+
include($(Get-Location)/scripts/ci/options/alpaqa-cpp-windows.profile)
3234
[conf]
3335
tools.cmake.cmake_layout:build_folder_vars=['const.pkg']
3436
!&:tools.build:skip_test=True

0 commit comments

Comments
 (0)