Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
E
eepm
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
etersoft
eepm
Commits
d8d81b1f
Commit
d8d81b1f
authored
Feb 13, 2026
by
Ivan Mazhukin
Committed by
Vitaly Lipatov
Apr 22, 2026
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
epm ci FULL_TEST: use only 1 container for download
epm ci FULL_TEST: don't use --latest after download stage epm ci: use app_os_type naming epm ci: add fedora anchors & xz to debian
parent
ed2f1f1e
Pipeline
#17427
passed with stage
in 18 seconds
Changes
6
Pipelines
2
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
63 additions
and
28 deletions
+63
-28
README.md
ci/README.md
+15
-5
anchors.yml
ci/gen-ci.d/anchors.yml
+14
-1
download.sh
ci/gen-ci.d/download.sh
+16
-16
tests.sh
ci/gen-ci.d/tests.sh
+1
-1
gen-ci.sh
ci/gen-ci.sh
+3
-3
run_one_ci.sh
ci/run_one_ci.sh
+14
-2
No files found.
ci/README.md
View file @
d8d81b1f
...
@@ -10,7 +10,8 @@
...
@@ -10,7 +10,8 @@
ветку
`ci-generated`
. Для пресетов
`FULL_TEST`
и
`GET_VERSION`
используются
ветку
`ci-generated`
. Для пресетов
`FULL_TEST`
и
`GET_VERSION`
используются
отдельные ветки:
`ci-generated-full-test`
и
`ci-generated-get-version`
.
отдельные ветки:
`ci-generated-full-test`
и
`ci-generated-get-version`
.
-
Сгенерированный пайплайн выполняет:
-
Сгенерированный пайплайн выполняет:
-
download_test:
`ci/prepare_ipfs.sh`
-
download_test:
`ci/prepare_ipfs.sh`
в одном контейнере
`alt:p11`
последовательно для всех приложений
-
publish_download_logs:
`ci/push-ipfs-db.sh`
-
publish_download_logs:
`ci/push-ipfs-db.sh`
-
test:
`ci/run_one_ci.sh`
-
test:
`ci/run_one_ci.sh`
-
summary:
`ci/push-results-ci.sh`
-
summary:
`ci/push-results-ci.sh`
...
@@ -28,9 +29,14 @@
...
@@ -28,9 +29,14 @@
Переменные планировщика (GitLab UI -> CI/CD -> Schedules -> Variables)
Переменные планировщика (GitLab UI -> CI/CD -> Schedules -> Variables)
-
Пресеты:
-
Пресеты:
-
`FULL_TEST`
: полный прогон по IPFS на
`alt:sisyphus`
и
`debian:bookworm`
,
-
`FULL_TEST`
: раздельный полный прогон.
включает
`CI_DOWNLOAD`
,
`CI_USE_IPFS`
и
`CI_IPFS_UPDATE`
, тестирует все
-
Скачивание и обновление
`eget-ipfs-db.txt`
выполняются в
`download_test`
приложения.
на
`alt:p11`
(один контейнер).
-
Тесты запускаются на
`alt:sisyphus`
,
`debian:bookworm`
и
`fedora:latest`
только с
`--ipfs`
(без
`CI_IPFS_UPDATE`
в тестовых job), тестируются все
приложения.
-
Включает
`CI_DOWNLOAD`
и
`CI_USE_IPFS`
.
-
`GET_VERSION`
: сбор версий на
`alt:p11`
, включает
`CI_USE_IPFS`
и
-
`GET_VERSION`
: сбор версий на
`alt:p11`
, включает
`CI_USE_IPFS`
и
`CI_IPFS_UPDATE`
, тестирует все приложения.
`CI_IPFS_UPDATE`
, тестирует все приложения.
-
`CI_APPS`
: список приложений для теста, разделенный пробелами.
-
`CI_APPS`
: список приложений для теста, разделенный пробелами.
...
@@ -38,7 +44,7 @@
...
@@ -38,7 +44,7 @@
-
Если пусто или не задано, берутся все приложения из
`epm play --short`
.
-
Если пусто или не задано, берутся все приложения из
`epm play --short`
.
-
Если задан
`FULL_TEST`
или
`GET_VERSION`
,
`CI_APPS`
игнорируется.
-
Если задан
`FULL_TEST`
или
`GET_VERSION`
,
`CI_APPS`
игнорируется.
-
`CI_SYSTEMS`
: список docker-образов для теста, разделенный пробелами.
-
`CI_SYSTEMS`
: список docker-образов для теста, разделенный пробелами.
-
Пример:
`CI_SYSTEMS=alt:sisyphus debian:bookworm`
-
Пример:
`CI_SYSTEMS=alt:sisyphus debian:bookworm
fedora:latest
`
-
Если пусто или не задано, по умолчанию
`alt:sisyphus debian:bookworm`
.
-
Если пусто или не задано, по умолчанию
`alt:sisyphus debian:bookworm`
.
-
Если задан
`FULL_TEST`
или
`GET_VERSION`
,
`CI_SYSTEMS`
игнорируется.
-
Если задан
`FULL_TEST`
или
`GET_VERSION`
,
`CI_SYSTEMS`
игнорируется.
...
@@ -62,8 +68,12 @@
...
@@ -62,8 +68,12 @@
Переменные IPFS
Переменные IPFS
-
`CI_DOWNLOAD`
: включает стадии загрузки и публикации IPFS базы.
-
`CI_DOWNLOAD`
: включает стадии загрузки и публикации IPFS базы.
-
В стадии
`download_test`
перед каждым запуском
`ci/prepare_ipfs.sh`
используется фиксированная задержка
`90`
секунд.
-
`CI_USE_IPFS`
: включает флаг
`--ipfs`
для
`epm play`
.
-
`CI_USE_IPFS`
: включает флаг
`--ipfs`
для
`epm play`
.
-
`CI_IPFS_UPDATE`
: включает обновление IPFS базы во время теста.
-
`CI_IPFS_UPDATE`
: включает обновление IPFS базы во время теста.
-
Для
`FULL_TEST`
эта переменная игнорируется, чтобы разделить этапы:
скачивание только в
`download_test`
, тесты только через
`--ipfs`
.
-
При включенном
`CI_IPFS_UPDATE`
и отсутствии
`ipfs`
устанавливается
`kubo`
.
-
При включенном
`CI_IPFS_UPDATE`
и отсутствии
`ipfs`
устанавливается
`kubo`
.
-
Для обновления базы используется внешний IPFS API:
-
Для обновления базы используется внешний IPFS API:
`/ip4/91.232.225.49/tcp/5001`
.
`/ip4/91.232.225.49/tcp/5001`
.
...
...
ci/gen-ci.d/anchors.yml
View file @
d8d81b1f
...
@@ -28,13 +28,26 @@
...
@@ -28,13 +28,26 @@
.test_debian_ipfs
:
&test_debian_ipfs
.test_debian_ipfs
:
&test_debian_ipfs
before_script
:
before_script
:
-
./bin/epm update
-
./bin/epm update
-
./bin/epm install -y bash wget ca-certificates coreutils file
-
./bin/epm install -y bash wget ca-certificates coreutils file
xz-utils
-
mkdir -p /var/lib/eepm
-
mkdir -p /var/lib/eepm
-
cp ipfs/eget-ipfs-db.txt /var/lib/eepm/eget-ipfs-db.txt
-
cp ipfs/eget-ipfs-db.txt /var/lib/eepm/eget-ipfs-db.txt
.test_debian_latest
:
&test_debian_latest
.test_debian_latest
:
&test_debian_latest
before_script
:
before_script
:
-
./bin/epm update
-
./bin/epm update
-
./bin/epm install -y bash wget ca-certificates coreutils file xz-utils
-
mkdir -p /var/lib/eepm
.test_fedora_ipfs
:
&test_fedora_ipfs
before_script
:
-
./bin/epm update
-
./bin/epm install -y bash wget ca-certificates coreutils file
-
mkdir -p /var/lib/eepm
-
cp ipfs/eget-ipfs-db.txt /var/lib/eepm/eget-ipfs-db.txt
.test_fedora_latest
:
&test_fedora_latest
before_script
:
-
./bin/epm update
-
./bin/epm install -y bash wget ca-certificates coreutils file
-
./bin/epm install -y bash wget ca-certificates coreutils file
-
mkdir -p /var/lib/eepm
-
mkdir -p /var/lib/eepm
...
...
ci/gen-ci.d/download.sh
View file @
d8d81b1f
download_jobs
()
download_jobs
()
{
{
for
app
in
$apps
;
do
cat
<<
'
EOF
'
local
safe_app
=
"
${
app
//[^a-zA-Z0-9_]/_
}
"
download_all_p11:
cat
<<
EOF
download_
${
safe_app
}
_p11:
stage: download_test
stage: download_test
allow_failure: true
allow_failure: true
image: alt:p11
image: alt:p11
...
@@ -16,7 +13,17 @@ download_${safe_app}_p11:
...
@@ -16,7 +13,17 @@ download_${safe_app}_p11:
- ./bin/epm -y install wget glibc-pthread file patool
- ./bin/epm -y install wget glibc-pthread file patool
- ./bin/epm play --auto --ipfs kubo
- ./bin/epm play --auto --ipfs kubo
script:
script:
- bash ./ci/prepare_ipfs.sh
${
app
}
- mkdir -p ipfs/logs ipfs/errors
- echo "NOTE detailed download output is hidden see artifacts ipfs/logs and ipfs/errors"
EOF
for
app
in
$apps
;
do
cat
<<
EOF
- echo "Sleep 90s before download
${
app
}
"
- sleep 90
- if ! bash ./ci/prepare_ipfs.sh
${
app
}
>/dev/null 2>&1; then echo "WARN download failed
${
app
}
, see ipfs/errors/
${
app
}
-download.log"; else echo "OK download
${
app
}
"; fi
EOF
done
cat
<<
'
EOF
'
artifacts:
artifacts:
when: always
when: always
expire_in: 7 days
expire_in: 7 days
...
@@ -24,7 +31,6 @@ download_${safe_app}_p11:
...
@@ -24,7 +31,6 @@ download_${safe_app}_p11:
- ipfs
- ipfs
EOF
EOF
done
}
}
publish_job
()
publish_job
()
...
@@ -37,21 +43,15 @@ publish_download_logs:
...
@@ -37,21 +43,15 @@ publish_download_logs:
- access
- access
when: always
when: always
dependencies:
dependencies:
EOF
- download_all_p11
for
app
in
$apps
;
do
local
safe_app
=
"
${
app
//[^a-zA-Z0-9_]/_
}
"
cat
<<
EOF
- download_
${
safe_app
}
_p11
EOF
done
cat
<<
'
EOF
'
before_script:
before_script:
- ./bin/epm -y repo set etersoft
- ./bin/epm -y repo set etersoft
- ./bin/epm update
- ./bin/epm update
- ./bin/epm -y install git rsync
- ./bin/epm -y install git rsync
script:
script:
- echo "Publishing logs and IPFS DB"
- echo "Publishing logs and IPFS DB"
- ls -R ipfs
- echo "IPFS files
$(
find ipfs
-type
f |
wc
-l
)
"
- du -sh ipfs || true
- bash ./ci/push-ipfs-db.sh
- bash ./ci/push-ipfs-db.sh
artifacts:
artifacts:
when: always
when: always
...
...
ci/gen-ci.d/tests.sh
View file @
d8d81b1f
...
@@ -65,7 +65,7 @@ tests()
...
@@ -65,7 +65,7 @@ tests()
fi
fi
cat
<<
EOF
cat
<<
EOF
test_
${
safe_app
}
_
${
safe_system
}
:
${
safe_app
}
_
${
safe_system
}
_test
:
<<: [*
${
template_anchor
}
, *
${
anchor
}
]
<<: [*
${
template_anchor
}
, *
${
anchor
}
]
image:
${
system
}
image:
${
system
}
EOF
EOF
...
...
ci/gen-ci.sh
View file @
d8d81b1f
...
@@ -24,10 +24,10 @@ RESULTS_DIR="experiments"
...
@@ -24,10 +24,10 @@ RESULTS_DIR="experiments"
RESULTS_LABEL
=
"custom"
RESULTS_LABEL
=
"custom"
if
[
-n
"
$FULL_TEST
"
]
;
then
if
[
-n
"
$FULL_TEST
"
]
;
then
systems
=
"alt:sisyphus debian:bookworm"
systems
=
"alt:sisyphus debian:bookworm
fedora:latest
"
USE_DOWNLOAD
=
1
USE_DOWNLOAD
=
1
USE_IPFS
=
1
USE_IPFS
=
1
USE_IPFS_UPDATE
=
1
USE_IPFS_UPDATE
=
0
CI_APPS
=
""
CI_APPS
=
""
RESULTS_DIR
=
"epm-results"
RESULTS_DIR
=
"epm-results"
RESULTS_LABEL
=
"full-test"
RESULTS_LABEL
=
"full-test"
...
@@ -67,7 +67,7 @@ if [ -n "${CI_USE_IPFS:-}" ] || [ "$USE_DOWNLOAD" -eq 1 ]; then
...
@@ -67,7 +67,7 @@ if [ -n "${CI_USE_IPFS:-}" ] || [ "$USE_DOWNLOAD" -eq 1 ]; then
USE_IPFS
=
1
USE_IPFS
=
1
fi
fi
if
[
-n
"
${
CI_IPFS_UPDATE
:-}
"
]
;
then
if
[
-n
"
${
CI_IPFS_UPDATE
:-}
"
]
&&
[
-z
"
$FULL_TEST
"
]
;
then
USE_IPFS_UPDATE
=
1
USE_IPFS_UPDATE
=
1
USE_IPFS
=
1
USE_IPFS
=
1
fi
fi
...
...
ci/run_one_ci.sh
View file @
d8d81b1f
...
@@ -31,10 +31,22 @@ cd "$REPO_ROOT/bin"
...
@@ -31,10 +31,22 @@ cd "$REPO_ROOT/bin"
# IPFS
# IPFS
PLAY_OPTS
=
"--latest"
PLAY_OPTS
=
"--latest"
SPLIT_DOWNLOAD_MODE
=
0
IPFS_UPDATE_ENABLED
=
0
if
[
-n
"
${
CI_USE_IPFS
:-}
"
]
&&
[
-f
"
$PROJECT_DIR
/ipfs/eget-ipfs-db.txt"
]
;
then
PLAY_OPTS
=
""
SPLIT_DOWNLOAD_MODE
=
1
fi
if
[
-n
"
${
CI_USE_IPFS
:-}
"
]
&&
[
-n
"
${
CI_IPFS_UPDATE
:-}
"
]
&&
[
"
$SPLIT_DOWNLOAD_MODE
"
-eq
0
]
;
then
IPFS_UPDATE_ENABLED
=
1
fi
if
[
-n
"
${
CI_USE_IPFS
:-}
"
]
;
then
if
[
-n
"
${
CI_USE_IPFS
:-}
"
]
;
then
PLAY_OPTS
=
"
$PLAY_OPTS
--ipfs"
PLAY_OPTS
=
"
$PLAY_OPTS
--ipfs"
if
[
-n
"
${
CI_IPFS_UPDATE
:-}
"
]
;
then
if
[
"
$IPFS_UPDATE_ENABLED
"
-eq
1
]
;
then
export
EGET_IPFS_FORCE_LOAD
=
1
export
EGET_IPFS_FORCE_LOAD
=
1
export
EGET_IPFS_API
=
/ip4/91.232.225.49/tcp/5001
export
EGET_IPFS_API
=
/ip4/91.232.225.49/tcp/5001
...
@@ -51,7 +63,7 @@ fi
...
@@ -51,7 +63,7 @@ fi
IPFS_DB_CAPTURE
=
0
IPFS_DB_CAPTURE
=
0
EGET_DB_PATH
=
"/var/lib/eepm/eget-ipfs-db.txt"
EGET_DB_PATH
=
"/var/lib/eepm/eget-ipfs-db.txt"
PRE_DB_SNAPSHOT
=
""
PRE_DB_SNAPSHOT
=
""
if
[
-n
"
${
CI_USE_IPFS
:-}
"
]
&&
[
-n
"
${
CI_IPFS_UPDATE
:-}
"
]
;
then
if
[
"
$IPFS_UPDATE_ENABLED
"
-eq
1
]
;
then
IPFS_DB_CAPTURE
=
1
IPFS_DB_CAPTURE
=
1
mkdir
-p
"
$IPFS_PARTS_DIR
"
mkdir
-p
"
$IPFS_PARTS_DIR
"
if
[
-f
"
$EGET_DB_PATH
"
]
;
then
if
[
-f
"
$EGET_DB_PATH
"
]
;
then
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment