... | @@ -38,6 +38,82 @@ |
... | @@ -38,6 +38,82 @@ |
|
где hash - это явно указываемый хэш объединённого объекта, который выводит команда merge-build.
|
|
где hash - это явно указываемый хэш объединённого объекта, который выводит команда merge-build.
|
|
|
|
|
|
|
|
|
|
|
|
#### Интеграция Svace с Docker
|
|
|
|
|
|
|
|
_Инструкция взята из проекта community.ispras.ru_
|
|
|
|
|
|
|
|
<details><summary>Так собираем докер-образ с анализатором Svace и сервером хранения истории Svacer</summary>
|
|
|
|
|
|
|
|
```
|
|
|
|
FROM ubuntu:20.04
|
|
|
|
|
|
|
|
LABEL maintainer="akuzmin@ispras.ru"
|
|
|
|
|
|
|
|
ARG DEBIAN_FRONTEND=noninteractive
|
|
|
|
|
|
|
|
RUN apt update && apt install -y unzip zip tzdata curl ca-certificates wget build-essential && \
|
|
|
|
rm -rf /var/lib/apt/lists/* && \
|
|
|
|
curl -o /opt/svace-3.3.1-x64-linux.tar.bz2 'https://nextcloud.ispras.ru/index.php/s/SiwjXGrTRXmSr7f/download?path=%2FSvace&files=svace-3.3.1-x64-linux.tar.bz2' && \
|
|
|
|
cd /opt && tar -xjf svace-3.3.1-x64-linux.tar.bz2 && ln -s svace-3.3.1-x64-linux svace && rm -f svace-3.3.1-x64-linux.tar.bz2 && \
|
|
|
|
curl -o /tmp/svacer-release.zip 'https://nextcloud.ispras.ru/index.php/s/x4r4cMJAMr5RZtd/download?path=%2Fsvacer-release-5-2-1&files=svacer_release-5-2-1_2022-07-22_10-08.zip' && \
|
|
|
|
cd /tmp && unzip svacer-release.zip && mv svacer-release*/bin/svacer /usr/bin && rm -rf svacer-release*
|
|
|
|
|
|
|
|
CMD /bin/bash
|
|
|
|
```
|
|
|
|
</details>
|
|
|
|
|
|
|
|
<details><summary>Кладем его в Gitlab Container Registry</summary>
|
|
|
|
|
|
|
|
```
|
|
|
|
build-docker:
|
|
|
|
tags:
|
|
|
|
- static
|
|
|
|
- shell
|
|
|
|
- linux
|
|
|
|
|
|
|
|
script:
|
|
|
|
- docker build --tag registry.community.ispras.ru/support/docker-images/ubuntu-svace-svacer:focal-3.3.1-5.2.1 .
|
|
|
|
- docker tag registry.community.ispras.ru/support/docker-images/ubuntu-svace-svacer:focal-3.3.1-5.2.1 registry.community.ispras.ru/support/docker-images/ubuntu-svace-svacer:latest
|
|
|
|
- docker login -u gitlab+deploy-token-2 -p <skipped> $CI_REGISTRY
|
|
|
|
- docker push registry.community.ispras.ru/support/docker-images/ubuntu-svace-svacer:focal-3.3.1-5.2.1
|
|
|
|
- docker push registry.community.ispras.ru/support/docker-images/ubuntu-svace-svacer:latest
|
|
|
|
```
|
|
|
|
</details>
|
|
|
|
|
|
|
|
<details><summary>И потом этот образ используем в CI для сборки и анализа проекта</summary>
|
|
|
|
|
|
|
|
```
|
|
|
|
image: registry.community.ispras.ru/support/docker-images/ubuntu-svace-svacer:focal-3.3.0-5.2.1
|
|
|
|
|
|
|
|
analyze:
|
|
|
|
stage: build
|
|
|
|
|
|
|
|
tags:
|
|
|
|
- static
|
|
|
|
- docker
|
|
|
|
- linux
|
|
|
|
|
|
|
|
script:
|
|
|
|
- apt update
|
|
|
|
- apt install -y libreadline6-dev
|
|
|
|
# this lib is not required to build bash, it's just to test that permissions are enough to install anything with apt
|
|
|
|
- /opt/svace/bin/svace init
|
|
|
|
- ./configure
|
|
|
|
- /opt/svace/bin/svace build make -j16
|
|
|
|
- /opt/svace/bin/svace analyze --quiet
|
|
|
|
- /usr/bin/svacer import --svace /opt/svace/bin/svace --project $CI_PROJECT_TITLE --branch $CI_COMMIT_REF_NAME --snapshot "$CI_COMMIT_SHORT_SHA - `date -R`" .
|
|
|
|
- /usr/bin/svacer upload --host svacer.community.ispras.ru --port 8090
|
|
|
|
- tar -czvf svace-dir.tar.gz .svace-dir
|
|
|
|
|
|
|
|
artifacts:
|
|
|
|
name: "svacer_dir_$CI_JOB_NAME-$CI_COMMIT_REF_NAME"
|
|
|
|
paths:
|
|
|
|
- svace-dir.tar.gz
|
|
|
|
when: on_success
|
|
|
|
expire_in: 14 days
|
|
|
|
```
|
|
|
|
</details>
|
|
|
|
|
|
|
|
|
|
#### Миграция разметки в другую ветку
|
|
#### Миграция разметки в другую ветку
|
|
|
|
|
... | | ... | |