Skip to content

Commit 9abd926

Browse files
committed
added devcontainers and conan linux actions (8)
1 parent 38b9d90 commit 9abd926

14 files changed

Lines changed: 197 additions & 42 deletions

File tree

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
FROM mcr.microsoft.com/devcontainers/base:alpine-3.17
2+
3+
RUN \
4+
apk add --update --no-cache \
5+
clang15 \
6+
cmake \
7+
ninja \
8+
git \
9+
gdb \
10+
linux-headers \
11+
py3-pip \
12+
&& pip install conan
13+
14+
ENV \
15+
CC=/usr/bin/clang \
16+
CXX=/usr/bin/clang++
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
{
2+
"name": "clang15",
3+
"build": {
4+
"dockerfile": "./clang15.Dockerfile",
5+
"context": "."
6+
},
7+
"customizations": {
8+
"vscode": {
9+
"extensions": [
10+
"ms-vscode.cpptools",
11+
"ms-vscode.cmake-tools"
12+
]
13+
}
14+
},
15+
"remoteUser": "vscode"
16+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
{
2+
"name": "gcc12",
3+
"build": {
4+
"dockerfile": "./gcc12.Dockerfile",
5+
"context": "."
6+
},
7+
"customizations": {
8+
"vscode": {
9+
"extensions": [
10+
"ms-vscode.cpptools",
11+
"ms-vscode.cmake-tools"
12+
]
13+
}
14+
},
15+
"remoteUser": "vscode"
16+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
FROM mcr.microsoft.com/devcontainers/base:alpine-3.17
2+
3+
RUN \
4+
apk add --update --no-cache \
5+
build-base \
6+
cmake \
7+
ninja \
8+
git \
9+
gdb \
10+
linux-headers \
11+
py3-pip \
12+
&& pip install conan

.github/workflows/conan.yml

Lines changed: 34 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ name: Conan-Tests
33
on: push
44

55
jobs:
6-
Conan-Tests-Windows:
7-
name: Conan-tests-Windows
6+
Windows:
7+
name: Windows
88
runs-on: "windows-latest"
99
steps:
1010
- name: Install Conan
@@ -35,47 +35,39 @@ jobs:
3535
}
3636
}
3737
38-
# TODO: need new docker images - gcc12-ubuntu-22.04-cmake-3.25.2-conan-1.57
39-
# Conan-Tests-Linux:
40-
# name: Conan-tests-linux
41-
# runs-on: "ubuntu-latest"
38+
Linux:
39+
name: Linux
40+
runs-on: "ubuntu-latest"
4241

43-
# strategy:
44-
# fail-fast: false
45-
# matrix:
46-
# include:
47-
# # - image: "conanio/gcc12-ubuntu18.04:latest"
48-
# # - image: "ghcr.io/fettpet/clang-conan-cmake-dockercontainer:latest-clang11"
49-
# # ConanExtra: "-s compiler.libcxx=libc++"
50-
# # - image: "ghcr.io/fettpet/clang-conan-cmake-dockercontainer:latest-clang12"
51-
# # ConanExtra: "-s compiler.libcxx=libc++"
52-
# # - image: "ghcr.io/fettpet/clang-conan-cmake-dockercontainer:latest-clang13"
53-
# # ConanExtra: "-s compiler.libcxx=libc++"
54-
# steps:
55-
# - name: Checkout source
56-
# uses: actions/checkout@v3
42+
strategy:
43+
fail-fast: false
44+
matrix:
45+
include:
46+
- name: "GCC12"
47+
dockerfile: "gcc12.Dockerfile"
48+
image: "gcc12-conan:latest"
49+
profile: "gcc12"
50+
- name: "Clang15 with libstdc++"
51+
dockerfile: "clang15.Dockerfile"
52+
image: "clang15-conan:latest"
53+
profile: "clang15-libstdcpp"
54+
# - name: "Clang15 with libc++"
55+
# dockerfile: "clang15.Dockerfile"
56+
# image: "clang15-conan:latest"
57+
# profile: "clang15-libcxx"
5758

