prepare_slapos_build.sh 3.49 KB
Newer Older
1
#!/bin/sh -e
2

3
# Edit for release
Rafael Monnerat's avatar
Rafael Monnerat committed
4
VERSION=1.0.3
5
# Edit for release
6
RECIPE_VERSION=0.209
7
# Edit for release
8 9
RELEASE=7
GITHASH=568ffc57ecd8c23f60f4f37984294149d2b17e25
10

11
CURRENT_DIRECTORY="$(pwd)"
12
# Define URL to compile
Rafael Monnerat's avatar
Rafael Monnerat committed
13 14
BUILDOUT_URL=http://git.erp5.org/gitweb/slapos.git/blob_plain/refs/tags/slapos-$RECIPE_VERSION:/component/slapos/buildout.cfg
OBS_DIRECTORY=$CURRENT_DIRECTORY/home:VIFIBnexedi/SlapOS-Node
15

Rafael Monnerat's avatar
Rafael Monnerat committed
16
# Development Section [Uncomment for use] 
17
OBS_DIRECTORY=$CURRENT_DIRECTORY/home:VIFIBnexedi:branches:home:VIFIBnexedi/SlapOS-Node
18
BUILDOUT_URL=http://git.erp5.org/gitweb/slapos.git/blob_plain/$GITHASH:/component/slapos/buildout.cfg
19

Rafael Monnerat's avatar
Rafael Monnerat committed
20

21
VERSION_REGEX="s!\%BUILDOUT_URL\%!$BUILDOUT_URL!g;s/\%RECIPE_VERSION\%/$RECIPE_VERSION/g;s/\%VERSION\%/$VERSION/g;s/\%RELEASE\%/$RELEASE/g"
22 23
TEMPLATES_DIRECTORY=$CURRENT_DIRECTORY/templates
SLAPOS_ORGINAL_DIRECTORY=slapos-node
24
SLAPOS_DIRECTORY=slapos-node_$VERSION+$RECIPE_VERSION+$RELEASE
25

Rafael Monnerat's avatar
Rafael Monnerat committed
26 27
function prepare_template_files
{
28 29 30 31 32

    # Prepare directory for new version if needed
    mkdir -p $CURRENT_DIRECTORY/$SLAPOS_DIRECTORY 
    cp -rf $CURRENT_DIRECTORY/$SLAPOS_ORGINAL_DIRECTORY/* $CURRENT_DIRECTORY/$SLAPOS_DIRECTORY

Rafael Monnerat's avatar
Rafael Monnerat committed
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 89 90
    sed $VERSION_REGEX $TEMPLATES_DIRECTORY/Makefile.in > $CURRENT_DIRECTORY/$SLAPOS_DIRECTORY/slapos/Makefile
    sed $VERSION_REGEX $TEMPLATES_DIRECTORY/offline.sh.in > $CURRENT_DIRECTORY/$SLAPOS_DIRECTORY/slapos/offline.sh
}

function prepare_download_cache
{
    cd $CURRENT_DIRECTORY/$SLAPOS_DIRECTORY/slapos/
    rm -rf build/
    bash offline.sh || (echo "Impossible to build SlapOS, exiting." && exit 1)
    # Go back to starting point
    cd $CURRENT_DIRECTORY
}

function prepare_tarball
{
    tar -czf $SLAPOS_DIRECTORY.tar.gz $SLAPOS_DIRECTORY
}

function prepare_deb_packaging
{

    # Add entry to changelog
    cd $TEMPLATES_DIRECTORY/debian
    dch -pm -v $VERSION+$RECIPE_VERSION+$RELEASE  --check-dirname-level=0 "New version of slapos ($VERSION+$RECIPE_VERSION+$RELEASE)"

    # Add cron and logrotate files
    cp $CURRENT_DIRECTORY/$SLAPOS_ORGINAL_DIRECTORY/template/slapos-node.cron.d $TEMPLATES_DIRECTORY/debian/cron.d
    cp $CURRENT_DIRECTORY/$SLAPOS_ORGINAL_DIRECTORY/template/slapos-node.logrotate $TEMPLATES_DIRECTORY/debian/slapos-node.logrotate
    cd $TEMPLATES_DIRECTORY
    tar -czf debian.tar.gz debian
    cd $OBS_DIRECTORY
    cp $TEMPLATES_DIRECTORY/debian.tar.gz .
}

function obs_upload
{
    cd $OBS_DIRECTORY

    # Update directory
    osc up

    # Remove former configuration
    osc rm -f $SLAPOS_ORGINAL_DIRECTORY*.tar.gz
    osc rm -f slapos.spec

    # Prepare new tarball
    cp $CURRENT_DIRECTORY/$SLAPOS_DIRECTORY.tar.gz .
    osc add $SLAPOS_DIRECTORY.tar.gz

    # Prepare new specfile
    sed $VERSION_REGEX $TEMPLATES_DIRECTORY/slapos.spec.in > slapos.spec
    osc add slapos.spec

    # Prepare new .dsc file
    osc rm -f slapos*.dsc
    sed $VERSION_REGEX $TEMPLATES_DIRECTORY/slapos.dsc.in > $SLAPOS_DIRECTORY.dsc
    osc add $SLAPOS_DIRECTORY.dsc

Vivien Alger's avatar
Vivien Alger committed
91
    osc rm -f PKGBUILD
92
    SOURCEMD5=`md5sum $SLAPOS_DIRECTORY.tar.gz | cut -d\  -f1`
93
    sed "$VERSION_REGEX;s/\%SOURCEMD5\%/$SOURCEMD5/g" $TEMPLATES_DIRECTORY/PKGBUILD.in > PKGBUILD
94

Vivien Alger's avatar
Vivien Alger committed
95 96 97
    cp $TEMPLATES_DIRECTORY/slapos-node.install .
    osc add PKGBUILD slapos-node.install

Rafael Monnerat's avatar
Rafael Monnerat committed
98 99 100 101 102 103 104 105 106 107 108 109 110 111
    ## Upload new Package
    osc commit -m "New SlapOS Recipe $RECIPE_VERSION"

}

prepare_template_files

prepare_download_cache

prepare_tarball

prepare_deb_packaging

obs_upload
112 113

# Save current version
114
echo "$RECIPE_VERSION" > $CURRENT_DIRECTORY/slapos-recipe-version
115
echo "$VERSION" > $CURRENT_DIRECTORY/slapos-version