Skip to content

Commit 1291bc7

Browse files
authored
Merge pull request #44 from ovcharenko-di/feature/coverage
Доработки для использования замеров покрытия с помощью Coverage41C на агентах swarm и k8s
2 parents e7a928f + 011626c commit 1291bc7

14 files changed

+260
-109
lines changed

.onec.env.example

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ export ONEC_USERNAME=onec
22
export ONEC_PASSWORD=onec
33
export ONEC_VERSION=8.3.18.1520
44
export EDT_VERSION=2021.2.7
5+
export COVERAGE41C_VERSION=''
56

67
export DOCKER_REGISTRY_URL=docker-registry:5000
78
export DOCKER_LOGIN=login

README.md

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
- [oscript](#oscript)
2727
- [vanessa-runner](#vanessa-runner)
2828
- [EDT](#edt)
29-
29+
3030
# Использование
3131

3232
В терминале введите:
@@ -46,7 +46,10 @@ copy .onec.env.bat.example env.bat
4646
* ONEC_USERNAME - учётная запись на http://releases.1c.ru
4747
* ONEC_PASSWORD - пароль для учётной записи на http://releases.1c.ru
4848
* ONEC_VERSION - версия платформы 1С:Преприятия 8.3, которая будет в образе
49+
* EDT_VERSION - версия EDT. Обязательно заполнять только при сборке образов с EDT или при использовании замеров покрытия (см. `COVERAGE41C_VERSION`)
4950
* DOCKER_REGISTRY_URL - Адрес Docker-registry в котором будут храниться образы
51+
* COVERAGE41C_VERSION - версия Coverage41C
52+
Используется при сборке агента скриптами `build-base-*-jenkins-coverage-agent.*`.
5053

5154
Затем экспортируйте все необходимые переменные:
5255

@@ -65,11 +68,13 @@ env.bat
6568

6669
1. Если вам нужны образы для использования в docker-swarm:
6770

68-
* build-base-swarm-jenkins-agent.sh
71+
* build-base-swarm-jenkins-agent.sh (или build-base-swarm-jenkins-coverage-agent.sh с замерами покрытия)
6972
* build-edt-swarm-agent.sh
7073
* build-oscript-swarm-agent.sh
71-
2. Если же вы планируете использовать k8s
72-
* build-base-k8s-jenkins-agent.sh
74+
75+
2. Если же вы планируете использовать k8s:
76+
77+
* build-base-k8s-jenkins-agent.sh (или build-base-k8s-jenkins-coverage-agent.sh с замерами покрытия)
7378
* build-edt-k8s-agent.sh
7479
* build-oscript-k8s-agent.sh
7580

@@ -81,7 +86,7 @@ env.bat
8186

8287
- взять ваш файл nethasp.ini
8388
- создать из него docker config командой `docker config create nethasp.ini ./nethasp.ini`
84-
- в Jenkins, в настройках Docker Agent templates у соответствующих агентов в параметре Configs указать `nethasp.ini:/opt/1cv8/current/conf/nethasp.ini`
89+
- в Jenkins, в настройках Docker Agent templates у соответствующих агентов в параметре Configs указать `nethasp.ini:/opt/1cv8/current/conf/nethasp.ini`
8590

8691
## Сервер
8792
[(Наверх)](#Оглавление)
@@ -211,6 +216,7 @@ docker build --build-arg DOCKER_REGISTRY_URL=${DOCKER_REGISTRY_URL} \
211216
-t ${DOCKER_REGISTRY_URL}/runner:1.7.0 \
212217
-f vanessa-runner/Dockerfile .
213218
```
219+
214220
## EDT
215221
[(Наверх)](#Оглавление)
216222
```bash

build-base-k8s-jenkins-agent.sh

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,4 +87,6 @@ docker build \
8787
-f k8s-jenkins-agent/Dockerfile \
8888
$last_arg
8989

90-
docker push $DOCKER_REGISTRY_URL/base-jenkins-agent:$ONEC_VERSION
90+
if [[ $PUSH_AGENT != "false" ]] ; then
91+
docker push $DOCKER_REGISTRY_URL/base-jenkins-agent:$ONEC_VERSION
92+
fi
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
#!/usr/bin/env bash
2+
set -eo pipefail
3+
4+
if [ -n "${DOCKER_LOGIN}" ] && [ -n "${DOCKER_PASSWORD}" ] && [ -n "${DOCKER_REGISTRY_URL}" ]; then
5+
if ! docker login -u "${DOCKER_LOGIN}" -p "${DOCKER_PASSWORD}" "${DOCKER_REGISTRY_URL}"; then
6+
echo "Docker login failed"
7+
exit 1
8+
fi
9+
else
10+
echo "Skipping Docker login due to missing credentials"
11+
fi
12+
13+
if [ "${DOCKER_SYSTEM_PRUNE}" = 'true' ] ; then
14+
docker system prune -af
15+
fi
16+
17+
last_arg='.'
18+
if [ "${NO_CACHE}" = 'true' ] ; then
19+
last_arg='--no-cache .'
20+
fi
21+
22+
./build-edt.sh
23+
24+
export PUSH_AGENT='false'
25+
./build-base-k8s-jenkins-agent.sh
26+
27+
docker build \
28+
--build-arg DOCKER_REGISTRY_URL=$DOCKER_REGISTRY_URL \
29+
--build-arg BASE_IMAGE=base-jenkins-agent \
30+
--build-arg BASE_TAG=$ONEC_VERSION \
31+
--build-arg EDT_VERSION=$EDT_VERSION \
32+
--build-arg COVERAGE41C_VERSION=$COVERAGE41C_VERSION \
33+
-t $DOCKER_REGISTRY_URL/base-jenkins-coverage-agent:$ONEC_VERSION \
34+
-f coverage41C/Dockerfile \
35+
$last_arg
36+
37+
docker push $DOCKER_REGISTRY_URL/base-jenkins-coverage-agent:$ONEC_VERSION

build-base-swarm-jenkins-agent.bat

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ if %ERRORLEVEL% neq 0 goto end
1010

1111
if %NO_CACHE%=="true" (SET last_arg="--no-cache .") else (SET last_arg=".")
1212

13-
1413
docker build ^
1514
--pull ^
1615
--build-arg DOCKER_REGISTRY_URL=library ^
@@ -95,9 +94,11 @@ docker build ^
9594

9695
if %ERRORLEVEL% neq 0 goto end
9796

98-
docker push %DOCKER_REGISTRY_URL%/base-jenkins-agent:%ONEC_VERSION%
97+
IF NOT "%PUSH_AGENT%"=="false" (
98+
docker push %DOCKER_REGISTRY_URL%/base-jenkins-agent:%ONEC_VERSION%
99+
)
99100

100101
if %ERRORLEVEL% neq 0 goto end
101102

102103
:end
103-
echo End of program.
104+
echo End of program.

build-base-swarm-jenkins-agent.sh

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,4 +87,6 @@ docker build \
8787
-f swarm-jenkins-agent/Dockerfile \
8888
$last_arg
8989

90-
docker push $DOCKER_REGISTRY_URL/base-jenkins-agent:$ONEC_VERSION
90+
if [[ $PUSH_AGENT != "false" ]] ; then
91+
docker push $DOCKER_REGISTRY_URL/base-jenkins-agent:$ONEC_VERSION
92+
fi
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
@echo off
2+
3+
docker login -u %DOCKER_LOGIN% -p %DOCKER_PASSWORD% %DOCKER_REGISTRY_URL%
4+
5+
if %ERRORLEVEL% neq 0 goto end
6+
7+
if %DOCKER_SYSTEM_PRUNE%=="true" docker system prune -af
8+
9+
if %ERRORLEVEL% neq 0 goto end
10+
11+
if %NO_CACHE%=="true" (SET last_arg="--no-cache .") else (SET last_arg=".")
12+
13+
.\build-edt-swarm-agent.bat
14+
15+
set PUSH_AGENT='false'
16+
.\build-base-swarm-jenkins-agent.bat
17+
18+
docker build ^
19+
--build-arg DOCKER_REGISTRY_URL=%DOCKER_REGISTRY_URL% ^
20+
--build-arg BASE_IMAGE=base-jenkins-agent ^
21+
--build-arg BASE_TAG=%ONEC_VERSION% ^
22+
--build-arg EDT_VERSION=%EDT_VERSION% ^
23+
--build-arg COVERAGE41C_VERSION=%COVERAGE41C_VERSION% ^
24+
-t %DOCKER_REGISTRY_URL%/base-jenkins-coverage-agent:%ONEC_VERSION% ^
25+
-f coverage41C/Dockerfile ^
26+
%last_arg%
27+
28+
docker push %DOCKER_REGISTRY_URL%/base-jenkins-coverage-agent:%ONEC_VERSION%
29+
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
#!/usr/bin/env bash
2+
set -eo pipefail
3+
4+
if [ -n "${DOCKER_LOGIN}" ] && [ -n "${DOCKER_PASSWORD}" ] && [ -n "${DOCKER_REGISTRY_URL}" ]; then
5+
if ! docker login -u "${DOCKER_LOGIN}" -p "${DOCKER_PASSWORD}" "${DOCKER_REGISTRY_URL}"; then
6+
echo "Docker login failed"
7+
exit 1
8+
fi
9+
else
10+
echo "Skipping Docker login due to missing credentials"
11+
fi
12+
13+
if [ "${DOCKER_SYSTEM_PRUNE}" = 'true' ] ; then
14+
docker system prune -af
15+
fi
16+
17+
last_arg='.'
18+
if [ "${NO_CACHE}" = 'true' ] ; then
19+
last_arg='--no-cache .'
20+
fi
21+
22+
./build-edt.sh
23+
24+
export PUSH_AGENT='false'
25+
./build-base-swarm-jenkins-agent.sh
26+
27+
docker build \
28+
--build-arg DOCKER_REGISTRY_URL=$DOCKER_REGISTRY_URL \
29+
--build-arg BASE_IMAGE=base-jenkins-agent \
30+
--build-arg BASE_TAG=$ONEC_VERSION \
31+
--build-arg EDT_VERSION=$EDT_VERSION \
32+
--build-arg COVERAGE41C_VERSION=$COVERAGE41C_VERSION \
33+
-t $DOCKER_REGISTRY_URL/base-jenkins-coverage-agent:$ONEC_VERSION \
34+
-f coverage41C/Dockerfile \
35+
$last_arg
36+
37+
docker push $DOCKER_REGISTRY_URL/base-jenkins-coverage-agent:$ONEC_VERSION

build-edt-k8s-agent.sh

Lines changed: 1 addition & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -14,15 +14,6 @@ if [ "${DOCKER_SYSTEM_PRUNE}" = 'true' ] ; then
1414
docker system prune -af
1515
fi
1616

17-
#Если версия EDT >= 2024.1.0, использовать JDK 17
18-
if [[ "$(printf "%s\n" "$EDT_VERSION" "2024" | sort -V | head -n 1)" == "2024" ]]; then
19-
BASE_IMAGE="azul/zulu-openjdk"
20-
BASE_TAG="17"
21-
else
22-
BASE_IMAGE="eclipse-temurin"
23-
BASE_TAG="11"
24-
fi
25-
2617
last_arg='.'
2718
if [ "${NO_CACHE}" = 'true' ] ; then
2819
last_arg='--no-cache .'
@@ -31,29 +22,7 @@ fi
3122
edt_version=$EDT_VERSION
3223
edt_escaped="${edt_version// /_}"
3324

34-
docker build \
35-
--pull \
36-
$no_cache_arg \
37-
--build-arg DOCKER_REGISTRY_URL=library \
38-
--build-arg BASE_IMAGE=ubuntu \
39-
--build-arg BASE_TAG=20.04 \
40-
--build-arg ONESCRIPT_PACKAGES="yard" \
41-
-t $DOCKER_REGISTRY_URL/oscript-downloader:latest \
42-
-f oscript/Dockerfile \
43-
$last_arg
44-
45-
docker build \
46-
--build-arg ONEC_USERNAME=$ONEC_USERNAME \
47-
--build-arg ONEC_PASSWORD=$ONEC_PASSWORD \
48-
--build-arg EDT_VERSION="$EDT_VERSION" \
49-
--build-arg BASE_IMAGE=$BASE_IMAGE \
50-
--build-arg BASE_TAG=$BASE_TAG \
51-
--build-arg DOWNLOADER_REGISTRY_URL=$DOCKER_REGISTRY_URL \
52-
--build-arg DOWNLOADER_IMAGE=oscript-downloader \
53-
--build-arg DOWNLOADER_TAG=latest \
54-
-t $DOCKER_REGISTRY_URL/edt:$edt_escaped \
55-
-f edt/Dockerfile \
56-
$last_arg
25+
./build-edt.sh
5726

5827
docker build \
5928
--build-arg DOCKER_REGISTRY_URL=$DOCKER_REGISTRY_URL \

build-edt-swarm-agent.bat

Lines changed: 1 addition & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -8,46 +8,12 @@ if %DOCKER_SYSTEM_PRUNE%=="true" docker system prune -af
88

99
if %ERRORLEVEL% neq 0 goto end
1010

11-
for /f "delims=." %%a in ("%EDT_VERSION%") do set EDT_MAJOR_VERSION=%aa
12-
if %EDT_MAJOR_VERSION% GEQ "2024" (
13-
set BASE_IMAGE="azul/zulu-openjdk"
14-
set BASE_TAG="17"
15-
) else (
16-
set BASE_IMAGE="eclipse-temurin"
17-
set BASE_TAG="11"
18-
)
19-
20-
if %ERRORLEVEL% neq 0 goto end
21-
2211
if %NO_CACHE%=="true" (SET last_arg="--no-cache .") else (SET last_arg=".")
2312

2413
set edt_version=%EDT_VERSION%
2514
set edt_escaped=%edt_version: =_%
2615

27-
docker build ^
28-
--pull ^
29-
--build-arg DOCKER_REGISTRY_URL=library ^
30-
--build-arg BASE_IMAGE=ubuntu ^
31-
--build-arg BASE_TAG=20.04 ^
32-
--build-arg ONESCRIPT_PACKAGES="yard" ^
33-
-t %DOCKER_REGISTRY_URL%/oscript-downloader:latest ^
34-
-f oscript/Dockerfile ^
35-
%last_arg%
36-
37-
docker build ^
38-
--build-arg ONEC_USERNAME=%ONEC_USERNAME% ^
39-
--build-arg ONEC_PASSWORD=%ONEC_PASSWORD% ^
40-
--build-arg EDT_VERSION=%EDT_VERSION% ^
41-
--build-arg BASE_IMAGE=%BASE_IMAGE% ^
42-
--build-arg BASE_TAG=%BASE_TAG% ^
43-
--build-arg DOCKER_REGISTRY_URL=%DOCKER_REGISTRY_URL% ^
44-
--build-arg DOWNLOADER_IMAGE=oscript-downloader ^
45-
--build-arg DOWNLOADER_TAG=latest ^
46-
-t %DOCKER_REGISTRY_URL%/onec-client:%edt_escaped% ^
47-
-f edt/Dockerfile ^
48-
%last_arg%
49-
50-
if %ERRORLEVEL% neq 0 goto end
16+
.\build-edt.bat
5117

5218
docker build ^
5319
--build-arg DOCKER_REGISTRY_URL=%DOCKER_REGISTRY_URL% ^

build-edt-swarm-agent.sh

Lines changed: 1 addition & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -14,15 +14,6 @@ if [ "${DOCKER_SYSTEM_PRUNE}" = 'true' ] ; then
1414
docker system prune -af
1515
fi
1616

17-
#Если версия EDT >= 2024.1.0, использовать JDK 17
18-
if [[ "$(printf "%s\n" "$EDT_VERSION" "2024" | sort -V | head -n 1)" == "2024" ]]; then
19-
BASE_IMAGE="azul/zulu-openjdk"
20-
BASE_TAG="17"
21-
else
22-
BASE_IMAGE="eclipse-temurin"
23-
BASE_TAG="11"
24-
fi
25-
2617
last_arg='.'
2718
if [ "${NO_CACHE}" = 'true' ] ; then
2819
last_arg='--no-cache .'
@@ -31,29 +22,7 @@ fi
3122
edt_version=$EDT_VERSION
3223
edt_escaped="${edt_version// /_}"
3324

34-
docker build \
35-
--pull \
36-
$no_cache_arg \
37-
--build-arg DOCKER_REGISTRY_URL=library \
38-
--build-arg BASE_IMAGE=ubuntu \
39-
--build-arg BASE_TAG=20.04 \
40-
--build-arg ONESCRIPT_PACKAGES="yard" \
41-
-t $DOCKER_REGISTRY_URL/oscript-downloader:latest \
42-
-f oscript/Dockerfile \
43-
$last_arg
44-
45-
docker build \
46-
--build-arg ONEC_USERNAME=$ONEC_USERNAME \
47-
--build-arg ONEC_PASSWORD=$ONEC_PASSWORD \
48-
--build-arg EDT_VERSION="$EDT_VERSION" \
49-
--build-arg BASE_IMAGE=$BASE_IMAGE \
50-
--build-arg BASE_TAG=$BASE_TAG \
51-
--build-arg DOWNLOADER_REGISTRY_URL=$DOCKER_REGISTRY_URL \
52-
--build-arg DOWNLOADER_IMAGE=oscript-downloader \
53-
--build-arg DOWNLOADER_TAG=latest \
54-
-t $DOCKER_REGISTRY_URL/edt:$edt_escaped \
55-
-f edt/Dockerfile \
56-
$last_arg
25+
./build-edt.sh
5726

5827
docker build \
5928
--build-arg DOCKER_REGISTRY_URL=$DOCKER_REGISTRY_URL \

0 commit comments

Comments
 (0)