add script for publishing to an apt repo using aptly

This commit is contained in:
Hans-Christoph Steiner 2018-06-14 15:48:05 +02:00
parent 2e4fcac191
commit 494870826c
2 changed files with 45 additions and 0 deletions

View File

@ -27,6 +27,7 @@ RUN mkdir -p /usr/share/man/man1 \
COPY gitlab-ci-git-buildpackage /
COPY gitlab-ci-common /usr/share/
COPY gitlab-ci-aptly /usr/bin/
COPY gitlab-ci-enable-sid /usr/bin/
COPY gitlab-ci-enable-experimental /usr/bin/

44
gitlab-ci-aptly Executable file
View File

@ -0,0 +1,44 @@
#!/bin/bash -e
. /usr/share/gitlab-ci-common
# these are all required
! test -z "$CI_PROJECT_URL"
! test -z "$CI_JOB_ID"
! test -z "$CI_COMMIT_SHA"
! test -z "$CI_COMMIT_REF_NAME"
if [ "$CI_JOB_NAME" != "pages" ]; then
echo "$0 must be run in a job called 'pages'!"
exit 1
fi
if [ "$CI_JOB_STAGE" != "deploy" ]; then
echo "$0 must be run in a job in the 'deploy' stage!"
exit 1
fi
JOB_URL="$CI_PROJECT_URL/-/jobs/$CI_JOB_ID"
COMMIT_URL="$CI_PROJECT_URL/commit/$CI_COMMIT_SHA"
BRANCH_URL="$CI_PROJECT_URL/commits/$CI_COMMIT_REF_NAME"
# build apt repo from freshly built .debs
$apt_get update
$apt_get install --no-install-recommends aptly
aptly repo create autobuilt || true
aptly repo add autobuilt ../*.deb
DEB_BUILD_ARCH=`dpkg --print-architecture`
aptly publish repo --skip-signing --distribution autobuilt --architectures all,$DEB_BUILD_ARCH autobuilt \
|| aptly publish update --skip-signing --architectures all,$DEB_BUILD_ARCH autobuilt
rm -rf public
cp -a ~/.aptly/public public
# ease debugging since directory indices are disabled
cd public
printf "<html><head><title>apt source for %s</title></head><body><h1>" $CI_PROJECT_PATH > index.html
date >> index.html
printf '</h1><ul><li>branch <a href="%s">%s</a></li>' $BRANCH_URL $CI_COMMIT_REF_NAME >> index.html
printf '<li>commit <a href="%s">%s</a></li>' $COMMIT_URL $CI_COMMIT_SHA >> index.html
printf '<li><a href="%s">%s</a></li></ul>\n' $JOB_URL $JOB_URL >> index.html
find | xargs printf "<code>%s</code><br/>\n" >> index.html
echo "</ul></body></html>" >> index.html