Skip to content

Commit 5302651

Browse files
authored
Issue 670: bump the version (#676)
* switch master docs to latest * fix h5cpp::h5cpp target in docu * fix the version of stable * bump the version * add rtd * build html only for one element * update a list of packages * remove unset git * add doc builder * add debian12 docker * fix typo * fix typo * update ubuntu distro * remove libgtest-dev and libcppunit-dev from docker * use replace deprecated set-output by GITHUB_OUTPUT * update doxygen configuration * fix sphinx language * fix sphinx language
1 parent a6787a3 commit 5302651

File tree

10 files changed

+753
-381
lines changed

10 files changed

+753
-381
lines changed

.github/workflows/cmake-build.yml

Lines changed: 86 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -54,18 +54,18 @@ jobs:
5454
-o shared=${H5CPP_SHARED} \
5555
-o *:shared=${H5CPP_SHARED}"
5656
conan profile detect
57-
conan remove -c zlib/*
57+
conan remove -c zlib/*
5858
conan lock create conanfile.py ${CONAN_ARGS} --lockfile-packages --lockfile-out base.lock
5959
conan lock create conanfile.py ${CONAN_ARGS} --build missing
60-
- name: cache conan dependencies
60+
- name: Cache conan dependencies
6161
uses: actions/cache@v4
6262
with:
6363
path: ~/.conan/data
6464
key: conan-${{ matrix.profile }}-${{ hashfiles('base.lock') }}-${{ hashFiles('conan.lock') }}
6565
restore-keys: |
6666
conan-${{ matrix.profile }}-${{ hashfiles('base.lock') }}
6767
conan-${{ matrix.profile }}
68-
- name: install conan dependencies
68+
- name: Install conan dependencies
6969
run: |
7070
CONAN_ARGS="--profile .github/workflows/conan/profiles/${{ matrix.profile }} \
7171
-o with_boost=${H5CPP_WITH_BOOST} \
@@ -78,7 +78,7 @@ jobs:
7878
--lockfile conan.lock \
7979
--build missing \
8080
--update
81-
- name: build with cmake
81+
- name: Build with cmake
8282
run: |
8383
CONAN_ARGS="--profile .github/workflows/conan/profiles/${{ matrix.profile }} \
8484
-o with_boost=${H5CPP_WITH_BOOST} \
@@ -88,7 +88,7 @@ jobs:
8888
conan build . ${CONAN_ARGS} \
8989
--lockfile conan.lock \
9090
--output-folder build
91-
- name: run tests
91+
- name: Run tests
9292
run: |
9393
cd build
9494
ctest --extra-verbose --no-tests=error
@@ -122,18 +122,18 @@ jobs:
122122
-o shared=${H5CPP_SHARED} \
123123
-o *:shared=${H5CPP_SHARED}"
124124
conan profile detect
125-
conan remove -c zlib/*
125+
conan remove -c zlib/*
126126
conan lock create conanfile.py ${CONAN_ARGS} --lockfile-packages --lockfile-out base.lock
127127
conan lock create conanfile.py ${CONAN_ARGS} --build missing
128-
- name: cache conan dependencies
128+
- name: Cache conan dependencies
129129
uses: actions/cache@v4
130130
with:
131131
path: ~/.conan/data
132132
key: conan-vs2022-${{ hashfiles('base.lock') }}-${{ hashFiles('conan.lock') }}
133133
restore-keys: |
134134
conan-vs-2022-${{ hashfiles('base.lock') }}
135135
conan-vs-2022
136-
- name: install conan dependencies
136+
- name: Install conan dependencies
137137
run: |
138138
CONAN_ARGS="--profile .github/workflows/conan/profiles/vs2022 \
139139
-o with_boost=${H5CPP_WITH_BOOST} \
@@ -146,7 +146,7 @@ jobs:
146146
--build missing \
147147
--update \
148148
--generator VirtualRunEnv
149-
- name: build with cmake
149+
- name: Build with cmake
150150
run: |
151151
CONAN_ARGS="--profile .github/workflows/conan/profiles/vs2022 \
152152
-o with_boost=${H5CPP_WITH_BOOST} \
@@ -155,7 +155,7 @@ jobs:
155155
conan build . ${CONAN_ARGS} \
156156
--lockfile conan.lock \
157157
--output-folder build
158-
- name: run tests
158+
- name: Run tests
159159
run: |
160160
cd build
161161
.\conanbuildenv-release-x86_64.ps1
@@ -205,15 +205,15 @@ jobs:
205205
conan remove -c zlib/*
206206
conan lock create conanfile.py ${CONAN_ARGS} --lockfile-packages --lockfile-out base.lock
207207
conan lock create conanfile.py ${CONAN_ARGS} --build missing
208-
- name: cache conan dependencies
208+
- name: Cache conan dependencies
209209
uses: actions/cache@v4
210210
with:
211211
path: ~/.conan/data
212212
key: conan-apple-clang12-${{ hashfiles('base.lock') }}-${{ hashFiles('conan.lock') }}
213213
restore-keys: |
214214
conan-apple-clang12-${{ hashfiles('base.lock') }}
215215
conan-apple-clang12
216-
- name: install conan dependencies
216+
- name: Install conan dependencies
217217
run: |
218218
HDF5_SHARED=${H5CPP_SHARED}
219219
if [ "${H5CPP_WITH_MPI}" = "True" ]; then
@@ -231,7 +231,7 @@ jobs:
231231
--build missing \
232232
--update \
233233
--generator VirtualRunEnv
234-
- name: build with cmake
234+
- name: Build with cmake
235235
run: |
236236
HDF5_SHARED=${H5CPP_SHARED}
237237
if [ "${H5CPP_WITH_MPI}" = "True" ]; then
@@ -245,7 +245,7 @@ jobs:
245245
conan build . ${CONAN_ARGS} \
246246
--lockfile conan.lock \
247247
--output-folder build
248-
- name: run tests
248+
- name: Run tests
249249
run: |
250250
cd build
251251
ctest --extra-verbose --no-tests=error
@@ -259,65 +259,91 @@ jobs:
259259
serial
260260
]
261261
runs-on: ubuntu-24.04
262-
container:
263-
image: debian:bookworm
264262
steps:
265263
- uses: actions/checkout@v4
264+
- name: Build the docker
265+
run: docker build -t build .github/workflows/debian12
266+
267+
- name: Run the docker
268+
run: docker run --name build -i -d -v"$PWD:/home/p00user/src" build
269+
266270
- name: Set environment variables
267271
run: |
268272
bash .github/workflows/set_env_vars.sh \
269273
${{ matrix.shared }} \
270274
${{ matrix.boost }} \
271275
${{ matrix.mpi }}
272-
- name: install serial prerequisites
276+
- name: Install serial prerequisites
273277
if: ${{ matrix.mpi == 'serial' }}
274278
run: |
275-
apt-get update
276-
apt-get -y install \
277-
cmake \
278-
catch2 \
279-
g++ \
280-
libhdf5-dev \
281-
libboost-filesystem-dev \
282-
wget
279+
docker exec --user root build /bin/bash -c "apt-get update && apt-get -y install libhdf5-dev"
283280
- name: Install MPI prerequisites
284281
if: ${{ matrix.mpi == 'mpi' }}
285282
run: |
286-
apt-get update
287-
apt-get install -y --no-install-recommends \
288-
build-essential \
289-
cmake \
290-
catch2 \
291-
g++ \
292-
libboost-filesystem-dev \
293-
libhdf5-mpi-dev \
294-
libopenmpi-dev
295-
- name: build with cmake
283+
docker exec --user root build /bin/bash -c "apt-get update && apt-get -y install --no-install-recommends build-essential libhdf5-dev libhdf5-mpi-dev libopenmpi-dev"
284+
- name: Create Config
296285
run: |
297-
HDF5_STATIC=ON
298-
[ "${H5CPP_SHARED}" = "True" ] && HDF5_STATIC=OFF
299-
mkdir build
300-
cd build
301-
cmake .. \
302-
-DCMAKE_BUILD_TYPE=Release \
303-
-DH5CPP_CONAN=DISABLE \
304-
-DH5CPP_CATCH2_V2=TRUE \
305-
-DHDF5_USE_STATIC_LIBRARIES=${HDF5_STATIC} \
306-
-DH5CPP_BUILD_SHARED=${H5CPP_SHARED} \
307-
-DH5CPP_WITH_BOOST=${H5CPP_WITH_BOOST} \
308-
-DH5CPP_WITH_MPI=${H5CPP_WITH_MPI}
309-
cmake --build . -- -j 2
310-
- name: run tests
286+
docker exec --user root build /bin/bash -c "chown -R p00user /home/p00user/src"
287+
docker exec build /bin/bash -c "HDF5_STATIC=ON; [ \"${H5CPP_SHARED}\" = \"True\" ] && HDF5_STATIC=OFF; git config --global --add safe.directory /home/p00user/src && mkdir ../build && cd ../build &&
288+
cmake ../src -DCMAKE_BUILD_TYPE=Release -DH5CPP_CONAN=DISABLE -DH5CPP_CATCH2_V2=TRUE -DHDF5_USE_STATIC_LIBRARIES=${HDF5_STATIC} -DH5CPP_BUILD_SHARED=${H5CPP_SHARED} -DH5CPP_WITH_BOOST=${H5CPP_WITH_BOOST} -DH5CPP_WITH_MPI=${H5CPP_WITH_MPI}"
289+
- name: Build all
290+
run: docker exec build /bin/bash -c "cd ../build && cmake --build . -- -j 2"
291+
- name: Build html
292+
if: (github.ref == 'refs/heads/develop' || startsWith(github.ref, 'refs/heads/docs_')) && matrix.shared == 'shared' && matrix.boost == 'stdfs' && matrix.mpi == 'serial'
293+
run: docker exec build /bin/bash -c "cd ../build && cmake --build . --target html"
294+
- name: Run tests
295+
run: docker exec build /bin/bash -c "cd ../build && ctest --extra-verbose --no-tests=error"
296+
- name: Install with cmake
297+
run: docker exec --user root build /bin/bash -c "cd ../build && cmake --build . --target install"
298+
- name: Build examples
299+
run: docker exec build /bin/bash -c "mkdir ../examples_build && cd ../examples_build && cmake ../src/examples -DCMAKE_BUILD_TYPE=Release && cmake --build . -- -j 2 "
300+
- name: Append documentation for the latest release version
301+
if: startsWith(github.ref, 'refs/heads/develop') && matrix.shared == 'shared' && matrix.boost == 'stdfs' && matrix.mpi == 'serial'
311302
run: |
312-
ctest --extra-verbose --no-tests=error
313-
working-directory: build
314-
- name: install with cmake
303+
docker exec --user root build /bin/bash -c "chown -R p00user /home/p00user/src"
304+
docker exec build /bin/bash -c "git config --unset-all remote.origin.fetch"
305+
docker exec build /bin/bash -c "git config remote.origin.fetch '+refs/heads/*:refs/remotes/origin/*'"
306+
docker exec build /bin/bash -c "git fetch && git clean -fd && git checkout gh-pages && git pull"
307+
docker exec build /bin/bash -c "mkdir -p ./latest && shopt -u dotglob && rm -rf ./latest/*"
308+
docker exec build /bin/bash -c "mv -f ../build/doc/build/* ./latest/"
309+
docker exec build /bin/bash -c "mv -f ../build/doc/doxygen_html ./latest/api_reference/doxygen"
310+
docker exec build /bin/bash -c "mv -f ../build/doc/index.html ./"
311+
docker exec build /bin/bash -c "find ./ -type d -name \"CMakeFiles\" -prune -exec rm -rf {} \\;"
312+
docker exec build /bin/bash -c "find ./ -name \"Makefile\" -exec rm -rf {} \\;"
313+
docker exec build /bin/bash -c "find ./ -name \"*.cmake\" -exec rm -rf {} \\;"
314+
docker exec build /bin/bash -c "rm -rf ./latest/_sources"
315+
316+
- name: Extract the code version from the branch name
317+
if: startsWith(github.ref, 'refs/heads/docs_') && matrix.shared == 'shared' && matrix.boost == 'stdfs' && matrix.mpi == 'serial'
318+
shell: bash
319+
run: echo "docver=$(echo ${GITHUB_REF#refs/heads/docs_})" >> $GITHUB_OUTPUT
320+
# run: echo "##[set-output name=docver;]$(echo ${GITHUB_REF#refs/heads/docs_})"
321+
id: extract_docver
322+
323+
- name: Append documentation for the extracted release version
324+
if: startsWith(github.ref, 'refs/heads/docs_') && matrix.shared == 'shared' && matrix.boost == 'stdfs' && matrix.mpi == 'serial'
315325
run: |
316-
cmake --build . --target install
317-
working-directory: build
318-
- name: build examples
319-
run: |
320-
mkdir examples_build
321-
cd examples_build
322-
cmake ../examples -DCMAKE_BUILD_TYPE=Release
323-
cmake --build . -- -j 2
326+
echo Version: ${{ steps.extract_docver.outputs.docver }}
327+
docker exec --user root build /bin/bash -c "chown -R p00user /home/p00user/src"
328+
docker exec build /bin/bash -c "git config --unset-all remote.origin.fetch"
329+
docker exec build /bin/bash -c "git config remote.origin.fetch '+refs/heads/*:refs/remotes/origin/*'"
330+
docker exec build /bin/bash -c "git fetch && git clean -fd && git checkout gh-pages && git pull"
331+
docker exec build /bin/bash -c "mkdir -p ./${{ steps.extract_docver.outputs.docver }}"
332+
docker exec build /bin/bash -c "shopt -u dotglob && rm -rf ./${{ steps.extract_docver.outputs.docver }}/*"
333+
docker exec build /bin/bash -c "mv -f ../build/doc/build/* ./${{ steps.extract_docver.outputs.docver }}/"
334+
docker exec build /bin/bash -c "mv -f ../build/doc/doxygen_html ./${{ steps.extract_docver.outputs.docver }}/api_reference/doxygen"
335+
docker exec build /bin/bash -c "mv -f ../build/doc/index.html ./"
336+
docker exec build /bin/bash -c "find ./ -type d -name \"CMakeFiles\" -prune -exec rm -rf {} \\;"
337+
docker exec build /bin/bash -c "find ./ -name \"Makefile\" -exec rm -rf {} \\;"
338+
docker exec build /bin/bash -c "find ./ -name \"*.cmake\" -exec rm -rf {} \\;"
339+
docker exec build /bin/bash -c "rm -rf ./${{ steps.extract_docver.outputs.docver }}/_sources"
340+
341+
- name: Deploy documentation
342+
if: (github.ref == 'refs/heads/develop' || startsWith(github.ref, 'refs/heads/docs_')) && matrix.shared == 'shared' && matrix.boost == 'stdfs' && matrix.mpi == 'serial'
343+
uses: s0/git-publish-subdir-action@develop
344+
env:
345+
REPO: self
346+
BRANCH: gh-pages
347+
FOLDER: .
348+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
349+
MESSAGE: "Build: ({sha}) {msg}"
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
FROM debian:bookworm
2+
3+
RUN apt-get update
4+
RUN apt-get install -y base-passwd apt-utils dialog -y
5+
RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections
6+
RUN apt-get -qq update && apt-get -qq install -y libterm-readline-gnu-perl software-properties-common coreutils gnupg2 procps curl apt-transport-https gnupg2 ca-certificates wget
7+
RUN apt-get -qq update && apt-get -qq -y dist-upgrade
8+
RUN apt-get -qq update && apt-get -y install cmake g++ doxygen python3-sphinx git graphviz texlive doxygen pkg-config texlive-latex-extra texlive-latex-recommended texlive-pictures python3-pygments lsb-release python3-breathe texlive-pictures python3-sphinx-rtd-theme libjs-mathjax fonts-mathjax fonts-mathjax-extras ghostscript cmake catch2 libboost-filesystem-dev
9+
10+
RUN apt-get clean
11+
12+
# add p00user
13+
RUN useradd -rm -d /home/p00user -s /bin/bash p00user
14+
USER p00user
15+
RUN mkdir -p /home/p00user/src
16+
WORKDIR /home/p00user/src

CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
cmake_minimum_required(VERSION 3.10)
22
project(h5cpp
33
LANGUAGES CXX C
4-
# VERSION 0.6.1
4+
VERSION 0.7.0
55
# documentation for VERSION with one '.' is stored as v:latest (see doc/conf.py.in)
6-
VERSION 0.6
6+
# VERSION 0.7
77
)
88

99

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ cmake -DCMAKE_INSTALL_PREFIX=/home/user1/some/path ..
119119
```
120120
and accordingly, when building the client program:
121121
```bash
122-
cmake -Dh5cpp_DIR=/home/user1/some/path/lib/cmake/h5cpp-0.6.1 path/to/your/source
122+
cmake -Dh5cpp_DIR=/home/user1/some/path/lib/cmake/h5cpp-0.7.0 path/to/your/source
123123
```
124124
where version number may vary.
125125

0 commit comments

Comments
 (0)