# ---------------------------------------------------------------------------- #
## \file sbuild.yml
## \author Sebastien Beaugrand
## \sa http://beaugrand.chez.com/
## \copyright CeCILL 2.1 Free Software license
# ---------------------------------------------------------------------------- #
stages:
- build
- package
- rbuild
- rpackage
- rxpackage
variables:
BUILD: Release
HDIR: ../hosts
RSYNC: >
rsync --checksum --delete -a -i
--exclude=*~
--exclude=build
--exclude=build-*
--exclude=__pycache__
--exclude=.git
--exclude=.svn
SSH: vagrant ssh -c
URI: example@ip
UPATH: /home/vagrant
PRIVKEY: $HOME/.ssh/id_rsa
.keychain:
script:
- >
test ! -f $PRIVKEY || test -d /run/lock/.keychain ||
TMPDIR=/run/lock keychain --dir /run/lock --nogui $PRIVKEY
- test ! -f $PRIVKEY || source /run/lock/.keychain/*-sh
build:
stage: build
script:
- mkdir -p build
- cd build
- !reference [.keychain, script]
- test -z "$CLONE" || test -d $REPO || $CLONE
- test -z "$CLONE" || test -d $REPO || mv $REPO-* $REPO
- test -n "$CLONE" || test -d $REPO || $RSYNC -L .. $REPO
- test ! -d ../debian || test -d $REPO/debian || cp -r ../debian $REPO/
package:
stage: package
script:
- cd build
- >
tar czf ${PKG}_$VERSION.orig.tar.gz
--exclude=.git
--exclude=debian
--exclude=obj-x86_64-linux-gnu
--exclude=.pc
$REPO
- cd $REPO
- dpkg-buildpackage --no-sign
rbuild:
stage: rbuild
script:
- PROPATH=$(basename `readlink -f .`)
- !reference [.keychain, script]
- $RSYNC ./ $URI:$UPATH/$PROPATH/
- $RSYNC ../makefiles $URI:$UPATH/
- cd $HDIR/$BHOST
- >
$SSH "cd $UPATH/$PROPATH &&
make BUILDER=$BUILDER BHOST=$BHOST BUILD=$BUILD build"
rpackage:
stage: rpackage
script:
- PROPATH=$(basename `readlink -f .`)
- cd $HDIR/$BHOST
- >
$SSH "cd $UPATH/$PROPATH &&
make BUILDER=$BUILDER BHOST=$BHOST BUILD=$BUILD package"
rxpackage:
stage: rxpackage
variables:
ARCH: arm64
script:
- PROPATH=$(basename `readlink -f .`)
- cd $HDIR/$BHOST
- test -n "$DIST" || DIST="stable"
- >
$SSH "cd $UPATH/$PROPATH/build/$REPO &&
sbuild --build=$ARCH --host=$ARCH --chroot-mode=unshare
-c $UPATH/sbuild/$DIST-$ARCH.tar.xz --no-apt-update
--build-dir=$UPATH/sbuild --extra-package=$UPATH/sbuild"