-
Notifications
You must be signed in to change notification settings - Fork 0
93 lines (89 loc) · 2.96 KB
/
cpp.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
name: cppWorkflow
on:
push:
branches: main
paths:
- 'cpp/**'
- '.github/workflows/cpp.yml'
env:
NUGETTOKEN: ${{ secrets.NUGET_TOKEN }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SCRIPTS_BASE_URL: https://raw.githubusercontent.com/linksplatform/Scripts/main/MultiProjectRepository
defaults:
run:
working-directory: cpp
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
with:
submodules: true
- name: Setup clang
uses: egor-tensin/setup-clang@v1
with:
version: 13
platform: x64
- name: Install conan
run: pip install conan
- name: Setup conan
run: |
conan profile new linksplatform --detect
conan profile update settings.compiler=clang linksplatform
conan profile update settings.compiler.version=13 linksplatform
conan profile update settings.compiler.libcxx=libstdc++11 linksplatform
conan profile update env.CXX=clang++ linksplatform
conan profile show linksplatform
- name: Instll conan packages
run: |
if [ -f "install-local-conan-dependencies.sh" ]; then
echo "install-local-conan-dependencies.sh exists."
chmod +x ./install-local-conan-dependencies.sh
./install-local-conan-dependencies.sh
fi
- name: Test and scan-build
run: |
CXX=clang++
cmake_flags="-DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_COMPILER=clang++ -DLINKS_PLATFORM_TESTS=TRUE"
cmake_build_dir="build"
mkdir $cmake_build_dir && cd $cmake_build_dir
conan install .. -pr=linksplatform --build=missing
cmake .. "$cmake_flags"
cmake --build .
ls
pushToNuget:
runs-on: ubuntu-latest
needs: test
steps:
- uses: actions/checkout@v1
with:
submodules: true
- name: Read package information
run: |
export REPOSITORY_NAME=$(basename ${{ github.repository }})
wget "$SCRIPTS_BASE_URL/read_cpp_package_info.sh"
bash ./read_cpp_package_info.sh
- name: Publish NuGet package
run: |
export REPOSITORY_NAME=$(basename ${{ github.repository }})
wget "$SCRIPTS_BASE_URL/push-cpp-nuget.sh"
bash ./push-cpp-nuget.sh
publiseRelease:
runs-on: ubuntu-latest
needs: test
steps:
- uses: actions/checkout@v1
with:
submodules: true
- name: Read project information
run: |
export REPOSITORY_NAME=$(basename ${{ github.repository }})
wget "$SCRIPTS_BASE_URL/read_cpp_package_info.sh"
bash ./read_cpp_package_info.sh
- name: Publish release
run: |
export REPOSITORY_NAME=$(basename ${{ github.repository }})
wget "$SCRIPTS_BASE_URL/publish-release.sh"
chmod +x ./publish-release.sh
wget "$SCRIPTS_BASE_URL/publish-cpp-release.sh"
bash ./publish-cpp-release.sh