966dcc45f2
Шаг компиляции контрактов в release.yaml падал под Gitea act_runner: build-all.sh монтирует $(pwd):/project в sibling-контейнер, но job сам исполняется в контейнере → хостовый демон не видит путь, /project пуст, cmake падает "no CMakeLists.txt". Релиз не собирался зелёным (runs #144, #158). - build_contracts_cdt.sh: чистый cmake/make без docker (общий источник флагов). - build-all.sh: тонкая docker-обёртка над ним для локальной сборки. - release.yaml: вместо pull образа + build-all.sh — установка cdt v4.2.0 .deb в окружение job'а + симлинк /cdt/build → /usr/opt/cdt/4.2.0 (сводит хардкод toolchain-путь CMakeLists без его правки) + вызов build_contracts_cdt.sh. Компиляция в самом job-контейнере, без вложенного docker. sudo-агностично — одинаково на GitHub-VM и Gitea-контейнере. - Убран избыточный typecheck-гейт из release; typecheck.yaml остаётся PR-гейтом. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
14 lines
583 B
Bash
Executable File
14 lines
583 B
Bash
Executable File
#!/usr/bin/env bash
|
|
# Локальная сборка всех контрактов: оборачивает build_contracts_cdt.sh в
|
|
# CDT-образ. Сам cmake/make живёт в build_contracts_cdt.sh — он же
|
|
# используется в CI (там CDT ставится из .deb, без docker), поэтому
|
|
# флаги сборки в одном месте и не разъезжаются.
|
|
|
|
mode="${1:-prod}"
|
|
|
|
docker run --rm --name cdt \
|
|
--volume "$(pwd):/project" \
|
|
-w /project \
|
|
dicoop/blockchain:latest \
|
|
/bin/bash -c "./build_contracts_cdt.sh $mode"
|