.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}" .rdep-build-script: &rdep-build-script | 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 \ build-essential apt -y build-dep ${REVERSE_DEP} # install built packages dpkg -i ${WORKING_DIR}/*.deb || apt -y -f install # 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="${WORKING_DIR}/${REVERSE_DEP}.build" # Build package as user salsaci su salsaci -c "eatmydata apt source -b ${REVERSE_DEP}" |& OUTPUT_FILENAME=${BUILD_LOGFILE} filter-output # 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 except: variables: - $SALSA_CI_ENABLE_REVERSE_DEPENDENCY_BUILD !~ /^(1|yes|true)$/ - $CI_COMMIT_TAG != null && $SALSA_CI_ENABLE_PIPELINE_ON_TAGS !~ /^(1|yes|true)$/ - $CI_MERGE_REQUEST_ID != null 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: - job: build artifacts: true build-rdep-cqrlog: variables: REVERSE_DEP: cqrlog extends: .rdep-build-definition build-rdep-cubicsdr: variables: REVERSE_DEP: cubicsdr extends: .rdep-build-definition build-rdep-direwolf: variables: REVERSE_DEP: direwolf extends: .rdep-build-definition build-rdep-fldigi: variables: REVERSE_DEP: fldigi extends: .rdep-build-definition build-rdep-freedv: variables: REVERSE_DEP: freedv extends: .rdep-build-definition build-rdep-grig: variables: REVERSE_DEP: grig extends: .rdep-build-definition build-rdep-js8call: variables: REVERSE_DEP: js8call extends: .rdep-build-definition build-rdep-jtdx: variables: REVERSE_DEP: jtdx extends: .rdep-build-definition build-rdep-klog: variables: REVERSE_DEP: klog extends: .rdep-build-definition build-rdep-qsstv: variables: REVERSE_DEP: qsstv extends: .rdep-build-definition build-rdep-soapyaudio: variables: REVERSE_DEP: soapyaudio extends: .rdep-build-definition build-rdep-soundmodem: variables: REVERSE_DEP: soundmodem extends: .rdep-build-definition build-rdep-tlf: variables: REVERSE_DEP: tlf extends: .rdep-build-definition build-rdep-tucnak: variables: REVERSE_DEP: tucnak extends: .rdep-build-definition build-rdep-wsjtx: variables: REVERSE_DEP: wsjtx extends: .rdep-build-definition build-rdep-xlog: variables: REVERSE_DEP: xlog extends: .rdep-build-definition