diff options
author | baude <bbaude@redhat.com> | 2017-11-03 14:37:22 -0500 |
---|---|---|
committer | Atomic Bot <atomic-devel@projectatomic.io> | 2017-11-17 02:07:18 +0000 |
commit | d2eda1a8648b7e6053627e48bf500f9671f0a6c2 (patch) | |
tree | 0b86ea7165ab02003b9e6fc480432774a72724a6 /.papr.sh | |
parent | bf8b9a37df2aeead009996875f58c59625110472 (diff) | |
download | podman-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.sh | 118 |
1 files changed, 91 insertions, 27 deletions
@@ -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 |