Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/build-snapshots
blob: add057ca403c63acbadd172f98edac846befcaae (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
#!/bin/bash
repo_clean() {
    git reset --hard
    git clean -d -f -q -x
}

repo_update() {
    git fetch origin
    git fetch upstream
    git checkout upstream
    git merge upstream/master
    git checkout master
    if [ -z "$(git log master..upstream)" ] ; then
        echo 'No source changes => skipping build'
        return 1
    fi
    git tag -f pre-merge master
    git merge upstream
}

append_git_changelog() {
    local range="${1}"
    git log --no-merges --pretty=format:'[%h] %s (%an)' "${range}" |xargs -L 1 --no-run-if-empty dch
}

version_set() {
    local upstream_version="$(git tag|grep ^v|tr -d v|sort -t . -n|tail -n 1)"
    dch --newversion "${upstream_version}-git$(date +%Y%m%d)-1" --preserve --distribution testing "Nightly snapshot package"
    append_git_changelog pre-merge..master
    git commit -m "Add changelog entry for nightly snapshot build" debian/changelog
}

gen_and_import_tarball() {
    local package="${1}"
    git checkout upstream
    ./autogen.sh
    make dist-gzip
    local version="$(grep '^VERSION = ' Makefile |sed -e 's/^VERSION = //')"
    mv "${package}-${version}".tar.gz ../tarballs/"${package}-${version}~git$(date +%Y%m%d).tar.gz"
    repo_clean
    git-import-orig "${package}-${version}".tar.gz
}

autoregen() {
    if [ -x autogen.sh ] ; then
        ./autogen.sh
    else
        grep -q IT_PROG_INTLTOOL configure.ac && intltoolize -c
        autoreconf -i
        automake
    fi
    if [ -n "$(git status --porcelain --untracked-files=no)" ] ; then
        git commit -a -m "regenerate autofoo"
    fi
}

build() {
    git-buildpackage --git-builder="pdebuild --configfile ${MYDIR}/pbuilderrc --debbuildopts '-I.git -i\.git'" --git-cleaner="fakeroot debian/rules clean" --git-no-pristine-tar --git-export-dir=../build
}

upload_all() {
    "${MYDIR}"/upload-snapshots
}

package_apply() {
    local package="${1}"
    shift
    ( set -e ; cd "${package}" ; "$@" )
}
    
MYDIR="$(readlink -f "$(dirname "${0}")")"
export COWBUILDERBASE="${MYDIR}/cowbuilder"
export DISTRIBUTION="$(tr -cd A-Za-z0-9._- < "${MYDIR}"/config.distro)"

for package in sugar sugar-artwork sugar-base sugar-datastore sugar-presence-service sugar-toolkit; do
#for package in sugar; do
  (
    set -e
    package_apply "${package}" repo_clean
    package_apply "${package}" repo_update
    package_apply "${package}" autoregen
    package_apply "${package}" version_set
    package_apply "${package}" build
#    package_apply "${package}" upload
  )
done

upload_all