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>
29 lines
1.3 KiB
Bash
Executable File
29 lines
1.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
||
# Компиляция всех контрактов кооперативной экономики через CDT.
|
||
#
|
||
# ВАЖНО: скрипт запускается УЖЕ внутри окружения с установленным CDT —
|
||
# тулчейн ожидается по пути /cdt/build/lib/cmake/cdt/CDTWasmToolchain.cmake
|
||
# (он захардкожен в CMakeLists.txt). Здесь НЕТ docker — только cmake/make.
|
||
#
|
||
# Два способа подготовить это окружение:
|
||
# - локально: build-all.sh оборачивает скрипт в `docker run dicoop/blockchain:latest`
|
||
# (в образе CDT уже лежит в /cdt/build);
|
||
# - в CI: CDT ставится из .deb (C9S/cdt), а /cdt/build симлинкуется на
|
||
# /usr/opt/cdt/<ver> (см. .github/workflows/release.yaml).
|
||
#
|
||
# Один источник cmake-флагов для обоих путей — чтобы локальная и CI-сборка
|
||
# не разъезжались.
|
||
set -euo pipefail
|
||
|
||
mode="${1:-prod}"
|
||
if [ "$mode" = "test" ]; then
|
||
is_testnet="ON"
|
||
else
|
||
is_testnet="OFF"
|
||
fi
|
||
|
||
mkdir -p build
|
||
cd build
|
||
cmake -DBUILD_TARGET= -DTEST_TARGET= -DVERBOSE=ON -DBUILD_TESTS=OFF -DIS_TESTNET="$is_testnet" ..
|
||
make
|