add lcov to dependencies, sadly I cannot find a prebuild package for alpine

This commit is contained in:
einhorn_b 2021-05-21 14:37:11 +02:00
parent 3e9d7d4f9d
commit 70c6c85f46
8 changed files with 112 additions and 23 deletions

View File

@ -50,7 +50,7 @@ jobs:
########################################################################## ##########################################################################
- name: login server | Build `test` image - name: login server | Build `test` image
run: | run: |
docker build --target debug -t "gradido/login_server:test" -f ./login_server/Dockerfile login_server/ docker build --target test -t "gradido/login_server:test" -f ./login_server/Dockerfile login_server/
docker save "gradido/login_server:test" > /tmp/login_server.tar docker save "gradido/login_server:test" > /tmp/login_server.tar
- name: Upload Artifact - name: Upload Artifact
uses: actions/upload-artifact@v2 uses: actions/upload-artifact@v2
@ -234,7 +234,7 @@ jobs:
- name: Download Docker Image (Login-Server) - name: Download Docker Image (Login-Server)
uses: actions/download-artifact@v2 uses: actions/download-artifact@v2
with: with:
name: docker-loginserver-test name: docker-login-server-test
path: /tmp path: /tmp
- name: Load Docker Image - name: Load Docker Image
run: docker load < /tmp/loginserver.tar run: docker load < /tmp/loginserver.tar
@ -243,7 +243,11 @@ jobs:
########################################################################## ##########################################################################
- name: Login-Server | Unit tests - name: Login-Server | Unit tests
run: | run: |
docker run -v ~/coverage:/app/coverage --rm gradido/frontend:test yarn run test docker run \
-v ~/coverage:/code/build/coverage_html \
-v ./configs/login_server:/code/build \
--rm gradido/login_server:test \
"make -C /code/build -j$(nproc) coverage_html"
cp -r ~/coverage ./coverage cp -r ~/coverage ./coverage
#test: #test:

View File

@ -0,0 +1,57 @@
HTTPServer.port = 1200
JSONServer.port = 1201
Gradido.group_id = 1
crypto.server_admin_public = f909a866baec97c5460b8d7a93b72d3d4d20cc45d9f15d78bd83944eb9286b7f
crypto.server_key = a51ef8ac7ef1abf162fb7a65261acd7a
# TODO auto-generate in docker build step
crypto.app_secret = 21ffbbc616fe
# Server admin Passphrase
# nerve execute merit pool talk hockey basic win cargo spin disagree ethics swear price purchase say clutch decrease slow half forest reform cheese able
#
phpServer.url = http://localhost/
phpServer.host = nginx
loginServer.path = http://localhost/account
loginServer.default_locale = de
loginServer.db.host = mariadb
loginServer.db.name = gradido_login_test
loginServer.db.user = root
loginServer.db.password =
loginServer.db.port = 3306
frontend.checkEmailPath = http://localhost/reset
email.disable = true
#email.username =
#email.sender =
#email.admin_receiver =
#email.password =
#email.smtp.url =
#email.smtp.port =
# binary is default, for debugging also json is possible
#hedera.consensus.message_format = json
# TESTNET or MAINNET, TESTNET is default
hedera.nettype = TESTNET
# server setup types: test, staging or production
ServerSetupType=test
dev.default_group = docker
# Session timeout in minutes
#
session.timeout = 15
# Disabling security features for faster develop and testing
unsecure.allow_passwort_via_json_request = 1
unsecure.allow_auto_sign_transactions = 1
unsecure.allow_cors_all = 1
# default disable, passwords must contain a number, a lower character, a high character, special character, and be at least 8 characters long
unsecure.allow_all_passwords = 1

View File

@ -219,22 +219,22 @@ set(EXCLUDE_FOR_HTML_COV
"${CMAKE_CURRENT_SOURCE_DIR}/dependencies/*" "${CMAKE_CURRENT_SOURCE_DIR}/dependencies/*"
"${CMAKE_CURRENT_SOURCE_DIR}/src/cpp/test/*" "${CMAKE_CURRENT_SOURCE_DIR}/src/cpp/test/*"
) )
setup_target_for_coverage_gcovr_html( #setup_target_for_coverage_gcovr_html(
NAME coverage_html # NAME coverage_html
EXECUTABLE Gradido_LoginServer_Test # EXECUTABLE Gradido_LoginServer_Test
EXCLUDE ${EXCLUDE_FOR_HTML_COV} # EXCLUDE ${EXCLUDE_FOR_HTML_COV}
#DEPENDENCIES lib/libmariadb.so.3 #DEPENDENCIES lib/libmariadb.so.3
) #)
#set(EXCLUDE_FOR_COV set(EXCLUDE_FOR_COV
#${EXCLUDE_FOR_HTML_COV} #${EXCLUDE_FOR_HTML_COV}
#"/usr/include/*" #"/usr/include/*"
#) )
#setup_target_for_coverage_lcov( setup_target_for_coverage_lcov(
# NAME coverage NAME coverage
# EXECUTABLE Gradido_LoginServer_Test EXECUTABLE Gradido_LoginServer_Test
#EXCLUDE "${EXCLUDE_FOR_COV}" EXCLUDE "${EXCLUDE_FOR_COV}"
#DEPENDENCIES lib/libmariadb.so.3 DEPENDENCIES lib/libmariadb.so.3
#) )
endif() endif()
#_TEST_BUILD #_TEST_BUILD

View File

