diff options
author | 7heo <7heo@mail.com> | 2016-09-17 15:24:46 +0200 |
---|---|---|
committer | Jakub Jirutka <jakub@jirutka.cz> | 2017-01-18 12:50:54 +0100 |
commit | 47e87b829c09ae3c6f3bcbabc9824d4be9bf35f9 (patch) | |
tree | a01b14d301943365196e4b2bedad8feabbb45bf7 | |
parent | 5906619ff0d1cca4466cb4e93595c6cc5f005111 (diff) | |
download | mkinitfs-47e87b829c09ae3c6f3bcbabc9824d4be9bf35f9.tar.bz2 mkinitfs-47e87b829c09ae3c6f3bcbabc9824d4be9bf35f9.tar.xz |
nlplug-findfs: enable automated testing
-rw-r--r-- | .travis.yml | 10 | ||||
-rw-r--r-- | .travis/common.sh | 45 | ||||
-rwxr-xr-x | .travis/install-alpine | 34 | ||||
-rwxr-xr-x | .travis/install-deps | 17 | ||||
-rw-r--r-- | .travis/keys/alpine-devel@lists.alpinelinux.org-4a6a0840.rsa.pub | 9 | ||||
-rw-r--r-- | .travis/keys/alpine-devel@lists.alpinelinux.org-4d07755e.rsa.pub | 9 | ||||
-rw-r--r-- | .travis/keys/alpine-devel@lists.alpinelinux.org-5243ef4b.rsa.pub | 9 | ||||
-rw-r--r-- | .travis/keys/alpine-devel@lists.alpinelinux.org-524d27bb.rsa.pub | 9 | ||||
-rw-r--r-- | .travis/keys/alpine-devel@lists.alpinelinux.org-5261cecb.rsa.pub | 9 | ||||
-rw-r--r-- | .travis/repositories | 1 | ||||
-rwxr-xr-x | .travis/setup-alpine | 20 |
11 files changed, 172 insertions, 0 deletions
diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..6b7f22d --- /dev/null +++ b/.travis.yml @@ -0,0 +1,10 @@ +sudo: required +install: + - sudo .travis/install-alpine + - sudo .travis/setup-alpine + - sudo .travis/install-deps +script: | + source .travis/common.sh + alpine_run $ALPINE_USER './test.sh -x -y' +notifications: + email: false diff --git a/.travis/common.sh b/.travis/common.sh new file mode 100644 index 0000000..f91e024 --- /dev/null +++ b/.travis/common.sh @@ -0,0 +1,45 @@ +# vim: set ts=4: + +readonly ALPINE_ROOT='/mnt/alpine' +readonly ALPINE_USER='alpine' +readonly CLONE_DIR="${CLONE_DIR:-$(pwd)}" + +# Runs commands inside the Alpine chroot. +alpine_run() { + local user="${1:-root}" + local cmd="${2:-sh}" + + local _sudo= + [ "$(id -u)" -eq 0 ] || _sudo='sudo' + + $_sudo chroot "$ALPINE_ROOT" /usr/bin/env -i su -l $user \ + sh -c "cd $CLONE_DIR; $cmd" +} + +die() { + print -s1 -c1 "$@\n" 1>&2 + exit 1 +} + +# Prints formatted and colored text. +print() { + local style=0 + local fcolor=9 + + local opt; while getopts 's:c:' opt; do + case "$opt" in + s) style="$OPTARG";; + c) fcolor="$OPTARG";; + esac + done + + shift $(( OPTIND - 1 )) + local text="$@" + + printf "\033[${style};3${fcolor}m$text\033[0m" +} + +title() { + printf '\n' + print -s1 -c6 "==> $@\n" +} diff --git a/.travis/install-alpine b/.travis/install-alpine new file mode 100755 index 0000000..756bbd8 --- /dev/null +++ b/.travis/install-alpine @@ -0,0 +1,34 @@ +#!/bin/sh +# vim: set ts=4: +set -eu + +. "$(dirname "$0")"/common.sh + +APK_TOOLS_URI='http://dl-cdn.alpinelinux.org/alpine/v3.4/main/x86_64/apk-tools-static-2.6.7-r0.apk' +APK_TOOLS_SHA256='342458308b8ebdb6a91d347b6b2cced7349c0cd0560a7fd7cdd71c5e1aa2b9f3' + + +title 'Downloading apk-tools-static' + +cd /tmp +wget "$APK_TOOLS_URI" +echo "$APK_TOOLS_SHA256 $(basename "$APK_TOOLS_URI")" | sha256sum -c +tar -xzf $(basename "$APK_TOOLS_URI") + + +title 'Installing Alpine Linux' + +mkdir -p "$ALPINE_ROOT"/etc/apk +cd "$ALPINE_ROOT" + +cp -R "$CLONE_DIR"/.travis/keys etc/apk/keys +cp "$CLONE_DIR"/.travis/repositories etc/apk/repositories +cp /etc/resolv.conf etc/resolv.conf + +/tmp/sbin/apk.static \ + --root . --update-cache --initdb --no-progress \ + add alpine-base + +mount -t proc none proc +mount --rbind /sys sys +mount --rbind /dev dev diff --git a/.travis/install-deps b/.travis/install-deps new file mode 100755 index 0000000..d2282bf --- /dev/null +++ b/.travis/install-deps @@ -0,0 +1,17 @@ +#!/bin/sh +# vim: set ts=4: +set -eu + +. "$(dirname "$0")"/common.sh + +title 'Installing dependencies' + +# Build dependencies +alpine_run <<-EOF + apk add linux-headers util-linux-dev kmod-dev cryptsetup-dev +EOF + +# Runtime dependencies +alpine_run <<-EOF + apk add cryptsetup e2fsprogs +EOF diff --git a/.travis/keys/alpine-devel@lists.alpinelinux.org-4a6a0840.rsa.pub b/.travis/keys/alpine-devel@lists.alpinelinux.org-4a6a0840.rsa.pub new file mode 100644 index 0000000..bb4bdc8 --- /dev/null +++ b/.travis/keys/alpine-devel@lists.alpinelinux.org-4a6a0840.rsa.pub @@ -0,0 +1,9 @@ +-----BEGIN PUBLIC KEY----- +MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1yHJxQgsHQREclQu4Ohe +qxTxd1tHcNnvnQTu/UrTky8wWvgXT+jpveroeWWnzmsYlDI93eLI2ORakxb3gA2O +Q0Ry4ws8vhaxLQGC74uQR5+/yYrLuTKydFzuPaS1dK19qJPXB8GMdmFOijnXX4SA +jixuHLe1WW7kZVtjL7nufvpXkWBGjsfrvskdNA/5MfxAeBbqPgaq0QMEfxMAn6/R +L5kNepi/Vr4S39Xvf2DzWkTLEK8pcnjNkt9/aafhWqFVW7m3HCAII6h/qlQNQKSo +GuH34Q8GsFG30izUENV9avY7hSLq7nggsvknlNBZtFUcmGoQrtx3FmyYsIC8/R+B +ywIDAQAB +-----END PUBLIC KEY----- diff --git a/.travis/keys/alpine-devel@lists.alpinelinux.org-4d07755e.rsa.pub b/.travis/keys/alpine-devel@lists.alpinelinux.org-4d07755e.rsa.pub new file mode 100644 index 0000000..6b5b860 --- /dev/null +++ b/.travis/keys/alpine-devel@lists.alpinelinux.org-4d07755e.rsa.pub @@ -0,0 +1,9 @@ +-----BEGIN PUBLIC KEY----- +MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqy4H+5jKkBM+3pELVDBF +VclECAxk9dy23mNhbfxH6GfBUtVaJVpYOF943JR2LNfD88DJR5EXnKPxQYZN1PWZ +MDoJbUil7GPOMHAm5AHtXYJhYeOF+rSyv4y6H1lgYQVDzA9z+4GATMBhqJ8oRrCy +lAJ/vksY9PFkuK8oyygTxpc7ICpUMMLwIMwLMdVR4API2kaLfg9TlMpVGmQhOCRZ +VygfN4H89n9ekPpSA0DHLSkKkRLzBlhtfw+Ho2fcw9BCU0Uj10pK6q0V+m2+r8aE +07LZKH9NnddMaEJ+I58FwmxJRzt4+gKpiPhV4OHXLoJsXMLYhjV8kM/qbgASfW71 +jQIDAQAB +-----END PUBLIC KEY----- diff --git a/.travis/keys/alpine-devel@lists.alpinelinux.org-5243ef4b.rsa.pub b/.travis/keys/alpine-devel@lists.alpinelinux.org-5243ef4b.rsa.pub new file mode 100644 index 0000000..6cbfad7 --- /dev/null +++ b/.travis/keys/alpine-devel@lists.alpinelinux.org-5243ef4b.rsa.pub @@ -0,0 +1,9 @@ +-----BEGIN PUBLIC KEY----- +MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvNijDxJ8kloskKQpJdx+ +mTMVFFUGDoDCbulnhZMJoKNkSuZOzBoFC94omYPtxnIcBdWBGnrm6ncbKRlR+6oy +DO0W7c44uHKCFGFqBhDasdI4RCYP+fcIX/lyMh6MLbOxqS22TwSLhCVjTyJeeH7K +aA7vqk+QSsF4TGbYzQDDpg7+6aAcNzg6InNePaywA6hbT0JXbxnDWsB+2/LLSF2G +mnhJlJrWB1WGjkz23ONIWk85W4S0XB/ewDefd4Ly/zyIciastA7Zqnh7p3Ody6Q0 +sS2MJzo7p3os1smGjUF158s6m/JbVh4DN6YIsxwl2OjDOz9R0OycfJSDaBVIGZzg +cQIDAQAB +-----END PUBLIC KEY----- diff --git a/.travis/keys/alpine-devel@lists.alpinelinux.org-524d27bb.rsa.pub b/.travis/keys/alpine-devel@lists.alpinelinux.org-524d27bb.rsa.pub new file mode 100644 index 0000000..1d34c93 --- /dev/null +++ b/.travis/keys/alpine-devel@lists.alpinelinux.org-524d27bb.rsa.pub @@ -0,0 +1,9 @@ +-----BEGIN PUBLIC KEY----- +MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAr8s1q88XpuJWLCZALdKj +lN8wg2ePB2T9aIcaxryYE/Jkmtu+ZQ5zKq6BT3y/udt5jAsMrhHTwroOjIsF9DeG +e8Y3vjz+Hh4L8a7hZDaw8jy3CPag47L7nsZFwQOIo2Cl1SnzUc6/owoyjRU7ab0p +iWG5HK8IfiybRbZxnEbNAfT4R53hyI6z5FhyXGS2Ld8zCoU/R4E1P0CUuXKEN4p0 +64dyeUoOLXEWHjgKiU1mElIQj3k/IF02W89gDj285YgwqA49deLUM7QOd53QLnx+ +xrIrPv3A+eyXMFgexNwCKQU9ZdmWa00MjjHlegSGK8Y2NPnRoXhzqSP9T9i2HiXL +VQIDAQAB +-----END PUBLIC KEY----- diff --git a/.travis/keys/alpine-devel@lists.alpinelinux.org-5261cecb.rsa.pub b/.travis/keys/alpine-devel@lists.alpinelinux.org-5261cecb.rsa.pub new file mode 100644 index 0000000..83f0658 --- /dev/null +++ b/.travis/keys/alpine-devel@lists.alpinelinux.org-5261cecb.rsa.pub @@ -0,0 +1,9 @@ +-----BEGIN PUBLIC KEY----- +MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwlzMkl7b5PBdfMzGdCT0 +cGloRr5xGgVmsdq5EtJvFkFAiN8Ac9MCFy/vAFmS8/7ZaGOXoCDWbYVLTLOO2qtX +yHRl+7fJVh2N6qrDDFPmdgCi8NaE+3rITWXGrrQ1spJ0B6HIzTDNEjRKnD4xyg4j +g01FMcJTU6E+V2JBY45CKN9dWr1JDM/nei/Pf0byBJlMp/mSSfjodykmz4Oe13xB +Ca1WTwgFykKYthoLGYrmo+LKIGpMoeEbY1kuUe04UiDe47l6Oggwnl+8XD1MeRWY +sWgj8sF4dTcSfCMavK4zHRFFQbGp/YFJ/Ww6U9lA3Vq0wyEI6MCMQnoSMFwrbgZw +wwIDAQAB +-----END PUBLIC KEY----- diff --git a/.travis/repositories b/.travis/repositories new file mode 100644 index 0000000..5596bbc --- /dev/null +++ b/.travis/repositories @@ -0,0 +1 @@ +http://dl-cdn.alpinelinux.org/alpine/edge/main diff --git a/.travis/setup-alpine b/.travis/setup-alpine new file mode 100755 index 0000000..f296041 --- /dev/null +++ b/.travis/setup-alpine @@ -0,0 +1,20 @@ +#!/bin/sh +# vim: set ts=4: +set -eu + +. "$(dirname "$0")"/common.sh + +title 'Setting up Alpine Linux' + +mkdir -p "${ALPINE_ROOT}${CLONE_DIR}" +mount --bind "$CLONE_DIR" "${ALPINE_ROOT}${CLONE_DIR}" + +alpine_run <<-EOF + apk add alpine-sdk + + adduser -G users -s /bin/sh -D $ALPINE_USER + addgroup $ALPINE_USER abuild + addgroup $ALPINE_USER wheel + + echo '%wheel ALL=(ALL) NOPASSWD: ALL' > /etc/sudoers.d/wheel +EOF |