2025-09-30 12:53:15 +00:00
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
|
|
# CARGO_NET_GIT_FETCH_WITH_CLI=true and --entrypoint /srtool/entrypoint.sh
|
|
|
|
|
# are required to allow srtool to fetch from github private repositories
|
|
|
|
|
|
|
|
|
|
# self-hosted runner uses user `maintenance` to match srtool `builder` user 1001
|
|
|
|
|
# $(~/srtool/uid-gid-mapping.sh 1001 | xargs) is used to map the user and group
|
|
|
|
|
|
2025-10-10 20:57:34 +00:00
|
|
|
# Determine whether to use Podman or Docker
|
|
|
|
|
if [ "${IS_PODMAN}" = "true" ]; then
|
|
|
|
|
CONTAINER_ENGINE="podman"
|
|
|
|
|
USER_FLAG="--userns=keep-id"
|
|
|
|
|
else
|
|
|
|
|
CONTAINER_ENGINE="docker"
|
|
|
|
|
USER_FLAG="--user $(id -u):$(id -g)"
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
# Container command to generate JSON blob of the runtime
|
|
|
|
|
CMD="${CONTAINER_ENGINE} run \
|
2025-09-30 12:53:15 +00:00
|
|
|
-i \
|
|
|
|
|
--rm \
|
2025-10-10 20:57:34 +00:00
|
|
|
${USER_FLAG} \
|
2025-09-30 12:53:15 +00:00
|
|
|
-e CARGO_NET_GIT_FETCH_WITH_CLI=true \
|
2025-10-07 11:45:34 +00:00
|
|
|
-e PACKAGE=datahaven-${GH_WORKFLOW_MATRIX_CHAIN}-runtime \
|
|
|
|
|
-e RUNTIME_DIR=operator/runtime/${GH_WORKFLOW_MATRIX_CHAIN} \
|
2025-09-30 12:53:15 +00:00
|
|
|
-e BUILD_OPTS=${RUNTIME_BUILD_OPTS} \
|
|
|
|
|
-e PROFILE=${RUNTIME_BUILD_PROFILE} \
|
|
|
|
|
-v "${PWD}:/build" \
|
|
|
|
|
${GH_WORKFLOW_MATRIX_SRTOOL_IMAGE}:${GH_WORKFLOW_MATRIX_SRTOOL_IMAGE_TAG} \
|
|
|
|
|
build --app --json -cM"
|
|
|
|
|
|
|
|
|
|
# Here we run the command and stream the output (JSON blob) to a variable
|
|
|
|
|
stdbuf -oL $CMD | {
|
|
|
|
|
while IFS= read -r line
|
|
|
|
|
do
|
|
|
|
|
echo ║ $line
|
|
|
|
|
JSON="$line"
|
|
|
|
|
done
|
|
|
|
|
|
|
|
|
|
echo "json=$JSON" >> $GITHUB_OUTPUT
|
|
|
|
|
|
|
|
|
|
PROP=$(echo $JSON | jq -r .runtimes.compact.prop)
|
|
|
|
|
echo "proposal_hash=$PROP" >> $GITHUB_OUTPUT
|
|
|
|
|
|
|
|
|
|
WASM=$(echo $JSON | jq -r .runtimes.compact.wasm)
|
|
|
|
|
echo "wasm=$WASM" >> $GITHUB_OUTPUT
|
|
|
|
|
|
|
|
|
|
Z_WASM=$(echo $JSON | jq -r .runtimes.compressed.wasm)
|
|
|
|
|
echo "wasm_compressed=$Z_WASM" >> $GITHUB_OUTPUT
|
|
|
|
|
|
|
|
|
|
IPFS=$(echo $JSON | jq -r .runtimes.compact.ipfs)
|
|
|
|
|
echo "ipfs=$IPFS" >> $GITHUB_OUTPUT
|
|
|
|
|
}
|