@ -8,20 +8,19 @@ ENV DOCKER_WORKDIR="/code"
WORKDIR ${DOCKER_WORKDIR} WORKDIR ${DOCKER_WORKDIR}
COPY ./CMakeLists.txt.lib ./CMakeLists.txt COPY ./CMakeLists.txt.lib ./CMakeLists.txt
RUN ln -s /usr/local/googletest ./googletest
COPY ./src ./src COPY ./src ./src
COPY ./cmake/CodeCoverage.cmake ./cmake/CodeCoverage.cmake COPY ./cmake/CodeCoverage.cmake ./cmake/CodeCoverage.cmake
COPY ./dependencies/cmake-modules ./dependencies/cmake-modules COPY ./dependencies/cmake-modules ./dependencies/cmake-modules
COPY ./dependencies/spirit-po ./dependencies/spirit-po COPY ./dependencies/spirit-po ./dependencies/spirit-po
COPY ./dependencies/tinf ./dependencies/tinf COPY ./dependencies/tinf ./dependencies/tinf
COPY ./scripts ./scripts COPY ./scripts ./scripts
RUN cp -r /usr/local/googletest ./
RUN apk add --update --no-cache gcovr
RUN mkdir build && \ RUN mkdir build && \
cd build && \ cd build && \
cmake -DCMAKE_BUILD_TYPE=Debug .. && \ cmake -DCMAKE_BUILD_TYPE=Debug .. && \
make -j$(nproc) Gradido_LoginServer Gradido_LoginServer_Test make -j$(nproc) Gradido_LoginServer
RUN cd scripts && \ RUN cd scripts && \
chmod +x compile_pot.sh && \ chmod +x compile_pot.sh && \
@ -30,6 +29,22 @@ RUN cd scripts && \
RUN chmod +x build/bin/Gradido_LoginServer RUN chmod +x build/bin/Gradido_LoginServer
ENTRYPOINT ["build/bin/Gradido_LoginServer"] ENTRYPOINT ["build/bin/Gradido_LoginServer"]
#########################################################################################################
# Build test
#########################################################################################################
FROM debug as test
ENV DOCKER_WORKDIR="/code"
WORKDIR ${DOCKER_WORKDIR}
RUN mkdir build && \
cd build && \
cmake -DCMAKE_BUILD_TYPE=Debug .. && \
make -j$(nproc) Gradido_LoginServer_Test
RUN chmod +x build/bin/Gradido_LoginServer_Test
ENTRYPOINT [ "make -C build -j$(nproc) coverage_html" ]
######################################################################################################### #########################################################################################################
# Build release # Build release

View File

@ -9,6 +9,7 @@ WORKDIR ${DOCKER_WORKDIR}
COPY ./CMakeLists.txt.lib ./CMakeLists.txt COPY ./CMakeLists.txt.lib ./CMakeLists.txt
COPY ./scripts ./scripts COPY ./scripts ./scripts
COPY ./cmake ./cmake
CMD cd scripts; ./build_debug.sh; cd ..; ./build/bin/Gradido_LoginServer CMD cd scripts; ./build_debug.sh; cd ..; ./build/bin/Gradido_LoginServer

View File

@ -15,6 +15,15 @@ RUN git clone https://github.com/Kitware/CMake.git --branch=v3.19.8 && \
make -j$(nproc) && \ make -j$(nproc) && \
make install make install
##### lcov #####
FROM alpine-build as alpine-lcov
RUN apk add --no-cache bash perl
RUN git clone https://github.com/linux-test-project/lcov.git --branch=v1.15 && \
cd lcov && \
make install
######### BUILD grpc ############## ######### BUILD grpc ##############
FROM alpine-gxx-cmake as alpine-gxx-grpc FROM alpine-gxx-cmake as alpine-gxx-grpc
@ -70,6 +79,9 @@ COPY --from=alpine-gxx-cmake /usr/local/share/cmake-3.19/Templates /usr/local/sh
COPY --from=alpine-gxx-grpc /usr/local /usr/local COPY --from=alpine-gxx-grpc /usr/local /usr/local
COPY --from=alpine-gxx-grpc /grpc/third_party/googletest /usr/local/googletest COPY --from=alpine-gxx-grpc /grpc/third_party/googletest /usr/local/googletest
# copy from lcov
COPY --from=alpine-lcov /usr/local/bin /usr/local/bin
COPY --from=alpine-lcov /usr/local/etc/lcovrc /usr/local/etc/lcovrc
# COPY from poco # COPY from poco
COPY --from=alpine-gxx-poco /usr/local /usr/local COPY --from=alpine-gxx-poco /usr/local /usr/local

@ -1 +1 @@
Subproject commit 3fc3e5f5b8462f7666952b43381383a79b8b5d92 Subproject commit b95393dcc3640807838e8323b4e600e54d2e8116

View File

@ -38,7 +38,7 @@ void runMysql(std::string sqlQuery)
int load() { int load() {
// init server config, init seed array // init server config, init seed array
std::clog << "[Gradido_LoginServer_Test::load]" << std::endl;
Poco::AutoPtr<Poco::Util::LayeredConfiguration> test_config(new Poco::Util::LayeredConfiguration); Poco::AutoPtr<Poco::Util::LayeredConfiguration> test_config(new Poco::Util::LayeredConfiguration);
try { try {
auto cfg = new Poco::Util::PropertyFileConfiguration("Gradido_LoginServer_Test.properties"); auto cfg = new Poco::Util::PropertyFileConfiguration("Gradido_LoginServer_Test.properties");