-
Notifications
You must be signed in to change notification settings - Fork 0
103 lines (82 loc) · 2.95 KB
/
docs-dev-branch.yaml
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
94
95
96
97
98
99
100
101
102
103
#name: totally-not-rabbitmq
name: notRabbit
# Triggers the workflow on push or pull request events but only for the main branch
on:
push:
branches: [ dev ]
pull_request:
branches: [ dev ]
workflow_dispatch:
# A simple workflow to build a C++ project and generate documentation with hdoc
jobs:
build:
env:
BUILD_TYPE: 'Debug'
BUILD_HDOC_DIR: '/tmp/build'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install dependencies, then configure and build project
run: |
sudo apt install build-essential cmake ninja-build
# cmake -GNinja -Bbuild -DCMAKE_EXPORT_COMPILE_COMMANDS=1
# ninja -C build # Optional, you don't need to build the project to use hdoc
- name: Get Conan
uses: turtlebrowser/[email protected]
- name: Create default profile
run: conan profile detect --force
# - name: Update profile
# run: conan profile update settings.compiler.libcxx=libstdc++11 default
- name: Install LLVM
run: |
wget https://apt.llvm.org/llvm.sh
chmod +x llvm.sh
sudo ./llvm.sh 17 all
# - name: Install clang
# run: sudo apt-get install clang-17 lld-17 libclang-cpp17-dev
- name: Restore Cache HDOC build
id: cache-hdoc-restore
uses: actions/cache/restore@v4
with:
path: ${{ env.BUILD_HDOC_DIR }}
key: ${{ runner.os }}-hdoc
- name: Build hdoc
if: steps.cache-hdoc-restore.outputs.cache-hit != 'true'
run: |
mkdir -p ${{ env.BUILD_HDOC_DIR }}
cd ${{ env.BUILD_HDOC_DIR }}
git clone https://github.com/PeterTh/hdoc.git
cd hdoc
pip3 install meson
CC=clang-17 CXX=clang++-17 CPP=clang-cpp-17 meson build
sudo ninja -C build
- name: Save Cache HDOC build
id: cache-hdoc-save
uses: actions/cache/save@v4
with:
path: ${{ env.BUILD_HDOC_DIR }}
key: ${{ steps.cache-hdoc-restore.outputs.cache-primary-key }}
- name: Copy hdoc binary
run: |
sudo cp ${{ env.BUILD_HDOC_DIR }}/hdoc/build/hdoc /hdoc
sudo chmod +x /hdoc
- name: Configure CMake
run: cmake -B build -DCMAKE_PROJECT_TOP_LEVEL_INCLUDES="conan_provider.cmake" -DCMAKE_EXPORT_COMPILE_COMMANDS=1 -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}}
- name: Run hdoc to generate documentation
run: |
sudo chmod +x /hdoc
sudo /hdoc --verbose
- name: zip documentation
run: |
cd hdoc-output
sudo zip -r archive.zip *
cd ..
- name: Upload documentation to custom server
run: |
cd hdoc-output
sudo curl -X POST \
-F [email protected] \
-F name="TotalyNotRabbitMQDevBranch" \
-F version="1.0.0" \
-F description="This is TotalyNotRabbitMQ." \
${{vars.DOCSURL}}