-
Notifications
You must be signed in to change notification settings - Fork 442
Run OpenQA smoketest locally
Here are described the steps to run the smoketest of the webui locally. These tests are used in the openQA Setup for OBS.
We will replicate the steps done by the following scripts:
We will use virt-manager
to run the downloaded image. Make sure you have libvirt
and virt-manager
installed. Make sure the libvirtd.service
is up und running. On a machine with openSUSE Tumbleweed you should:
sudo zypper install libvirt virt-manager
sudo systemctl enable libvirtd --now
Make sure your user is part of the libvirt
group, otherwise virt-manager
needs to be started with root rights, which is usually not a good idea. You can do the following to achieve this:
- Check for the existence of the libvirt group ->
sudo getent group | grep libvirt
- Incase it does not exist ->
sudo groupadd --system libvirt
- Now add your user to the group ->
sudo usermod -a -G libvirt $(whoami)
- Restart the libvirtd.service ->
sudo systemctl restart libvirtd.service
- Navigate to the download subdirectory. It should be one of these:
- Download the
.qcow2
image:- e.g.:
curl -s http://download.opensuse.org/repositories/OBS:/Server:/2.10:/Staging/images/obs-server.x86_64-2.10.0-qcow2-Build1.17.qcow2
- e.g.:
- Open virt-manager in you console:
virt-manager
- Import the image:
- Click
File | New Virtual Machine | Import existing disk image | Browse Local | Browse
. - Select the
.qcow2
file you have downloaded. - Choose the operating system:
openSUSE Unknown
, and clickForward
. - In "Memory and CPU settings" stay with the defaults and click
Forward
. - Click
Finish
.
- Click
You should see a new window with a text console booting a system. It takes a while until you finally see the last output welcoming you to Open Build Services (OBS) Appliance.
In order to make it easier to access the virtual machine, we will enable its ssh daemon.
- In the QEMU/KVM window of the virtual machine login as root with de default password provided in the appliances:
- Login:
root
- Password:
opensuse
- Login:
- Enable the sshd service:
systemctl enable sshd --now
- Retrieve the ip of your virtual machine:
ip a | grep inet | grep eth0
- Try to enter the virtual machine from you local machine:
ssh root@IP_VIRTUAL_MACHINE
Depending on the image you have downloaded, you will need do clone a different git branch:
- For Unstable:
export GIT_BRANCH=master
- For 2.10:
export GIT_BRANCH=2.10
- For 2.9:
export GIT_BRANCH=2.9
Then you can do the following steps:
git clone --single-branch --branch $GIT_BRANCH --depth 1 https://github.com/openSUSE/open-build-service.git /tmp/open-build-service
cd /tmp/open-build-service/dist/t/
zypper -vv -n --gpg-auto-import-keys install --force-resolution --no-recommends chromedriver xorg-x11-fonts libxml2-devel libxslt-devel ruby2.5-devel
bundle.ruby2.5 install
cd /tmp/open-build-service/dist/t/
bundle.ruby2.5 exec rspec
In case you found an error running the tests, most probably you will need to restore the database to the initial setup:
cd /srv/www/obs/api/
rake db:drop db:create db:setup RAILS_ENV=production DISABLE_DATABASE_ENVIRONMENT_CHECK=1 SAFETY_ASSURED=1
Then you can run the tests again, as described in the previous section.
When a feature test fails, we generate a html
and png
file into the directory
/tmp/rspec_screens
To check these files, you can copy the file to your local machine with:
scp root@IP_VIRTUAL_MACHINE:/tmp/rspec_screens/screenshot-0040_package_spec.rb-24.png .
- Development Environment Overview
- Development Environment Tips & Tricks
- Spec-Tips
- Code Style
- Rubocop
- Testing with VCR
- Authentication
- Authorization
- Autocomplete
- BS Requests
- Events
- ProjectLog
- Notifications
- Feature Toggles
- Build Results
- Attrib classes
- Flags
- The BackendPackage Cache
- Maintenance classes
- Cloud uploader
- Delayed Jobs
- Staging Workflow
- StatusHistory
- OBS API
- Owner Search
- Search
- Links
- Distributions
- Repository
- Data Migrations
- next_rails
- Ruby Update
- Rails Profiling
- Installing a local LDAP-server
- Remote Pairing Setup Guide
- Factory Dashboard
- osc
- Setup an OBS Development Environment on macOS
- Run OpenQA smoketest locally
- Responsive Guidelines
- Importing database dumps
- Problem Statement & Solution
- Kickoff New Stuff
- New Swagger API doc
- Documentation and Communication
- GitHub Actions
- How to Introduce Software Design Patterns
- Query Objects
- Services
- View Components
- RFC: Core Components
- RFC: Decorator Pattern
- RFC: Backend models