diff options
author | Mike Gabriel <mike.gabriel@das-netzwerkteam.de> | 2011-12-21 00:02:55 +0100 |
---|---|---|
committer | NWT Administrator <nwt-admin@minobo.das-netzwerkteam.de> | 2011-12-21 00:03:33 +0100 |
commit | 62b47aba27c20caf5d4fb2dea10c3ea1a724d3dd (patch) | |
tree | 8228b66e33987542b8a93ec6ebe66af252884bcc /bin | |
parent | baf582456e485e2e4272c0b888f9ccdb10cde499 (diff) | |
download | buildscripts-62b47aba27c20caf5d4fb2dea10c3ea1a724d3dd.tar.gz buildscripts-62b47aba27c20caf5d4fb2dea10c3ea1a724d3dd.tar.bz2 buildscripts-62b47aba27c20caf5d4fb2dea10c3ea1a724d3dd.zip |
fixed scripts, configured other build servers
Diffstat (limited to 'bin')
-rwxr-xr-x | bin/build-all-packages | 2 | ||||
-rwxr-xr-x | bin/build-package | 113 | ||||
-rwxr-xr-x | bin/gitcreate | 2 |
3 files changed, 66 insertions, 51 deletions
diff --git a/bin/build-all-packages b/bin/build-all-packages index 3757c4b..86e72be 100755 --- a/bin/build-all-packages +++ b/bin/build-all-packages @@ -25,7 +25,7 @@ LIB_PACKAGES_MAIN= APP_PACKAGES_NIGHTLY= APP_PACKAGES_MAIN= -PREFIX=$(echo $0 | cut -d"-" -f1) +PREFIX=$(echo `basename $0` | cut -d"-" -f1) test -f ~/.buildscripts/$PREFIX.conf && . ~/.buildscripts/$PREFIX.conf || { echo "$0 has no valid context prefix..."; exit -1; } test -z $1 && { echo "usage: $(basename $0) [{$COMPONENT_MAIN,$COMPONENT_NIGHTLY}]"; exit -1; } diff --git a/bin/build-package b/bin/build-package index f9c1648..cc7a9d4 100755 --- a/bin/build-package +++ b/bin/build-package @@ -32,10 +32,11 @@ ubuntu: lucid precise\n\ COMPONENT_MAIN="main" COMPONENT_NIGHTLY="nightly" REPOS_SERVER="packages.mydomain.org" +PACKAGES_WITHOUT_OTHERMIRROR="keyring" test -z $1 && { echo "usage: $(basename $0) [<subpath>/]<git-project> {main,main/<codename>,nightly,nightly/<codename>} [<git-checkout>]"; exit -1; } -PREFIX=$(echo $0 | cut -d"-" -f1) +PREFIX=$(echo `basename $0` | cut -d"-" -f1) test -f ~/.buildscripts/$PREFIX.conf && . ~/.buildscripts/$PREFIX.conf || { echo "$0 has no valid context prefix..."; exit -1; } set -ex @@ -86,14 +87,43 @@ set_vars() { return 0 } -clear_pkgdist() { +prepare_workspace() { + # in any case remove the BUILDS_FOR file + rm -f "$PROJECT_DIR/BUILDS_FOR" + # make sure our local working copy is up to date... + + if [ -d "$PROJECT_DIR/.git" ]; then + cd "$PROJECT_DIR" && git reset --hard + git checkout --force $CHECKOUT || git checkout --force -b $CHECKOUT + git pull origin $CHECKOUT + # and again, get the $CHECKOUT refspec in pure state + git reset --hard + else + cd "$(dirname $PROJECT_DIR)" + git clone git://$GIT_HOSTNAME/$PROJECT_PATH.git + cd "$PROJECT" + git checkout --force $CHECKOUT || git checkout --force -b $CHECKOUT; + fi + cd "$PROJECT_DIR" + + # by default we build for all current debian versions + test -f BUILDS_FOR || echo -e "$BUILDS_FOR" > BUILDS_FOR + return 0 +} + +clear_pkgdist() { # pkgdist directory cleanup cat "$PROJECT_DIR/BUILDS_FOR" | egrep -v '(^$|^#.*$)' | while read line; do - l_DIST="$(echo $line | cut -d":" -f1 | tr [A-Z] [a-z])" - CODENAMES="${CODENAMES:-$(echo $line | cut -d":" -f2- | tr [A-Z] [a#-z])}" + l_DIST="$(echo ${line/: /:} | cut -d":" -f1 | tr [:upper:] [:lower:])" + l_CODENAMES="${CODENAMES:-$(echo ${line/: /:} | cut -d":" -f2- | tr [:upper:] [:lower:])}" echo "$DISTS_SUPPORTED" | grep $l_DIST >/dev/null && { - for l_CODENAME in $CODENAMES; do + for l_CODENAME in $l_CODENAMES; do + + # in case we build a special CODENAME (squeeze, wheezy, lucid, ...) do skip + # the wrong distribution here... + test -z $CODENAMES || echo $line | grep $CODENAMES || break + if [ "x$EXTRA_ARCHS_ONLY" = "x" ]; then for l_ARCH in amd64 i386; do mkdir -p "$PKGDIST/$l_DIST/$l_CODENAME/$l_ARCH" @@ -113,48 +143,30 @@ clear_pkgdist() { rm -f "$PKGDIST/$l_DIST/$l_CODENAME/$l_EXTRA_ARCH/$PROJECT_*.dsc" rm -f "$PKGDIST/$l_DIST/$l_CODENAME/$l_EXTRA_ARCH/$PROJECT_*.tar.gz" rm -f "$PKGDIST/$l_DIST/$l_CODENAME/$l_EXTRA_ARCH/*.deb" - done + done done } done return 0 } -prepare_workspace() { - # in any case remove the BUILDS_FOR file - rm -f "$PROJECT_DIR/BUILDS_FOR" - - # make sure our local working copy is up to date... - - if [ -d "$PROJECT_DIR/.git" ]; then - cd "$PROJECT_DIR" && git reset --hard - git checkout --force $CHECKOUT || git checkout --force -b $CHECKOUT - git pull origin $CHECKOUT - # and again, get the $CHECKOUT refspec in pure state - git reset --hard - else - cd "$(dirname $PROJECT_DIR)" - git clone git://$GIT_HOSTNAME/$PROJECT_PATH.git - cd "$PROJECT" - git checkout --force $CHECKOUT || git checkout --force -b $CHECKOUT; - fi - cd "$PROJECT_DIR" - - # by default we build for all current debian versions - test -f BUILDS_FOR || echo -e "$BUILDS_FOR" > BUILDS_FOR - return 0 -} - build_packages() { # use pbuilder for building all variants of this package cat "$PROJECT_DIR/BUILDS_FOR" | egrep -v '(^$|^#.*$)' | while read line; do - l_DIST="$(echo $line | cut -d":" -f1 | tr [A-Z] [a-z])" - CODENAMES="${CODENAMES:-$(echo $line | cut -d":" -f2- | tr [A-Z] [a-z])}" + l_DIST="$(echo ${line/: /:} | cut -d":" -f1 | tr [:upper:] [:lower:])" + l_CODENAMES="${CODENAMES:-$(echo ${line/: /:} | cut -d":" -f2- | tr [:upper:] [:lower:])}" echo "$DISTS_SUPPORTED" | grep $l_DIST >/dev/null && { - for l_CODENAME in $CODENAMES; do + for l_CODENAME in $l_CODENAMES; do + + # in case we build a special CODENAME (squeeze, wheezy, lucid, ...) do skip + # the wrong distribution here... + test -z $CODENAMES || echo $line | grep $CODENAMES || break + TEMP_DIR="$(mktemp -d --tmpdir=$TEMP_BASE)" mkdir -p "$TEMP_DIR/$PROJECT" chmod 2770 "$TEMP_DIR" -Rf + + cd "$PROJECT_DIR" git clone --local "$PROJECT_DIR" "$TEMP_DIR/$PROJECT/" cd "$TEMP_DIR/$PROJECT" git checkout $CHECKOUT || git checkout master @@ -178,47 +190,45 @@ build_packages() { # modify changelog for this build dch --distribution $VERSION --force-distribution -l "+$l_CODENAME~$COMPONENT$DATE~$GITREV~build" "Auto-built $l_DIST $l_CODENAME package for $REPOS_SERVER repository." mkdir -p $PKGDIST/$l_DIST/$l_CODENAME/{amd64,i386} - OTHERMIRROR="deb http://$REPOS_SERVER/$l_DIST $l_CODENAME $COMPONENT" + OTHERMIRROR="" + echo $PACKAGE_WITHOUT_OTHERMIRROR | grep $PROJECT >/dev/null || OTHERMIRROR="deb http://$REPOS_SERVER/$l_DIST $l_CODENAME $COMPONENT" + [ "x$USE_SUDO" != "xyes" ] && { [ "x$EXTRA_ARCHS_ONLY" = "x" ] && { cat debian/control | egrep 'Architecture.*(all|any|amd64)' >/dev/null && { - DIST=$l_DIST CODENAME=$l_CODENAME ARCH=amd64 $PDEBUILD --auto-debsign --debsign-k $GPG_KEY --buildresult "$PKGDIST/$l_DIST/$l_CODENAME/amd64" + DIST=$l_DIST CODENAME=$l_CODENAME ARCH=amd64 $PDEBUILD --auto-debsign --debsign-k $GPG_KEY --buildresult "$PKGDIST/$l_DIST/$l_CODENAME/amd64" 0<&- } cat debian/control | egrep 'Architecture.*(any|i386)' >/dev/null && { - DIST=$l_DIST CODENAME=$l_CODENAME ARCH=i386 $PDEBUILD --auto-debsign --debsign-k $GPG_KEY --buildresult "$PKGDIST/$l_DIST/$l_CODENAME/i386" -- --binary-arch + DIST=$l_DIST CODENAME=$l_CODENAME ARCH=i386 $PDEBUILD --auto-debsign --debsign-k $GPG_KEY --buildresult "$PKGDIST/$l_DIST/$l_CODENAME/i386" -- --binary-arch 0<&- } } for extra_arch in $EXTRA_ARCHS; do mkdir -p "$PKGDIST/$l_DIST/$l_CODENAME/$extra_arch" cat debian/control | egrep "Architecture.*(any|$extra_arch)" >/dev/null && { - DIST=$l_DIST CODENAME=$l_CODENAME ARCH=$extra_arch $PDEBUILD --auto-debsign --debsign-k $GPG_KEY --buildresult "$PKGDIST/$l_DIST/$l_CODENAME/$extra_arch" -- --binary-arch + DIST=$l_DIST CODENAME=$l_CODENAME ARCH=$extra_arch $PDEBUILD --auto-debsign --debsign-k $GPG_KEY --buildresult "$PKGDIST/$l_DIST/$l_CODENAME/$extra_arch" -- --binary-arch 0<&- } done } [ "x$USE_SUDO" = "xyes" ] && { [ "x$EXTRA_ARCHS_ONLY" = "x" ] && { cat debian/control | egrep 'Architecture.*(all|any|amd64)' >/dev/null && { - sudo DIST=$l_DIST CODENAME=$l_CODENAME ARCH=amd64 OTHERMIRROR="$OTHERMIRROR" $PDEBUILD --auto-debsign --debsign-k $GPG_KEY --buildresult $PKGDIST/$l_DIST/$l_CODENAME/amd64 + sudo DIST=$l_DIST CODENAME=$l_CODENAME ARCH=amd64 OTHERMIRROR="$OTHERMIRROR" $PDEBUILD --auto-debsign --debsign-k $GPG_KEY --buildresult $PKGDIST/$l_DIST/$l_CODENAME/amd64 0<&- } cat debian/control | egrep 'Architecture.*(any|i386)' >/dev/null && { - sudo DIST=$l_DIST CODENAME=$l_CODENAME ARCH=i386 OTHERMIRROR="$OTHERMIRROR" $PDEBUILD --auto-debsign --debsign-k $GPG_KEY --buildresult $PKGDIST/$l_DIST/$l_CODENAME/i386 -- --binary-arch + sudo DIST=$l_DIST CODENAME=$l_CODENAME ARCH=i386 OTHERMIRROR="$OTHERMIRROR" $PDEBUILD --auto-debsign --debsign-k $GPG_KEY --buildresult $PKGDIST/$l_DIST/$l_CODENAME/i386 -- --binary-arch 0<&- } } for extra_arch in $EXTRA_ARCHS; do mkdir -p "$PKGDIST/$l_DIST/$l_CODENAME/$extra_arch" cat debian/control | egrep "Architecture.*(any|$extra_arch)" >/dev/null && { - sudo DIST=$l_DIST CODENAME=$l_CODENAME ARCH=$extra_arch OTHERMIRROR="$OTHERMIRROR" $PDEBUILD --auto-debsign --debsign-k $GPG_KEY --buildresult "$PKGDIST/$l_DIST/$l_CODENAME/$extra_arch" -- --binary-arch + sudo DIST=$l_DIST CODENAME=$l_CODENAME ARCH=$extra_arch OTHERMIRROR="$OTHERMIRROR" $PDEBUILD --auto-debsign --debsign-k $GPG_KEY --buildresult "$PKGDIST/$l_DIST/$l_CODENAME/$extra_arch" -- --binary-arch 0<&- } done } - cd - rm -Rf "$TEMP_DIR" done - echo } - echo done - echo return 0 } @@ -226,9 +236,14 @@ upload_packages() { # dupload the new packages to the reprepro repository cd "$PKGDIST" cat "$PROJECT_DIR/BUILDS_FOR" | egrep -v '(^$|^#.*$)' | while read line; do - l_DIST=$(echo $line | cut -d":" -f1 | tr [A-Z] [a-z]) - CODENAMES=${CODENAMES:-$(echo $line | cut -d":" -f2- | tr [A-Z] [a-z])} - for l_CODENAME in $CODENAMES; do + l_DIST=$(echo ${line/: /:} | cut -d":" -f1 | tr [:upper:] [:lower:]) + l_CODENAMES=${CODENAMES:-$(echo ${line/: /:} | cut -d":" -f2- | tr [:upper:] [:lower:])} + for l_CODENAME in $l_CODENAMES; do + + # in case we build a special CODENAME (squeeze, wheezy, lucid, ...) do skip + # the wrong distribution here... + test -z $CODENAMES || echo $line | grep $CODENAMES || break + if [ "x$EXTRA_ARCHS_ONLY" = "x" ]; then for l_ARCH in amd64 i386; do cd "$PKGDIST/$l_DIST/$l_CODENAME/$l_ARCH" @@ -251,8 +266,8 @@ upload_packages() { set_vars $@ && { if [ "x$(basename $0)" = "x$PREFIX-build-package" ] || [ "x$(basename $0)" = "x$PREFIX-build+upload-package" ]; then cd $PROJECT_DIR && pkgneedsbuild $CHECKOUT || [ "$FORCE_BUILD" -eq 0 ] && { - clear_pkgdist prepare_workspace && { + clear_pkgdist build_packages } } diff --git a/bin/gitcreate b/bin/gitcreate index 612173b..159b298 100755 --- a/bin/gitcreate +++ b/bin/gitcreate @@ -6,7 +6,7 @@ GIT_USER= GIT_HOSTNAME= GIT_SSH_PORT=22 -PREFIX=$(echo $0 | cut -d"-" -f1) +PREFIX=$(echo `basename $0` | cut -d"-" -f1) . ~/.buildscripts/$PREFIX.conf |