action #53915

switch "travis_test" aka. "openqa_dev" container to a supported base since Leap 42.3 is EOL

Added by okurz 8 months ago. Updated 3 months ago.

Status:ResolvedStart date:07/09/2019
Priority:NormalDue date:
Assignee:okurz% Done:

100%

Category:Feature requests
Target version:Current Sprint
Difficulty:
Duration:

Description

Tasks


Subtasks

action #56810: "stale element reference: element is not attached to the ...Closed


Related issues

Related to openQA Project - action #57050: Turn off travis Resolved 30/09/2019
Blocked by openQA Infrastructure - action #54137: Upgrade osd to a supported Leap version (from 42.3) Resolved 11/07/2019

History

#1 Updated by okurz 8 months 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?

#2 Updated by coolo 7 months ago

  • Status changed from New to Workable
  • Target version set to Current Sprint

Let's do it gangster

#3 Updated by okurz 7 months ago

  • Blocked by action #54137: Upgrade osd to a supported Leap version (from 42.3) added

#4 Updated by okurz 7 months 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

#5 Updated by coolo 6 months ago

  • Status changed from Blocked to Workable

unblocked

#6 Updated by coolo 6 months ago

  • Assignee changed from okurz to andriinikitin

we'll do that for circleci setup

#7 Updated by okurz 6 months 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.

#8 Updated by okurz 6 months 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.

#9 Updated by andriinikitin 5 months ago

This may be considered implemented inside circleci except codecov and doc generation, which should be addressed in https://progress.opensuse.org/issues/57050

#10 Updated by andriinikitin 5 months ago

#11 Updated by okurz 3 months 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.

#12 Updated by okurz 3 months 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.

https://github.com/os-autoinst/openQA/pull/2529

#13 Updated by okurz 3 months ago

  • Status changed from Feedback to Resolved

All done

Also available in: Atom PDF