58-
# - name: Create Conan home folder
59-
# shell: pwsh
60-
# run: |
61-
# $DIRECTORY_PATH=Join-Path ${Env:RUNNER_TEMP} conanserver
62-
# echo "DIRECTORY_PATH=${DIRECTORY_PATH}" | Out-File -FilePath $Env:GITHUB_ENV -Encoding utf-8 -Append
63-
# if (!(Test-Path -path $DIRECTORY_PATH)) {
64-
# New-Item -ItemType directory -Path $DIRECTORY_PATH
65-
# }
59+
steps:
60+
- name: Checkout source
61+
uses: actions/checkout@v3
6662

67-
# - name: Create conan package
68-
# shell: pwsh
69-
# run: |
70-
# docker run --network="host" --rm -v ${env:GITHUB_WORKSPACE}:/project -v ${env:DIRECTORY_PATH}:/conan -w /project/conan ${{ matrix.image }} conan create . --build=gtest --build=co-cpp19 ${{ matrix.ConanExtra }}
63+
- name: Build Dockerfile
64+
if: ${{ matrix.dockerfile != '' }}
65+
run: >-
66+
docker build -t ${{ matrix.image }} -f "conan/docker/${{ matrix.dockerfile }}" "conan/docker/"
7167
72-
# - name: Test package components
73-
# shell: pwsh
74-
# run: |
75-
# [array]$folders=Get-ChildItem -Path conan/tests -Directory -Name
76-
# foreach ($folder in $folders) {
77-
# docker run --network="host" --rm -v ${env:GITHUB_WORKSPACE}:/project -v ${env:DIRECTORY_PATH}:/conan -w /project ${{ matrix.image }} script/test_conan.sh ${folder} ${{ matrix.ConanExtra }}
78-
# if (!$?) {
79-
# exit(1)
80-
# }
81-
# }
68+
- name: Create conan package and test it
69+
run: >-
70+
docker run --network="host" --rm
71+
--mount "src=${GITHUB_WORKSPACE},target=/project,type=bind"
72+
--workdir /project ${{ matrix.image }}
73+
script/ci/conan.sh ${{ matrix.profile }}

conan/docker/clang15.Dockerfile

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
FROM alpine:3.17
2+
3+
RUN \
4+
apk add --update --no-cache \
5+
bash \
6+
build-base \
7+
clang15 \
8+
cmake \
9+
ninja \
10+
py3-pip \
11+
&& pip install conan
12+
13+
ENV \
14+
CC=/usr/bin/clang \
15+
CXX=/usr/bin/clang++

conan/docker/gcc12.Dockerfile

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
FROM alpine:3.17
2+
3+
RUN \
4+
apk add --update --no-cache \
5+
bash \
6+
build-base \
7+
cmake \
8+
ninja \
9+
py3-pip \
10+
&& pip install conan

conan/profiles/clang15-libcxx

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
[settings]
2+
os=Linux
3+
os_build=Linux
4+
arch=x86_64
5+
arch_build=x86_64
6+
compiler=clang
7+
compiler.libcxx=libc++
8+
compiler.version=15
9+
compiler.cppstd=20
10+
build_type=Release
11+
12+
[options]
13+
*:shared=False

conan/profiles/clang15-libstdcpp

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
[settings]
2+
os=Linux
3+
os_build=Linux
4+
arch=x86_64
5+
arch_build=x86_64
6+
compiler=clang
7+
compiler.libcxx=libstdc++11
8+
compiler.version=15
9+
compiler.cppstd=20
10+
build_type=Release
11+
12+
[options]
13+
*:shared=False

conan/profiles/gcc12

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
[settings]
2+
os=Linux
3+
os_build=Linux
4+
arch=x86_64
5+
arch_build=x86_64
6+
compiler=gcc
7+
compiler.libcxx=libstdc++11
8+
compiler.version=12
9+
compiler.cppstd=20
10+
build_type=Release
11+
12+
[options]
13+
*:shared=False

0 commit comments

Comments
 (0)