Carlos Mogas da Silva
8841a1df54
All checks were successful
Build docker image / build-and-publish (push) Successful in 3m46s
Forgejo Runner doesn't support dynamic matrix jobs (where the input comes from output of another job). To work around this, accept a list of spec files to process and run the same thing over and over. Might still have to fix the output.
56 lines
1.5 KiB
Bash
56 lines
1.5 KiB
Bash
#!/bin/bash
|
|
|
|
# SPECS should be a JSON array of all the to-process spec files
|
|
# Forgejo runner doesn't support dynamic matrix jobs so, this has to be made this way
|
|
# Convert the JSON array to a bash array and iterate over it
|
|
readarray -t SPECS < <(echo ${INPUT_SPECS} | jq -c .[] | tr -d '"')
|
|
echo "::debug::specs: ${SPECS}"
|
|
SYSTEM=${INPUT_SYSTEM}
|
|
ARCH=${INPUT_ARCH}
|
|
NOCHECK=${INPUT_NOCHECK}
|
|
|
|
|
|
for SPEC in ${SPECS[@]}; do
|
|
SPEC_NAME=$(basename ${SPEC})
|
|
CONFIGURATION="${SYSTEM}-${ARCH}"
|
|
|
|
echo "::debug::spec file: ${INPUT_SPEC}"
|
|
echo "::debug::target: ${INPUT_SYSTEM}-${INPUT_ARCH}"
|
|
echo "::debug::nocheck: ${INPUT_NOCHECK}"
|
|
|
|
echo "Building ${SPEC_NAME} for ${CONFIGURATION}"
|
|
|
|
echo "::group::Building SRPM"
|
|
cd $(dirname ${SPEC})
|
|
|
|
spectool -g ${SPEC}
|
|
if [ $? -ne 0 ]; then
|
|
echo "::error::Failed to download sources"
|
|
exit 1
|
|
fi
|
|
|
|
mock -r "${SYSTEM}-${ARCH}" --buildsrpm --spec ${SPEC_NAME} --sources . --resultdir result
|
|
if [ $? -ne 0 ]; then
|
|
echo "::error::Failed to build SRPM"
|
|
exit 1
|
|
fi
|
|
echo "::endgroup::"
|
|
|
|
SRPM=$(grep Wrote result/build.log | cut -d" " -f 2)
|
|
|
|
echo "::group::Building RPM"
|
|
OPTS=""
|
|
if [ ${NOCHECK,,} == "true"]; then
|
|
OPTS="${OPTS} --nocheck"
|
|
fi
|
|
mock -r "${SYSTEM}-${ARCH}" --resultdir result ${OPTS} ${SRPM}
|
|
if [ $? -ne 0 ]; then
|
|
echo "::error::Failed to build RPM"
|
|
exit 1
|
|
fi
|
|
echo "::endgroup::"
|
|
|
|
RPMS=i$(grep Wrote result/build.log | grep "/RPMS/" | cut -d" " -f 2)
|
|
echo "::debug::rpms: ${RPMS}"
|
|
echo "rpms=${RPMS}" >> ${GITHUB_OUTPUT}
|
|
done
|