action #53915
closedswitch "travis_test" aka. "openqa_dev" container to a supported base since Leap 42.3 is EOL
100%
Description
Tasks¶
- switch container to a supported base, e.g. Leap 15.0 or 15.1
- test out e.g. using
docker build docker/travis_test/
- provide all missing dependencies in e.g. https://build.opensuse.org/project/show/devel:openQA:Leap:15.1
Updated by okurz over 5 years ago
I tried to switch the container locally and found for example that "perl-Devel-Cover-Report-Codecov" does not exist. I created https://build.opensuse.org/request/show/713698# for a SR for Factory but we are missing dependencies as well: "nothing provides perl(Furl) >= 3.07, nothing provides perl(Test::Mock::Guard) >= 0.10, nothing provides perl(Test::Requires::Git) >= 1.003" . I guess a better way would be to create a pristine new OBS project, link all missing deps there, test it against Factory, and then submit the whole project?
Updated by coolo over 5 years ago
- Status changed from New to Workable
- Target version set to Current Sprint
Let's do it gangster
Updated by okurz over 5 years ago
- Blocked by action #54137: Upgrade osd to a supported Leap version (from 42.3) added
Updated by okurz over 5 years ago
- Status changed from Workable to Blocked
- Assignee set to okurz
gangster might sound cool but I would really keep it at this version as long as OSD is still on Leap 42.3
Updated by coolo about 5 years ago
- Assignee changed from okurz to andriinikitin
we'll do that for circleci setup
Updated by okurz about 5 years ago
I think the main thing we managed is to confuse andriinikitin why some dependencies are not there :D I think #56564 is a symptom of this.
https://build.opensuse.org/project/show/home:okurz:codecov should show all missing dependencies for Leap 15.1 . Should I link them into devel:openQA:Leap:15.1 ?
But in any case this inspired me for https://github.com/os-autoinst/openQA/pull/2319 which allows easier testing of dependencies so https://build.opensuse.org/project/show/home:okurz:branches:devel:openQA:feature:devel_test can also be used for easier testing.
Updated by okurz about 5 years ago
Based on my test in https://build.opensuse.org/project/show/home:okurz:branches:devel:openQA:feature:devel_test I provided missing packages in devel:openQA:Leap:15.1 :
for i in perl-Test-Mock-Guard perl-Furl perl-Devel-Cover-Report-Codecov perl-Test-Requires-Git perl-Test-Perl-Critic perl-Test-Requires-Git perl-Git-Version-Compare perl-MCE ; do osc linkpac openSUSE:Factory $i devel:openQA:Leap:15.1; done
now we should have all dependencies so either way of continuing should work.
Updated by andriinikitin about 5 years ago
This may be considered implemented inside circleci except codecov and doc generation, which should be addressed in https://progress.opensuse.org/issues/57050
Updated by andriinikitin about 5 years ago
- Related to action #57050: Turn off travis added
Updated by okurz about 5 years ago
- Status changed from Workable to Feedback
- Assignee changed from andriinikitin to okurz
I did this now for the remaining container which we need for os-autoinst: https://github.com/os-autoinst/openQA/pull/2497 , merged. Will monitor how os-autoinst.
Updated by okurz about 5 years ago
I failed again. I thought the tag in Dockerfile is wrong but first it was the project meta config still pointing to 42.3 repos. Adjusted now to 15.1 but then still unresolvable. It must be opensuse/leap:15.1 but coolo suggests I do not go over git to develop.
https://build.opensuse.org/package/view_file/devel:openQA/openqa_dev/_service?expand=1 is
<services>
<service name="download_url">
<param name="protocol">https</param>
<param name="host">raw.githubusercontent.com</param>
<param name="path">/os-autoinst/openQA/master/docker/travis_test/Dockerfile</param>
<param name="filename">Dockerfile</param>
</service>
</services>
I should delete that and try Dockerfile manually, currently:
#!BuildTag: openqa_dev
FROM opensuse:15.1
# 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:/$releasever/openSUSE_Leap_$releasever' devel_openqa
RUN zypper in -y -C \
glibc-i18ndata \
glibc-locale \
automake \
curl \
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 \
python3-base \
python3-requests \
python3-future \
sqlite3 \
postgresql-server \
which \
chromedriver \
xorg-x11-fonts \
'rubygem(sass)' \
perl \
ShellCheck \
python3-setuptools \
python3-yamllint \
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(File::Touch)' \
'perl(IO::Scalar)' \
'perl(IO::Socket::SSL)' \
'perl(IPC::Run)' \
'perl(IPC::System::Simple)' \
'perl(JSON::XS)' \
'perl(JavaScript::Minifier::XS)' \
'perl(LWP::Protocol::https)' \
'perl(Minion) >= 9.13' \
'perl(Module::CPANfile)' \
'perl(Module::Pluggable)' \
'perl(Mojo::IOLoop::ReadWriteProcess)' \
'perl(Mojo::Pg)' \
'perl(Mojo::RabbitMQ::Client)' \
'perl(Mojo::SQLite)' \
'perl(Minion::Backend::SQLite)' \
'perl(Mojolicious)' \
'perl(Mojolicious::Plugin::AssetPack)' \
'perl(Mojolicious::Plugin::RenderFile)' \
'perl(JSON::Validator)' \
'perl(YAML::XS) >= 0.67' \
'perl(Net::OpenID::Consumer)' \
'perl(Net::SNMP)' \
'perl(Net::SSH2)' \
'perl(Perl::Critic)' \
'perl(Perl::Critic::Freenode)' \
'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::Strict)' \
'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::Diff)' \
'perl(CommonMark)' \
'perl(Time::ParseDate)' \
'perl(XSLoader) >= 0.24' \
'perl(XML::SemanticDiff)' \
'TimeDate' \
perl-Archive-Extract \
perl-Test-Simple \
'perl(aliased)' \
systemd-sysvinit \
systemd libudev1 tack
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
ENTRYPOINT ["/bin/bash"]
WORKDIR $OPENQA_DIR
and then changed "FROM opensuse:15.1" to "FROM opensuse/leap:15.1" but still unresolvable. Maybe I need to change "images" to "containers" in project meta as well?
EDIT: 2019-11-20: changed more, e.g. now in project meta:
<repository name="containers">
<path project="devel:openQA" repository="openSUSE_Leap_15.1"/>
<path project="openSUSE:Containers:Leap:15.1" repository="containers"/>
<arch>x86_64</arch>
</repository>
retriggered a test of os-autoinst and in https://travis-ci.org/os-autoinst/os-autoinst/builds/612757831#L464 I get "The command "docker build --no-cache docker/travis_test -t os-autoinst/travis_test:latest" failed and exited with 1 during ." so it seems it did something.
A newly created PR for os-autoinst seems to work fine: https://github.com/os-autoinst/os-autoinst/pull/1271#issuecomment-556009996 . Created PR for openQA: https://github.com/os-autoinst/openQA/pull/2529
After this is done we need to replace the Dockerfile in OBS back with the one checked out from git.