Skip to content

Commit e18f26c

Browse files
author
Sebastian Hahn
committed
Test: Extend CI/CD with different clang versions
* Use docker container with clang 11, 12 and 13 to test the conan packages.
1 parent e9c60ff commit e18f26c

File tree

1 file changed

+68
-41
lines changed

1 file changed

+68
-41
lines changed

.github/workflows/conan.yml

Lines changed: 68 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -3,51 +3,19 @@ name: Conan-Tests
33
on: push
44

55
jobs:
6-
Conan-Tests:
7-
strategy:
8-
fail-fast: false
9-
matrix:
10-
include:
11-
- OS: "windows-latest"
12-
CXX: ""
13-
CC: ""
14-
ConanExtra: ""
15-
- OS: "ubuntu-latest"
16-
CXX: g++-11
17-
CC: gcc-11
18-
ConanExtra: "-s compiler.version=11 -s compiler.libcxx=libstdc++11"
19-
20-
name: Conan-tests
21-
runs-on: ${{ matrix.OS }}
6+
Conan-Tests-Windows:
7+
name: Conan-tests-Windows
8+
runs-on: "windows-latest"
229
steps:
2310
- name: Install Conan
24-
id: conan
2511
uses: turtlebrowser/get-conan@main
2612

2713
- name: install CMake
2814
uses: lukka/get-cmake@latest
29-
30-
- name: Install Gcc
31-
if: ${{ matrix.OS == 'ubuntu-latest' }}
32-
run: |
33-
sudo apt update
34-
sudo apt install -y gcc-11 g++-11 git
3515

3616
- name: Install MSVC
37-
if: ${{ matrix.OS == 'windows-latest' }}
3817
uses: ilammy/msvc-dev-cmd@v1
3918

40-
- name: Install GTest
41-
run: |
42-
git clone https://github.com/conan-io/conan-center-index/
43-
cd conan-center-index
44-
git checkout 2bd7020ededca50833509199c85190a8e787620c
45-
cd recipes/gtest/all/
46-
conan create . 1.11.0@ ${{ matrix.ConanExtra }}
47-
env:
48-
CC: ${{ matrix.CC }}
49-
CXX: ${{ matrix.CXX }}
50-
5119
- name: Checkout source
5220
uses: actions/checkout@v2
5321

@@ -63,9 +31,6 @@ jobs:
6331
}
6432
Set-Location ../conan
6533
conan create . ${{ matrix.ConanExtra }}
66-
env:
67-
CC: ${{ matrix.CC }}
68-
CXX: ${{ matrix.CXX }}
6934
7035
- name: Test packages
7136
shell: pwsh
@@ -84,6 +49,68 @@ jobs:
8449
Remove-Item -Recurse -Force build
8550
Set-Location ..
8651
}
87-
env:
88-
CC: ${{ matrix.CC }}
89-
CXX: ${{ matrix.CXX }}
52+
53+
Conan-Tests-Linux:
54+
name: Conan-tests-linux
55+
runs-on: "ubuntu-latest"
56+
57+
strategy:
58+
fail-fast: false
59+
matrix:
60+
include:
61+
- image: "ghcr.io/fettpet/clang-conan-cmake-dockercontainer:cmake3.21.4-clang11-conan1.42.1"
62+
ConanExtra: "-s compiler.libcxx=libc++"
63+
- image: "ghcr.io/fettpet/clang-conan-cmake-dockercontainer:cmake3.21.4-clang12-conan1.42.1"
64+
ConanExtra: "-s compiler.libcxx=libc++"
65+
- image: "ghcr.io/fettpet/clang-conan-cmake-dockercontainer:cmake3.21.4-clang13-conan1.42.1"
66+
ConanExtra: "-s compiler.libcxx=libc++"
67+
steps:
68+
69+
- name: Checkout source
70+
uses: actions/checkout@v2
71+
72+
73+
- name: Create Conan home folder
74+
shell: pwsh
75+
run: |
76+
$DIRECTORY_PATH= Join-Path ${Env:RUNNER_TEMP} conanserver
77+
echo "DIRECTORY_PATH=${DIRECTORY_PATH}" | Out-File -FilePath $Env:GITHUB_ENV -Encoding utf-8 -Append
78+
if(!(Test-Path -path $DIRECTORY_PATH))
79+
{
80+
New-Item -ItemType directory -Path $DIRECTORY_PATH
81+
}
82+
83+
- name: Debug
84+
shell: pwsh
85+
run: gci env:* | sort-object name
86+
87+
- name: Install packages
88+
shell: pwsh
89+
run: |
90+
Set-Location src
91+
[array]$folders=@('array19.lib','coro19.lib','meta19.lib','tuple19.lib', 'string19.lib', 'strong19.lib', 'variant19.lib', 'enum19.lib', 'lookup19.lib', 'optional19.lib', 'partial19.lib', 'serialize19.lib', 'signal19.lib')
92+
foreach ($folder in $folders) {
93+
Set-Location $folder
94+
docker run --network="host" --rm -v ${PWD}:/project -v ${env:DIRECTORY_PATH}:/conan -w /project ${{ matrix.image }} conan create . ${{ matrix.ConanExtra }}
95+
Set-Location ..
96+
}
97+
Set-Location ../conan
98+
$Path = Get-Location
99+
Write-Output $Path
100+
docker run --network="host" --rm -v ${env:GITHUB_WORKSPACE}:/project -v ${env:DIRECTORY_PATH}:/conan -w /project/conan ${{ matrix.image }} conan create . ${{ matrix.ConanExtra }}
101+
102+
- name: Test packages
103+
shell: pwsh
104+
run: |
105+
Set-Location conan/tests
106+
[array]$folders=Get-ChildItem -Path . -Directory -Name
107+
foreach ($folder in $folders) {
108+
New-Item -Path . -Name $folder"/build" -ItemType "directory"
109+
docker run --network="host" --rm -v ${env:GITHUB_WORKSPACE}:/project -v ${env:DIRECTORY_PATH}:/conan -w /project/conan/tests/${folder}/build ${{ matrix.image }} conan install .. --build=gtest ${{ matrix.ConanExtra }}
110+
docker run --network="host" --rm -v ${env:GITHUB_WORKSPACE}:/project -v ${env:DIRECTORY_PATH}:/conan -w /project/conan/tests/${folder}/build ${{ matrix.image }} cmake .. -DCONAN_DISABLE_CHECK_COMPILER=true
111+
docker run --network="host" --rm -v ${env:GITHUB_WORKSPACE}:/project -v ${env:DIRECTORY_PATH}:/conan -w /project/conan/tests/${folder}/build ${{ matrix.image }} cmake --build .
112+
docker run --network="host" --rm -v ${env:GITHUB_WORKSPACE}:/project -v ${env:DIRECTORY_PATH}:/conan -w /project/conan/tests/${folder}/build ${{ matrix.image }} ctest --no-tests=error
113+
if (!$?) {
114+
exit(1)
115+
}
116+
}

0 commit comments

Comments
 (0)