aboutsummaryrefslogtreecommitdiffstats
path: root/main/aports-build/aports-build
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2016-11-11 15:52:54 -0800
committerNatanael Copa <ncopa@alpinelinux.org>2016-11-14 20:10:40 +0000
commit3d0a98ac010b179eb69fbd16507ff56be19c575c (patch)
tree409e615b26857b4e8576e5442c17cb5287cbe8a6 /main/aports-build/aports-build
parent08694394995e558de5d3331cf88d338735916779 (diff)
downloadaports-3d0a98ac010b179eb69fbd16507ff56be19c575c.tar.bz2
aports-3d0a98ac010b179eb69fbd16507ff56be19c575c.tar.xz
main/aports-build: use mkimage shipped with aports
this replaces abuild-iso also add options to skip do the full build and to force generation of release images. This helps when debugging the script.
Diffstat (limited to 'main/aports-build/aports-build')
-rw-r--r--main/aports-build/aports-build74
1 files changed, 38 insertions, 36 deletions
diff --git a/main/aports-build/aports-build b/main/aports-build/aports-build
index 9a652418dc..9982cb7a09 100644
--- a/main/aports-build/aports-build
+++ b/main/aports-build/aports-build
@@ -34,6 +34,7 @@ arch=$(abuild -A)
aports=${APORTS:-$HOME/aports}
isodir=$HOME/alpine-iso
packages=${REPOSDIR:-$HOME/packages}
+releasedir="$packages/releases/$arch"
repos=${REPOS:-"main community testing"}
: ${buildrepo:="buildrepo -p"}
@@ -62,34 +63,22 @@ send_irc() {
}
# create new_release
-new_release() {
- local new=$1
- local target="all-release"
- local yaml=latest-releases.yaml
- local txt=.latest.txt
- local release_pkgs="lua"
- if [ "$rel" = "edge" ]; then
- target="edge"
- fi
+create_release() {
+ local release="$1"
+ local release_deps="abuild apk-tools alpine-conf busybox fakeroot xorriso rsync"
case "$arch" in
- x86*) release_pkgs="$release_pkgs syslinux";;
+ x86*) release_deps="$release_deps syslinux";;
esac
- cd "$isodir"
- echo "$new" > current
- rm -rf isotmp.*
- sudo apk add --virtual .alpine-release $release_pkgs
- if ! make $target; then
- rm current
- return 1
+
+ cd "$aports"
+ abuild-apk add --virtual .alpine-release-deps $release_deps
+ sh scripts/mkimage.sh --repository $packages/main --yaml \
+ --tag "$release" --outdir $releasedir || return 1
+
+ if $use_network; then
+ ssh $upload_host mkdir -p "${upload_iso#${upload_host}:}"
+ rsync -ruv "$releasedir"/* "$upload_iso" || return 1
fi
- sh mklatest.sh || return 1
- ssh $upload_host mkdir -p "${upload_iso#${upload_host}:}"
- [ -e "$yaml" ] || yaml=""
- [ -e "$txt" ] || txt=""
- rsync -ruv $yaml $txt *"$new"* "$upload_iso" || return 1
- sudo apk del .alpine-release
- mv current previous
- return 0
}
build() {
@@ -105,11 +94,22 @@ build() {
cd $aports || return 1
[ -z "$repos" ] && return 1
+use_network=true
+force_release=false
+skip_build=false
+
# parse opts
-while getopts "fu:" opt; do
+while getopts "fFu:ns" opt; do
case $opt in
'f') force=true;;
+ 'F') force_release=true;;
'u') logurl=" $OPTARG";;
+ 'n') use_network=false
+ status_msg="echo status_msg:"
+ upload_msg="echo upload_msg:"
+ irc_msg="echo irc_msg:"
+ ;;
+ 's') skip_build=true;;
esac
done
shift $(( $OPTIND - 1 ))
@@ -118,11 +118,13 @@ while true; do
do_release=false
cd $aports || return 1
# check if we need to rebuild
- log "pulling git"
_old=$(git describe)
_old_tag=$(git describe --abbrev=0)
- git checkout $git_branch
- git pull || return 1
+ if $use_network; then
+ log "pulling git"
+ git checkout $git_branch
+ git pull || return 1
+ fi
_current=$(git describe)
_current_tag=$(git describe --abbrev=0)
if [ "$_old_tag" != "$_current_tag" ]; then
@@ -135,6 +137,9 @@ while true; do
break
fi
+ if $force_release; then
+ do_release=true
+ fi
force=
# check if we need make new release
@@ -151,7 +156,7 @@ while true; do
log "building $_current"
rm -f "$logdir"/$hostname.log
rc=0
- for repo in $repos; do
+ ! $skip_build && for repo in $repos; do
if ! build $repo >>"$logdir"/$hostname.log 2>&1 ; then
errlog=$hostname.$_current.log
cp "$logdir"/$hostname.log "$logdir"/$errlog
@@ -171,7 +176,7 @@ while true; do
fi
log "uploading packages to $repo"
- for i in $upload_pkg; do
+ $use_network && for i in $upload_pkg; do
rsync -rui --delete-delay --delay-updates \
$repo/$arch $i/$repo/ > /tmp/upload-$repo
if [ $? -ne 0 ]; then
@@ -185,11 +190,8 @@ while true; do
done
[ $rc -eq 0 ] && touch /tmp/uploaded && sudo apk update
- if [ -n "$upload_pkg" ] && $do_release; then
- if new_release ${_current_tag#v}; then
- $upload_msg "$rel/releases/$arch"
- send_irc "release $_current_tag uploaded"
- fi
+ if $do_release && create_release ${_current_tag#v}; then
+ $upload_msg "$rel/releases/$arch"
fi
done