summaryrefslogtreecommitdiffstats
path: root/debian/salsa-ci.yml
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 08:09:27 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 08:09:27 +0000
commit45acc200b4c8b4e03d0d8cb46258ef21720e90c3 (patch)
tree75adeca7e23385cb92ef6211455bc6bf3b5b231f /debian/salsa-ci.yml
parentAdding upstream version 20230625. (diff)
downloadfirmware-nonfree-45acc200b4c8b4e03d0d8cb46258ef21720e90c3.tar.xz
firmware-nonfree-45acc200b4c8b4e03d0d8cb46258ef21720e90c3.zip
Adding debian version 20230625-2.debian/20230625-2
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'debian/salsa-ci.yml')
-rw-r--r--debian/salsa-ci.yml146
1 files changed, 146 insertions, 0 deletions
diff --git a/debian/salsa-ci.yml b/debian/salsa-ci.yml
new file mode 100644
index 0000000..4083bd0
--- /dev/null
+++ b/debian/salsa-ci.yml
@@ -0,0 +1,146 @@
+include:
+ - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/salsa-ci.yml
+
+variables:
+ RELEASE: 'unstable'
+ # We only build arch:all packages
+ SALSA_CI_DISABLE_BLHC: 'true'
+ SALSA_CI_DISABLE_BUILD_PACKAGE_I386: 'true'
+ SALSA_CI_DISABLE_BUILD_PACKAGE_ANY: 'true'
+ SALSA_CI_DISABLE_CROSSBUILD_ARM64: 'true'
+ # We have to bump the version in source preparation, not later
+ SALSA_CI_DISABLE_VERSION_BUMP: 'true'
+
+# The common Salsa CI pipeline relies on keeping the unpacked source
+# as an artifact, but in our case this is far too large for the
+# current limits on Salsa (salsa-ci-team/pipeline#195). So we
+# redefine the source extraction and build steps to use packed source.
+
+# Our modified extract-source and build jobs
+
+extract-source:
+ stage: provisioning
+ image: $SALSA_CI_IMAGES_BASE
+ cache:
+ key: "orig-${RELEASE}"
+ paths:
+ - orig
+ extends:
+ - .artifacts-default-expire
+ except:
+ variables:
+ - $CI_COMMIT_TAG != null
+ script:
+ # Move orig tarball cache
+ - |
+ if [ -d orig ]; then
+ mv orig/* ..
+ rmdir orig
+ fi
+
+ # Install dependencies of gencontrol.py and debian/rules orig
+ # plus origtargz
+ - apt-get update
+ - eatmydata apt-get install --no-install-recommends -y make
+ - |
+ eatmydata apt-get install --no-install-recommends -y \
+ debhelper \
+ devscripts \
+ git \
+ python3 \
+ python3-jinja2 \
+ quilt \
+ rsync \
+ $(debian/rules linux-support-name)
+
+ - version=$(dpkg-parsechangelog -SVersion)
+ - upstream_version=$(echo $version | sed 's/-[^-]*$//')
+
+ # Merge upstream source
+ - origtargz -dt
+ - debian/rules orig
+
+ # Fudge source version and suite *before* gencontrol.py
+ - sed -i -e '1 s/) [^;]*/+salsaci) UNRELEASED/' debian/changelog
+ - version=${version}+salsaci
+
+ # Run gencontrol.py
+ # - create temporary log
+ - log="$(mktemp)"
+ # - invoke debian/control-real rule and log output
+ - |
+ rc=0; debian/rules debian/control-real >"$log" 2>&1 || rc=$?
+ - cat "$log"
+ # - check for success message and error code
+ - test $rc = 2
+ - grep -q 'been generated SUCCESSFULLY' "$log"
+
+ # Put packed source in artifacts
+ - dpkg-buildpackage -uc -us -S -sa -d
+ - mkdir -p ${WORKING_DIR}
+ - cp ../firmware-nonfree_${upstream_version}.orig.tar.xz ${WORKING_DIR}
+ - mv ../firmware-nonfree_${version}.dsc ../firmware-nonfree_${version}.debian.tar.xz ../firmware-nonfree_${version}_source.buildinfo ../firmware-nonfree_${version}_source.changes ${WORKING_DIR}
+
+ # Move orig tarballs back to where GitLab wants them
+ - mkdir orig
+ - mv ../*.orig.tar.* orig
+
+build:
+ stage: build
+ image: $SALSA_CI_IMAGES_BASE
+ cache:
+ key: "build-${BUILD_ARCH}_${HOST_ARCH}"
+ paths:
+ - .ccache
+ extends:
+ - .artifacts-default-expire
+ except:
+ variables:
+ - $CI_COMMIT_TAG != null
+ variables:
+ CCACHE_TMP_DIR: ${CI_PROJECT_DIR}/../.ccache
+ CCACHE_WORK_DIR: ${CI_PROJECT_DIR}/.ccache
+ DB_BUILD_PARAM: ${SALSA_CI_DPKG_BUILDPACKAGE_ARGS}
+ DB_BUILD_TYPE: all
+ artifacts:
+ exclude:
+ - ${WORKING_DIR}/${SOURCE_DIR}/**/*
+ script:
+ # Unpack the source
+ - |
+ apt-get update && eatmydata apt-get install --no-install-recommends -y \
+ dpkg-dev
+ - dpkg-source -x ${WORKING_DIR}/*.dsc ${WORKING_DIR}/${SOURCE_DIR}
+
+ # Do the same as the common .build-definition script
+ - !reference [.build-before-script]
+ - !reference [.build-script]
+ - mv ${CCACHE_TMP_DIR} ${CCACHE_WORK_DIR}
+ # Do not artifact the source package again, we're keeping the one from extract-source
+ - rm -f ${WORKING_DIR}/*.orig.tar.* ${WORKING_DIR}/*.dsc ${WORKING_DIR}/*.debian.tar.* ${WORKING_DIR}/*_source.changes
+ dependencies:
+ - extract-source
+
+# The folllowing jobs are the standard tests, excluding:
+# - any that require building again
+# - blhc, since we don't compile anything
+
+lintian:
+ extends: .test-lintian
+ needs:
+ - !reference [.test-lintian,needs]
+ - job: extract-source
+ artifacts: true
+
+piuparts:
+ extends: .test-piuparts
+ variables:
+ # Skip the EULA questions in these two packages
+ FIRMWARE_IPW2X00_LICENSE_READ_AND_ACCEPTED: 'yes'
+ FIRMWARE_IVTV_LICENSE_READ_AND_ACCEPTED: 'yes'
+
+missing-breaks:
+ extends: .test-missing-breaks
+
+rc-bugs:
+ extends: .test-rc-bugs