#19 Provide some way to install `run-nightly.sh`, systemd service files etc.
Closed: Fixed None Opened 8 years ago by adamwill.

So after D544 and D547 get merged, the trigger stuff is almost a real software project! Except that we still have a few things that don't get installed by setup.py which we currently just tell people to put in place manually: the systemd services and run-nightly.sh (actually we're not doing anything with run-nightly.sh right now, but we should).

Unfortunately it seems setuptools / distutils fundamentally just does not provide the ability to install arbitrary stuff to arbitrary locations. You can include 'data' files, but these all get installed to one prescribed location - you can hack up the single target location with a bit of effort, but you can't install different data files to different locations.

So unless I'm missing something there, we're unfortunately going to have to combine different deployment methods somehow. My initial thought is to just have a Makefile which will call setup.py build when you do make and setup.py install then install the additional files when you do make install, but this feels like something there must be a better solution for...


This ticket had assigned some Differential requests:
D551
D547
D544

Ok so these are the things we would probably want to do during installation:

  • install python package with setup.py
  • copy systemd services and timers to /etc/sytemd/system
  • when running with Docker setup, copy additional systemd services and timers to /etc/systemd/system
  • when running with Docker setup, create docker containers with docker create

and, ideally

  • when running without docker, install OpenQA from repos (although I doubt that this will be possible)

I think at that point you might be blurring the lines conceptually between 'install the Fedora openQA tools/scheduler' and 'deploy openQA'. I'd like to keep the two separate, they don't feel like the same thing to me. I'd see the last two steps on your list as perhaps part of a fedora-openqa-deploy script or something like that; I was actually interested in making them into a Server role...

So good news, I was totally wrong about setup.py, we can use it to install stuff to arbitrary places:

https://docs.python.org/3.4/distutils/setupscript.html#installing-additional-files

yay. Also, I'm now thinking it makes sense to separate 'run jobs' and 'compose check' harder, so I'm giving check-compose its own systemd units and stuff; we can then drop the run-nightly.sh and just have nightly timers to run Branched and Rawhide openQA jobs.

I'll try and send diffs for this tomorrow if it all sounds OK.

Login to comment on this ticket.

Metadata