summaryrefslogtreecommitdiff
path: root/jobs
diff options
context:
space:
mode:
authorKarel Kočí <cynerd@email.cz>2018-09-02 22:55:51 +0200
committerKarel Kočí <cynerd@email.cz>2018-09-02 23:18:50 +0200
commite753a4d1af740a3cfeb4a4c994395f3a0a5a3c73 (patch)
tree43f8f15d1309d8b101e6feba431a10fc6aa5d4ae /jobs
parent0f6273a567c504ed4dc631ba18252ea0e16146b0 (diff)
downloadlaminar-cnf-e753a4d1af740a3cfeb4a4c994395f3a0a5a3c73.tar.gz
laminar-cnf-e753a4d1af740a3cfeb4a4c994395f3a0a5a3c73.tar.bz2
laminar-cnf-e753a4d1af740a3cfeb4a4c994395f3a0a5a3c73.zip
alpine-amd64: try to change how we do chroot
Diffstat (limited to 'jobs')
-rwxr-xr-xjobs/alpine-amd64.run63
-rwxr-xr-xjobs/alpine-amd64.sh55
2 files changed, 56 insertions, 62 deletions
diff --git a/jobs/alpine-amd64.run b/jobs/alpine-amd64.run
index 96bfb2b..80e8644 100755
--- a/jobs/alpine-amd64.run
+++ b/jobs/alpine-amd64.run
@@ -6,68 +6,7 @@ set -e
if [ -n "$CLEAN" ]; then
echo_stage "Remove root"
flock --exclusive "$WORKSPACE/root.lock" uroot rm -rf "$WORKSPACE/root"
- exit 0
fi
-cat >abuild-system.conf <<EOF
-export CFLAGS="-Os -fomit-frame-pointer"
-export CXXFLAGS="\$CFLAGS"
-export CPPFLAGS="\$CFLAGS"
-export LDFLAGS="-Wl,--as-needed"
-
-export JOBS=4
-export MAKEFLAGS=-j\$JOBS
-
-USE_COLORS=1
-
-SRCDEST=/var/cache/distfiles
-REPODEST=\$HOME/packages/
-
-CLEANUP="srcdir bldroot pkgdir deps"
-ERROR_CLEANUP="bldroot deps"
-EOF
-
export ROOT="$WORKSPACE/root"
-# TODO get latest uri from latest-releases.yml file
-flock --exclusive "$WORKSPACE/root.lock" /bin/sh -se <<EOF
- . utils
- if [ ! -d "$ROOT" ]; then
- echo_stage "Setting up new root"
- wget "http://dl-cdn.alpinelinux.org/alpine/edge/releases/x86_64/alpine-minirootfs-3.8.0-x86_64.tar.gz" -O alpine.tar.gz
- gunzip alpine.tar.gz
- tar -f alpine.tar --delete ./dev/null
- mkdir "$ROOT"
- uroot tar -xf alpine.tar -C "$ROOT"
- chmod 755 "$ROOT" # This is intentional, tar changes access rights
- uchroot "$ROOT" root /bin/sh -sxe <<EEOF
- apk update
- apk add alpine-sdk lua-aports
- adduser -s /bin/sh -D build
- addgroup build abuild
- mkdir -p /var/cache/distfiles
- chgrp abuild /var/cache/distfiles
- chmod g+w /var/cache/distfiles
-EEOF
- uchroot "$ROOT" build:build /bin/sh -sxe <<EEOF
- cd && mkdir .abuild
- echo 'PACKAGER_PRIVKEY="/home/build/.abuild/key.rsa"' > .abuild/abuild.conf
-EEOF
- uroot cp ~/alpinelinux.rsa.key "$ROOT/home/build/.abuild/key.rsa"
- uchroot "$ROOT" root chown build:build "/home/build/.abuild/key.rsa"
- uroot cp ~/alpinelinux.rsa.key.pub "$ROOT/etc/apk/keys/cynerd@email.cz-5b8aeb6d.rsa.pub"
- uroot cp abuild-system.conf "$ROOT/etc/abuild.conf"
- fi
-
- echo_stage "Update system"
- uchroot "$ROOT" root /bin/sh -ce 'apk update && apk upgrade'
-
- echo_stage "Update package sources"
- git_clone "git@cynerd.cz:alpine-personal-pkgs" "aports"
- uroot rm -rf "$ROOT/home/build/aports"
- uroot mv aports "$ROOT/home/build/aports"
- uchroot "$ROOT" root chown -R build:build /home/build/aports
-
- echo_stage "Build packages"
- # TODO generate list of repositories automatically
- uchroot "$ROOT" build:build buildrepo --purge personal hacked
-EOF
+flock --exclusive "$WORKSPACE/root.lock" "$(readlink -f "$0" | sed 's/\.run$/\.sh/')"
diff --git a/jobs/alpine-amd64.sh b/jobs/alpine-amd64.sh
new file mode 100755
index 0000000..e5a6df3
--- /dev/null
+++ b/jobs/alpine-amd64.sh
@@ -0,0 +1,55 @@
+#!/bin/sh
+. utils
+
+# TODO get latest uri from latest-releases.yml file
+
+if [ ! -d "$ROOT" ]; then
+ echo_stage "Setting up new root"
+ wget "http://dl-cdn.alpinelinux.org/alpine/edge/releases/x86_64/alpine-minirootfs-3.8.0-x86_64.tar.gz" -O alpine.tar.gz
+ gunzip alpine.tar.gz
+ tar -f alpine.tar --delete ./dev/null
+ mkdir "$ROOT"
+ uroot tar -xf alpine.tar -C "$ROOT"
+ chmod 755 "$ROOT" # This is intentional, tar changes access rights
+ uchroot "$ROOT" root /bin/sh <<EOF
+ set -ex
+ apk update
+ apk add alpine-sdk lua-aports
+ adduser -s /bin/sh -D -h /build build
+ addgroup build abuild
+ mkdir -p /var/cache/distfiles
+ chgrp abuild /var/cache/distfiles
+ chmod g+w /var/cache/distfiles
+EOF
+ uchroot "$ROOT" build 'mkdir .abuild && echo "PACKAGER_PRIVKEY=\"/build/.abuild/cynerd@email.cz-5b8aeb6d.rsa\"" > .abuild/abuild.conf'
+ uroot cp ~/alpinelinux.rsa.key "$ROOT/build/.abuild/cynerd@email.cz-5b8aeb6d.rsa"
+ uchroot "$ROOT" root 'chown build:build "/build/.abuild/cynerd@email.cz-5b8aeb6d.rsa"'
+ uroot cp ~/alpinelinux.rsa.key.pub "$ROOT/etc/apk/keys/cynerd@email.cz-5b8aeb6d.rsa.pub"
+ uroot cat >"$ROOT/etc/abuild.conf" <<EOF
+export CFLAGS="-Os -fomit-frame-pointer"
+export CXXFLAGS="\$CFLAGS"
+export CPPFLAGS="\$CFLAGS"
+export LDFLAGS="-Wl,--as-needed"
+
+export JOBS=4
+export MAKEFLAGS=-j\$JOBS
+
+USE_COLORS=1
+
+SRCDEST=/var/cache/distfiles
+REPODEST=\$HOME/packages/
+
+CLEANUP="srcdir bldroot pkgdir deps"
+ERROR_CLEANUP="bldroot deps"
+EOF
+fi
+
+echo_stage "Update system"
+uchroot "$ROOT" root 'apk update && apk upgrade'
+
+echo_stage "Get packages source"
+git_clone "git@cynerd.cz:alpine-personal-pkgs" "$ROOT/aports"
+uchroot "$ROOT" root "rm -rf /build/aports && chown -R build:build /aports && mv /aports /build/aports"
+
+echo_stage "Build packages"
+uchroot "$ROOT" build buildrepo --purge $(ls "$ROOT/build/aports")