summaryrefslogtreecommitdiff
path: root/.papr.sh
diff options
context:
space:
mode:
authorbaude <bbaude@redhat.com>2017-11-03 14:37:22 -0500
committerAtomic Bot <atomic-devel@projectatomic.io>2017-11-17 02:07:18 +0000
commitd2eda1a8648b7e6053627e48bf500f9671f0a6c2 (patch)
tree0b86ea7165ab02003b9e6fc480432774a72724a6 /.papr.sh
parentbf8b9a37df2aeead009996875f58c59625110472 (diff)
downloadpodman-d2eda1a8648b7e6053627e48bf500f9671f0a6c2.tar.gz
podman-d2eda1a8648b7e6053627e48bf500f9671f0a6c2.tar.bz2
podman-d2eda1a8648b7e6053627e48bf500f9671f0a6c2.zip
Enhancements to papr tests
The PR contains several enhancements to our CI testing. - enable lint testing on Fedora - add Centos Atomic as test platform - integration tests on run on the OS natively (uncontainerized) - builds are done in containers - inclusion of Vagrant file for local testing Signed-off-by: baude <bbaude@redhat.com> Closes: #18 Approved by: mheon
Diffstat (limited to '.papr.sh')
-rwxr-xr-x.papr.sh118
1 files changed, 91 insertions, 27 deletions
diff --git a/.papr.sh b/.papr.sh
index fb837d661..e3cb17509 100755
--- a/.papr.sh
+++ b/.papr.sh
@@ -1,37 +1,101 @@
#!/bin/bash
set -xeuo pipefail
-export GOPATH=$HOME/gopath
+DIST=$(cat /etc/redhat-release | awk '{print $1}')
+IMAGE=registry.fedoraproject.org/fedora:26
+PACKAGER=dnf
+if [[ ${DIST} != "Fedora" ]]; then
+ PACKAGER=yum
+ IMAGE=registry.centos.org/centos/centos:7
+fi
+
+if test -z "${INSIDE_CONTAINER:-}"; then
+ if [ -f /run/ostree-booted ]; then
+
+ # by default, the root LV on AH is only 3G, but we need a
+ # bit more for our tests
+ lvresize -r -L +4G atomicos/root
+
+ if [ ! -e /var/tmp/ostree-unlock-ovl.* ]; then
+ ostree admin unlock
+ fi
+ fi
+ # Restarting docker helps with permissions related to above.
+ systemctl restart docker
+
+ # somewhat mimic the spec conditional
+ source /etc/os-release
+ if [ "$ID" == fedora ]; then
+ PYTHON=python3
+ else
+ PYTHON=python
+ fi
+ docker run --rm \
+ --privileged \
+ -v $PWD:/go/src/github.com/projectatomic/libpod \
+ -v /etc/yum.repos.d:/etc/yum.repos.d.host:ro \
+ -v /:/host \
+ --workdir /go/src/github.com/projectatomic/libpod \
+ -e INSIDE_CONTAINER=1 \
+ -e PYTHON=$PYTHON \
+ ${IMAGE} /go/src/github.com/projectatomic/libpod/.papr.sh
+ systemd-detect-virt
+ ./test/test_runner.sh
+ exit 0
+fi
+
+export GOPATH=/go
export PATH=$HOME/gopath/bin:$PATH
-export GOSRC=$HOME/gopath/src/github.com/projectatomic/libpod
-
-(mkdir -p $GOSRC && cd /code && cp -r . $GOSRC)
-
-dnf install -y \
- bats \
- btrfs-progs-devel \
- bzip2 \
- device-mapper-devel \
- findutils \
- git \
- glib2-devel \
- gnupg \
- golang \
- gpgme-devel \
- libassuan-devel \
- libseccomp-devel \
- libselinux-devel \
- skopeo-containers \
- runc \
- make \
- ostree-devel \
- python \
- which
+export GOSRC=/$GOPATH/src/github.com/projectatomic/libpod
+
+${PACKAGER} install -y \
+ bats \
+ btrfs-progs-devel \
+ bzip2 \
+ device-mapper-devel \
+ findutils \
+ git \
+ glib2-devel \
+ gnupg \
+ golang \
+ gpgme-devel \
+ libassuan-devel \
+ libseccomp-devel \
+ libselinux-devel \
+ skopeo-containers \
+ runc \
+ make \
+ ostree-devel \
+ python \
+ which\
+ golang-github-cpuguy83-go-md2man
+
# PAPR adds a merge commit, for testing, which fails the
# short-commit-subject validation test, so tell git-validate.sh to only check
# up to, but not including, the merge commit.
export GITVALIDATE_TIP=$(cd $GOSRC; git log -2 --pretty='%H' | tail -n 1)
export TAGS="seccomp $($GOSRC/hack/btrfs_tag.sh) $($GOSRC/hack/libdm_tag.sh) $($GOSRC/hack/btrfs_installed_tag.sh) $($GOSRC/hack/ostree_tag.sh) $($GOSRC/hack/selinux_tag.sh)"
-make -C $GOSRC binaries install.tools all gofmt localintegration testunit TAGS="${TAGS}"
-#make -C $GOSRC lint
+
+make gofmt TAGS="${TAGS}"
+make testunit TAGS="${TAGS}"
+make install.tools TAGS="${TAGS}"
+
+# Only check lint and gitvalidation on more recent
+# distros with updated git and tooling
+if [[ ${PACKAGER} != "yum" ]]; then
+ HEAD=$GITVALIDATE_TIP make -C $GOSRC .gitvalidation TAGS="${TAGS}"
+ make lint
+ dnf install -y --installroot /host bats
+fi
+
+make TAGS="${TAGS}"
+make TAGS="${TAGS}" install PREFIX=/host/usr
+make TAGS="${TAGS}" test-binaries
+
+if [[ ${PACKAGER} == "yum" ]]; then
+ # Install EPEL to get Bats
+ ${PACKAGER} -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
+ ${PACKAGER} install --downloadonly --downloaddir=/tmp bats
+ cd /host && rpm2cpio /tmp/bats*.rpm | cpio -ivd
+fi