1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
|
.rdep-build-before-script: &rdep-build-before-script |
# Reported in https://salsa.debian.org/salsa-ci-team/pipeline/issues/104,
# GitLab can only expand variables once. So at the beginning CCACHE_WORK_DIR
# was assigned to `${WORKING_DIR}/.ccache`, and it will be expanded as
# `$CI_PROJECT_DIR/debian/output/.ccache`, so it creates a folder named
# "\$CI_PROJECT_DIR", which is then saved as build cache. To allow smooth
# transition, that wrongly named folder has to be removed:
rm -rf '$CI_PROJECT_DIR'
# salsa-ci-team/pipeline#107
rm -rf ${CI_PROJECT_DIR}/debian/output/.ccache
mkdir -p ${WORKING_DIR} ${CCACHE_WORK_DIR}
# https://salsa.debian.org/salsa-ci-team/pipeline/-/merge_requests/230
rm -rf ${CCACHE_TMP_DIR}
mv ${CCACHE_WORK_DIR} ${CCACHE_TMP_DIR}
add_extra_repository.sh -v -e "${SALSA_CI_EXTRA_REPOSITORY}" -k "${SALSA_CI_EXTRA_REPOSITORY_KEY}"
echo "deb [trusted=yes] $PARENT_APTLY_REPO" | tee /etc/apt/sources.list.d/pkga.list
apt-get update
.rdep-build-script: &rdep-build-script |
set -x
export CCACHE_DIR=${CCACHE_TMP_DIR}
# Add deb-src entries
sed -i 's/^Types:.*/Types: deb deb-src/' /etc/apt/sources.list.d/debian.sources
apt-get update && eatmydata apt-get install --no-install-recommends -y \
aptitude \
devscripts \
ccache \
equivs \
fakeroot \
build-essential \
apt-utils
apt-cache policy node-typescript
# install build dep
apt -y build-dep ${REVERSE_DEP}
# download source
cd ${WORKING_DIR}
# Generate ccache links
dpkg-reconfigure ccache
PATH="/usr/lib/ccache/:${PATH}"
# Reset ccache stats
ccache -z
# Create salsaci user and fix permissions
useradd salsaci
chown -R salsaci. ${WORKING_DIR} ${CCACHE_DIR}
# Define buildlog filename
BUILD_LOGFILE="${CI_PROJECT_DIR}/${REVERSE_DEP}.build"
# Build package as user salsaci
ret=0
apt-get source "${REVERSE_DEP}"
chown -R salsaci "${REVERSE_DEP}"-*
runuser -u salsaci -- env --chdir "${REVERSE_DEP}"-* eatmydata dpkg-buildpackage --build=any,all --unsigned-changes |& OUTPUT_FILENAME=${BUILD_LOGFILE} filter-output || ret=$?
if [ "$ret" -eq 0 ]; then
echo "building $REVERSE_DEP succeeded" > /dev/stderr
else
echo "building $REVERSE_DEP failed" > /dev/stderr
exit "$ret"
fi
# Restore PWD to ${WORKING_DIR}
cd ${WORKING_DIR}
rm -rf ${WORKING_DIR}/${REVERSE_DEP}*
# Print ccache stats on job log
ccache -s
.rdep-build-definition: &rdep-build-definition
stage: test
image: ${SALSA_CI_IMAGES_BASE}
cache:
key: "${REVERSE_DEP}-build"
paths:
- .ccache
variables:
CCACHE_TMP_DIR: ${CI_PROJECT_DIR}/../.ccache
CCACHE_WORK_DIR: ${CI_PROJECT_DIR}/.ccache
script:
- *rdep-build-before-script
- *rdep-build-script
- mv ${CCACHE_TMP_DIR} ${CCACHE_WORK_DIR}
needs:
- pipeline: $PARENT_PIPELINE_ID
job: build
artifacts: true
|