diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..5c4b09e --- /dev/null +++ b/Dockerfile @@ -0,0 +1,148 @@ +#!BuildTag: openqa_dev +FROM opensuse:42.3 + +# Define environment variable +ENV NAME openQA test environment +ENV LANG en_US.UTF-8 + +RUN zypper ar -f -G "http://download.opensuse.org/repositories/devel:/openQA:/Leap:/42.3/openSUSE_Leap_42.3" devel_openqa + +RUN zypper in -y -C \ + glibc-i18ndata \ + glibc-locale \ + automake \ + curl \ + dbus-1-devel \ + fftw3-devel \ + gcc \ + gcc-c++ \ + git \ + gmp-devel \ + gzip \ + libexpat-devel \ + libsndfile-devel \ + libssh2-1 \ + libssh2-devel \ + libtheora-devel \ + libtool \ + libxml2-devel \ + make \ + opencv-devel \ + patch \ + postgresql-devel \ + qemu \ + qemu-tools \ + qemu-kvm \ + tar \ + optipng \ + sqlite3 \ + postgresql-server \ + which \ + chromedriver \ + xorg-x11-fonts \ + 'rubygem(sass)' \ + perl \ + sudo \ + 'perl(App::cpanminus)' \ + 'perl(Archive::Extract)' \ + 'perl(BSD::Resource)' \ + 'perl(CSS::Minifier::XS)' \ + 'perl(Carp::Always)' \ + 'perl(Class::Accessor::Fast)' \ + 'perl(Config)' \ + 'perl(Config::IniFiles)' \ + 'perl(Config::Tiny)' \ + 'perl(Cpanel::JSON::XS)' \ + 'perl(Crypt::DES)' \ + 'perl(Cwd)' \ + 'perl(DBD::Pg)' \ + 'perl(DBD::SQLite)' \ + 'perl(DBIx::Class)' \ + 'perl(DBIx::Class::DeploymentHandler)' \ + 'perl(DBIx::Class::DynamicDefault)' \ + 'perl(DBIx::Class::OptimisticLocking)' \ + 'perl(DBIx::Class::Schema::Config)' \ + 'perl(Data::Dump)' \ + 'perl(Data::Dumper)' \ + 'perl(Digest::MD5) >= 2.55' \ + 'perl(Data::OptList)' \ + 'perl(DateTime::Format::Pg)' \ + 'perl(DateTime::Format::SQLite)' \ + 'perl(Devel::Cover)' \ + 'perl(Devel::Cover::Report::Codecov)' \ + 'perl(ExtUtils::MakeMaker) >= 7.12' \ + 'perl(Exception::Class)' \ + 'perl(File::Copy::Recursive)' \ + 'perl(IO::Socket::SSL)' \ + 'perl(IPC::Run)' \ + 'perl(IPC::System::Simple)' \ + 'perl(JSON::XS)' \ + 'perl(JavaScript::Minifier::XS)' \ + 'perl(LWP::Protocol::https)' \ + 'perl(Minion)' \ + 'perl(Module::CPANfile)' \ + 'perl(Mojo::IOLoop::ReadWriteProcess)' \ + 'perl(Mojo::Pg)' \ + 'perl(Mojo::RabbitMQ::Client)' \ + 'perl(Mojolicious)' \ + 'perl(Mojolicious::Plugin::AssetPack)' \ + 'perl(Mojolicious::Plugin::RenderFile)' \ + 'perl(Net::DBus)' \ + 'perl(Net::OpenID::Consumer)' \ + 'perl(Net::SNMP)' \ + 'perl(Net::SSH2)' \ + 'perl(Perl::Critic)' \ + 'perl(Perl::Tidy)' \ + 'perl(Pod::POM)' \ + 'perl(Pod::Coverage)' \ + 'perl(SQL::SplitStatement)' \ + 'perl(SQL::Translator)' \ + 'perl(Selenium::Remote::Driver)' \ + 'perl(Socket::MsgHdr)' \ + 'perl(Sort::Versions)' \ + 'perl(Test::Compile)' \ + 'perl(Test::Fatal)' \ + 'perl(Test::Pod)' \ + 'perl(Test::Mock::Time)' \ + 'perl(Test::MockModule)' \ + 'perl(Test::MockObject)' \ + 'perl(Test::Output)' \ + 'perl(Socket::MsgHdr)' \ + 'perl(Test::Warnings)' \ + 'perl(Text::Markdown)' \ + 'perl(Time::ParseDate)' \ + 'perl(XSLoader) >= 0.24' \ + 'TimeDate' \ + perl-Archive-Extract \ + perl-Test-Simple \ + 'perl(aliased)' \ + dbus-1 systemd-sysvinit \ + systemd libudev1 tack + +RUN cp /usr/lib/systemd/system/dbus.service /etc/systemd/system/; \ + sed -i 's/OOMScoreAdjust=-900//' /etc/systemd/system/dbus.service +VOLUME ["/sys/fs/cgroup", "/run"] + +CMD ["/sbin/init"] + +ENV OPENQA_DIR /opt/openqa +ENV NORMAL_USER squamata + +RUN echo "$NORMAL_USER ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers +RUN mkdir -p /home/$NORMAL_USER +RUN useradd -r -d /home/$NORMAL_USER -g users --uid=1000 $NORMAL_USER +RUN chown $NORMAL_USER:users /home/$NORMAL_USER +VOLUME [ "/opt/openqa" ] + +# explicitly set user/group IDs + +RUN mkdir -p /opt/testing_area +RUN chown -R $NORMAL_USER:users /opt/testing_area + +COPY entrypoint.sh /usr/bin/entrypoint +RUN ["chmod","+x","/usr/bin/entrypoint"] +USER ${NORMAL_USER} +ENTRYPOINT ["entrypoint"] +WORKDIR $OPENQA_DIR + + diff --git a/_service b/_service index 13385ae..1d0e924 100644 --- a/_service +++ b/_service @@ -1,18 +1,22 @@ - + + docker/travis_test/entrypoint.sh + docker/travis_test/Dockerfile + openQA.spec + openQA-test.spec git://github.com/os-autoinst/openQA.git - 4.5 + master + 4.6 %ct.%h git - master enable coolo@suse.com - + + + xz *.tar - - diff --git a/entrypoint.sh b/entrypoint.sh new file mode 100644 index 0000000..59fd241 --- /dev/null +++ b/entrypoint.sh @@ -0,0 +1,46 @@ +#!/bin/bash + +set -e + +cp -rd /opt/openqa /opt/testing_area + +cd /opt/testing_area/openqa + +function create_db { + set -e + export PGDATA=$(mktemp -d) + initdb --auth=trust -N $PGDATA + +cat >> $PGDATA/postgresql.conf <