aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
author7heo <7heo@mail.com>2016-09-17 15:24:46 +0200
committerJakub Jirutka <jakub@jirutka.cz>2017-01-18 12:50:54 +0100
commit47e87b829c09ae3c6f3bcbabc9824d4be9bf35f9 (patch)
treea01b14d301943365196e4b2bedad8feabbb45bf7
parent5906619ff0d1cca4466cb4e93595c6cc5f005111 (diff)
downloadmkinitfs-47e87b829c09ae3c6f3bcbabc9824d4be9bf35f9.tar.bz2
mkinitfs-47e87b829c09ae3c6f3bcbabc9824d4be9bf35f9.tar.xz
nlplug-findfs: enable automated testing
-rw-r--r--.travis.yml10
-rw-r--r--.travis/common.sh45
-rwxr-xr-x.travis/install-alpine34
-rwxr-xr-x.travis/install-deps17
-rw-r--r--.travis/keys/alpine-devel@lists.alpinelinux.org-4a6a0840.rsa.pub9
-rw-r--r--.travis/keys/alpine-devel@lists.alpinelinux.org-4d07755e.rsa.pub9
-rw-r--r--.travis/keys/alpine-devel@lists.alpinelinux.org-5243ef4b.rsa.pub9
-rw-r--r--.travis/keys/alpine-devel@lists.alpinelinux.org-524d27bb.rsa.pub9
-rw-r--r--.travis/keys/alpine-devel@lists.alpinelinux.org-5261cecb.rsa.pub9
-rw-r--r--.travis/repositories1
-rwxr-xr-x.travis/setup-alpine20
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