Highlights of the OBS frontend development - Sprint 44
People of the Builds! Another Sprint is over and here is what the OBS frontend team has achieved in the last two weeks (2018-07-30 to 2018-08-09).
Release of Azure Cloud Upload Feature
The beginning of August was hot in Germany! And while talking about weather, the cloud upload feature comes to our mind. The OBS team released the Azure Cloud Upload, yes! Just have a look at the blog post where it was announced and enjoy a step by step guide on how to configure and use OBS to upload your images to the Azure Cloud.
More Automation
In the last few months, we were working more and more on automating and improving our testing, building and deployment infrastructure. We introduced depfu to automatically update our gem dependencies. We started to use Docker containers in CI to test on openSUSE and eventually switching from Travis to CircleCI which also improved the speed. Last but not least, we’re using now the bundle_gems source service so we don’t need to package all our gem dependencies anymore. This enabled us to automatically create a OBS package for every pull request on GitHub. As a bonus, we report the status of the package build back into the pull request.
This brings many advantages. For instance, we also maintain the spec file for the obs-server package in GitHub. It already happened that we changed the spec file and broke the package build with it. We now know in advance if merging a pull request results in a broken package. Furthermore, we test not only on SLE12 SP3 in CircleCI, but also support many other base systems like openSUSE Leap.
The implementation is relatively simple at the moment: We just iterate over open pull requests for master and create and update sub projects in OBS:Server:Unstable. The build result gets reported back to GitHub with the excellent Octokit toolkit. We currently gather experience with this and maybe plan to integrate this directly into OBS in the future. If this sounds interesting to you, let us know! The current implementation can be found here.
Progress on the Frontend Migration
The work with Bootstrap 4 is progressing. We are currently focusing on the pages for packages. The page for revisions is now done and already merged. Like all new Bootstrap views, this is currently only available to a subset of the users (mostly SUSE employees) while we make sure everything is fancy and working as expected. Here’s a preview:
Test Suite
Write Tests for the JSON API for Factory Staging Controller
Some time ago, we merged the factory plugin from the openSUSE release engineering team and overlooked that we inherited a JSON API (OBS only supported a XML API so far). We learned this the hard way by breaking it. Of course, we fixed it right away. We decided though to add some more tests to fully cover this. That’s what we did this sprint.
Increase Coverage for the Patchinfo Feature
Continuing migration and improving our test suite, we added some new tests covering the patchinfo feature for packages.
Next Sprint More
That was everything! Remember you can follow the work of the OBS team live in our Trello Board. Do not miss our next blog post!