Design and Implementation of a Continuous Integration System

Total Page:16

File Type:pdf, Size:1020Kb

Design and Implementation of a Continuous Integration System Prakash Acharya DESIGN AND IMPLEMENTATION OF A CONTINUOUS INTEGRATION SYSTEM DESIGN AND IMPLEMENTATION OF A CONTINUOUS INTEGRATION SYSTEM Prakash Acharya Bachelor’s Thesis Spring 2019 Information Technology Oulu University of Applied Sciences ABSTRACT Oulu University of Applied Sciences Information Technology, Internet Services Author: Prakash Acharya Title of the bachelor’s thesis: Design and Implementation of a Continuous Integration System Supervisor: Lasse Haverinen Term and year of completion: Spring 2019 Number of pages: 43 Not having an automated test system in the software development process leaves space for errors to go unnoticed in code review, which can break a codebase if integrated. The aim of the Bachelor’s thesis was to design and implement a Continuous Integration system where tests and build tasks could be automated. The Buildbot framework was used as a Continuous Integration and automation framework. The Ansible playbook was used for automating the deployment of Buildbot configuration. The Buildbot configuration was created in such a way that it allows Buildbot instances to be created easily and in a configurable manner. In addition, automation of the Python static code analysis tool, Prospector, was added to the Continuous Integration system. The result of having a configurable Buildbot system was that the developers could start adding automation tasks and test and verify their change without affecting the production instance. Having an automated static code analysis run on changes brings into attention potential problems and error before they are integrated. Even though the Buildbot system is not taken into use, it was tested in a test environment and it is shown to work. It will be taken into use once the configuration for an integration builder is added. The main benefit of the system is that tests and build tasks can be added and automated in Buildbot. Keywords: Ansible, Buildbot, Continuous Integration, Gitlab 3 PREFACE The thesis work was done for GE Healthcare Finland Oy, Helsinki, during the Spring of 2019. I would like to thank my thesis instructor, Lasse Haverinen, and my language teacher, Kaija Posio, for their feedback on my writing. I would also like to thank my thesis supervisor, Riku Hämäläinen, for his help in clarifying ideas and tasks during the work. Prakash Acharya 02.05.2019, Helsinki 4 CONTENTS ABSTRACT 3 PREFACE 4 CONTENTS 5 1 INTRODUCTION 6 2 SOFTWARE DEVELOPMENT 8 2.1 Waterfall development 8 2.2 Spiral development 10 2.3 Agile development 12 3 CONTINUOUS INTEGRATION 13 3.1 Solutions 13 3.1.1 Buildbot 13 3.1.2 Jenkins 15 3.1.3 Gitlab CI 16 3.2 Continuous Delivery 17 3.3 Continuous Deployment 18 4 SOFTWARE TESTING 20 4.1 Functional testing 20 4.2 Non-functional testing 22 5 CONFIGURATION MANAGEMENT 24 Ansible 24 6 CONTINUOUS INTEGRATION DESIGN 28 6.1 Design choices 29 6.2 Components and design 30 7 IMPLEMENTATION 33 8 CONCLUSION 39 9 ANALYSIS AND FURTHER PLANS 40 REFERENCES 41 5 1 INTRODUCTION Software development is a process encompassing requirements definition, planning, designing, writing code, testing, releasing, and maintenance of a software product. As software projects grow bigger, in terms of both developers and complexity, the development workflow in the team also becomes complex. To reduce the complexity involved in the integration and release cycle of development, the concept of Continuous Integration (CI) and Continuous Delivery (CD) were introduced in the software development process. In Continuous Integration, the process of testing software changes and integration are automated. Continuous Delivery takes this further by automating building and production of software and related artefacts regularly. CI and CD together ensure a regular incremental change to the software product. Testing is an integral part of a software development process. Tests are important to ensure that changes do not introduce bugs, to ensure that changes do not break the existing functionality, and to ensure that the software works as it is required to. Software changes can be tested manually, or they can be automated depending in which phase of the development process they are carried out. Test automation is preferred to manual testing because it helps organizations to save resources and team time. The thesis work was carried out for GE Healthcare Finland Oy, Helsinki. GE Healthcare produces patient monitoring devices. The work was done in a tool development team responsible for development and maintenance of tools and infrastructure used for automating build, integration, and release of software. The thesis project had two objectives. The primary objective was to design and implement a Continuous Integration system for the team. To improve the current workflow, where changes to the tools developed by the team are integrated after code review, the requirement was to have a Continuous Integration system where tests and build tasks could be automated. When designing the CI system, another requirement was to design it 6 in such a way that allows the CI system to be easily reproduced. This requirement originates from the fact that verifying a change in the CI system itself, unlike in the tools which the CI system automates tasks for, requires a replication of the production instance of the CI system and making changes on top of it. This involves changing production environment specific parameters, such as database connections and secrets from the CI configuration. As the CI system is expanded with more automation tasks, identifying the variable components and changing them becomes difficult. In order to make verifying changes to the CI system itself easy, the requirement was to design the CI system to have a way to easily handle environment specific parameters. The other benefit of this approach would be that multiple developers could work on making changes to the CI system at the same time and verifying their changes independently without affecting the production instance of the CI system. The secondary objective was to automate the static code analysis for Python tools in the newly developed Continuous Integration system so that the system would have a value for taking into use. Static code analysis tools analyse source code, without compiling or running them, to detect errors and complexity in the code. Most of the tools developed by the team are Python tools. Automation of the static code analysis on changes would give an immediate feedback to a developer if errors, coding standard violations, complexity or potential problems were detected in the change. Currently, developers manually run a static code analysis before submitting a change for a code review. This objective of the project shifts running of the static code analysis from manual to automated. Having the static code analysis automated also eliminates the possibility of a human error where a developer forgets to run the static code analysis. In addition, it also paves a way for expanding the CI to add more rigorous tests, e.g. unit tests and system tests, and automation tasks based on the needs of the team. 7 2 SOFTWARE DEVELOPMENT Since software development involves people with different skillsets and their interaction for achieving a common goal, it is elementary that they co-operate and have transparency in their work. Different software development process models have been developed with an aim to optimise the process. While some process models, such as the Waterfall model, prescribe certain development steps to be executed in a certain order, other rather broader mindsets, such as the Agile, emphasise values and principles that should drive the development process. The size and requirements of a project play a critical role in determining the suitability of a model for the project. 2.1 Waterfall development The Waterfall development model was one of the first to be introduced in the software development process. According to Hamilton (1999, ch1), the Waterfall model added a formal structure to the overall software development process for the first time and identified key steps, such as requirements definition, system design, coding, and testing. The main feature of this model is linearity: development is carried out in phases and each phase accomplishes a goal. “-- it was created in 1970 by Winston Royce, and addresses all of the standard life cycle phases. It progresses nicely through requirements gathering and analysis, to architectural design, detailed design, coding, debugging, system testing, release, and maintenance. It requires detailed documentation at each stage, along with reviews, archiving of the documents, sign-offs at each process phase, configuration management, and close management of the entire project. It's a model of the plan-driven process.” (Dooley 2011, ch2.) The figure 1 below shows how development is carried out in phases, each working as an input for the next. For instance, a software architectural design phase starts only when all the requirements for the project have been defined. This requires that all the requirements for a software are well-known and 8 exhaustively covered during a requirement gathering phase. The same pattern is seen throughout the process. This model is heavily criticised. FIGURE 1. Unmodified Waterfall model (Wikipedia 2019c. Date of retrieval 24.03.2019) The Waterfall model works well for projects where the requirements for the project are well understood at the beginning of the process. Since it makes a clear distinction between the phases, planning and allocation of resources as well as progress tracking can be more effective. For instance, it works when developing software for a digital clock whose design or requirements are unlikely to change during the development. However, this model does not work for most systems. Having no iteration is one of its major drawbacks. Dooley (2011, ch2) argues that the model is fundamentally based on an assembly-line mentality for developing software. The waterfall diagram shows no way to go back and rework on design if a problem during the implementation is found.
Recommended publications
  • Buildbot: a Continuous Integration System
    Buildbot: A continuous integration system Krzysztof Voss January, 2013 Outline • Testing and Continuous Integration • Introduction to Buildbot • BuildMaster • BuildMaster components • BuildSlave • Installation and Usage 1 Testing and continuous integration Tests: • the best specification • safety-net for refactoring • bug identification Tests are the most effective if we: • run them often • run them on different machines/environments • can easily see their results 2 The most straightforward approach would entail: • logging in to different machines • fetching the newest source code • running tests • analyzing their output In case we want to test a few environments, repeating the above steps is tedious. Developers do not focus on the code, instead they run tests. A continuous integration system performs all of these steps for us, so developers can focus on their code. 3 Introduction to Buildbot: Features • run builds on a variety of BuildSlave platforms • arbitrary build process: handles projects using C, Python, . • minimal host requirements: python and Twisted • BuildSlave can be behind a firewall if they can still do checkout • status delivery through web page, email, IRC, other protocols • track builds in progress, provide estimated completion time • flexible configuration by subclassing generic build process classes 4 • debug tools to force a new build, submit fake Changes, query BuildSlave status • released under the GPL source: http://buildbot.net/buildbot/docs/current/manual/introduction.html 5 Introduction to Buildbot: Overview system overview source: http://buildbot.net/buildbot/docs/0.8.1/full.html 6 BuildMaster BuildMaster components source: http://buildbot.net/buildbot/docs/0.8.1/full.html 7 BuildMaster BuildMaster: • holds the configuration of the entire system.
    [Show full text]
  • Analysis of Devops Tools to Predict an Optimized Pipeline by Adding Weightage for Parameters
    International Journal of Computer Applications (0975 – 8887) Volume 181 – No. 33, December 2018 Analysis of DevOps Tools to Predict an Optimized Pipeline by Adding Weightage for Parameters R. Vaasanthi V. Prasanna Kumari, PhD S. Philip Kingston Research Scholar, HOD, MCA Project Manager SCSVMV University Rajalakshmi Engineering Infosys, Mahindra City, Kanchipuram College, Chennai Chennai ABSTRACT cloud. Now-a-days more than ever, DevOps [Development + Operations] has gained a tremendous amount of attention in 2. SCM software industry. Selecting the tools for building the DevOps Source code management (SCM) is a software tool used for pipeline is not a trivial exercise as there are plethora’s of tools development, versioning and enables team working in available in market. It requires thought, planning, and multiple locations to work together more effectively. This preferably enough time to investigate and consult other plays a vital role in increasing team’s productivity. Some of people. Unfortunately, there isn’t enough time in the day to the SCM tools, considered for this study are GIT, SVN, CVS, dig for top-rated DevOps tools and its compatibility with ClearCase, Mercurial, TFS, Monotone, Bitkeeper, Code co- other tools. Each tool has its own pros/cons and compatibility op, Darcs, Endevor, Fossil, Perforce, Rational Synergy, of integrating with other tools. The objective of this paper is Source Safe, and GNU Bazaar. Table1 consists of SCM tools to propose an approach by adding weightage to each with weightage. parameter for the curated list of the DevOps tools. 3. BUILD Keywords Build is a process that enables source code to be automatically DevOps, SCM, dependencies, compatibility and pipeline compiled into binaries including code level unit testing to ensure individual pieces of code behave as expected [4].
    [Show full text]
  • Studying Routing Issues in Vanets by Using NS-3 Bachelor Thesis on Informatics
    Studying Routing Issues in VANETs by Using NS-3 Bachelor Thesis on Informatics by Christos Profentzas Thesis supervisor Dr. Periklis Chatzimisios Alexander Technological Educational Institute of Thessaloniki Department of Informatics A.T.E.I. of Thessaloniki P.O. Box 141 GR -547 00 Thessaloniki, Macedonia, Greece November 2012 i Acknowledgements This research project would not have been possible without the sup- port of many people. The author wishes to express his gratitude to his supervisor, Assistant Professor Periklis Chatzimisios (Alexan- der TEI of Thessaloniki, Greece) and Assistant Professor Gennaro Boggia (Politecnico di Bari, Italy) who was abundantly helpful and offered invaluable assistance, support and guidance. Deepest grati- tude are also due to the members of the supervisory committee, Assis- tant Professor Luigi Alfredo Grieco and Ph.D Student Giuseppe Piro without whose knowledge and assistance this study would not have been successful. Special thanks also to all group members of Telematics Lab at the Electrical & Electronics Engineering Depart- ment of Politecnico di Bari, for sharing the literature, invaluable assis- tance and laboratory facilities. The author would also like to convey thanks to the Office of Erasmus Program and Faculty of Alexander Technological Educational Institution of Thessaloniki for providing the financial means. Abstract A Vehicular Ad-hoc Network (VANET) is a system of nodes (vehi- cles) that are being connected with each other by wireless technolo- gies. Usually the nodes are moving with very high speeds and, thus, the topology is unpredictable and frequently changing. Such networks can be stand alone and making paths along vehicles or may be con- nected by an infrastructure internet.
    [Show full text]
  • This Book Doesn't Tell You How to Write Faster Code, Or How to Write Code with Fewer Memory Leaks, Or Even How to Debug Code at All
    Practical Development Environments By Matthew B. Doar ............................................... Publisher: O'Reilly Pub Date: September 2005 ISBN: 0-596-00796-5 Pages: 328 Table of Contents | Index This book doesn't tell you how to write faster code, or how to write code with fewer memory leaks, or even how to debug code at all. What it does tell you is how to build your product in better ways, how to keep track of the code that you write, and how to track the bugs in your code. Plus some more things you'll wish you had known before starting a project. Practical Development Environments is a guide, a collection of advice about real development environments for small to medium-sized projects and groups. Each of the chapters considers a different kind of tool - tools for tracking versions of files, build tools, testing tools, bug-tracking tools, tools for creating documentation, and tools for creating packaged releases. Each chapter discusses what you should look for in that kind of tool and what to avoid, and also describes some good ideas, bad ideas, and annoying experiences for each area. Specific instances of each type of tool are described in enough detail so that you can decide which ones you want to investigate further. Developers want to write code, not maintain makefiles. Writers want to write content instead of manage templates. IT provides machines, but doesn't have time to maintain all the different tools. Managers want the product to move smoothly from development to release, and are interested in tools to help this happen more often.
    [Show full text]
  • Expert Python Programming Third Edition
    Expert Python Programming Third Edition Become a master in Python by learning coding best practices and advanced programming concepts in Python 3.7 Michał Jaworski Tarek Ziadé BIRMINGHAM - MUMBAI Expert Python Programming Third Edition Copyright © 2019 Packt Publishing All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews. Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the authors, nor Packt Publishing or its dealers and distributors, will be held liable for any damages caused or alleged to have been caused directly or indirectly by this book. Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information. Commissioning Editor: Kunal Chaudhari Acquisition Editor: Chaitanya Nair Content Development Editor: Zeeyan Pinheiro Technical Editor: Ketan Kamble Copy Editor: Safis Editing Project Coordinator: Vaidehi Sawant Proofreader: Safis Editing Indexer: Priyanka Dhadke Graphics: Alishon Mendonsa Production Coordinator: Shraddha Falebhai First published: September 2008 Second edition: May 2016 Third edition: April 2019 Production reference: 1270419 Published by Packt Publishing Ltd. Livery Place 35 Livery Street Birmingham B3 2PB, UK. ISBN 978-1-78980-889-6 www.packtpub.com To my beloved wife, Oliwia, for her love, inspiration, and her endless patience.
    [Show full text]
  • Driving and Virtualizing Control Systems: the Open Source Approach Used in Whiterabbit
    Driving and virtualizing control systems: the Open Source approach used in WhiteRabbit Javier Muñoz Mellid & Samuel Iglesias Gonsalvez Academia-Industry Matching event on Technology of Controls for Accelerators and Detectors November 2013 Agenda Knowing Igalia The value of the Open Source approach Open Source approach in WhiteRabbit A walk on technical details and demo Driving and virtualizing control systems: the Open Source approach used in WhiteRabbit Javier Muñoz Mellid & Samuel Iglesias Gonsalvez What is Igalia? Open Source Company 40 engineers and hackers working around the globe Hacking upstream in different technologies and communities kernel (Linux) virtualization (QEMU/KVM) browsers/multimedia (WebKit, Blink, GStreamer...) compilers (V8, JavaScriptCore...) UI (GTK+,...) documents (Evince, LibreOffice...) distros (Debian, Tizen...) automotive/IVI 13 years old now! www.igalia.com Driving and virtualizing control systems: the Open Source approach used in WhiteRabbit Javier Muñoz Mellid & Samuel Iglesias Gonsalvez Partnering Linux Foundation www.linuxfoundation.org/news- media/announcements/2011/04/igalia-joins-linux- foundation W3C www.igalia.com/nc/igalia-247/news/item/igalia-joins- the-world-wide-web-consortium Tizen Association www.igalia.com/nc/igalia-247/news/item/igalia-joins- the-tizen-association-partner-program/ ... Driving and virtualizing control systems: the Open Source approach used in WhiteRabbit Javier Muñoz Mellid & Samuel Iglesias Gonsalvez What services and solutions provides Igalia? We are experts in Open Source
    [Show full text]
  • Splash Documentation Release 3.5
    Splash Documentation Release 3.5 Scrapinghub Jun 16, 2020 Contents 1 Documentation 3 1.1 Installation................................................3 1.2 Splash HTTP API............................................6 1.3 Splash Scripts Tutorial.......................................... 18 1.4 Splash Lua API Overview........................................ 24 1.5 Splash Scripts Reference......................................... 26 1.6 Response Object............................................. 67 1.7 Request Object.............................................. 69 1.8 Element Object.............................................. 71 1.9 Working with Binary Data........................................ 87 1.10 Available Lua Libraries......................................... 88 1.11 Splash and Jupyter............................................ 95 1.12 FAQ.................................................... 97 1.13 Contributing to Splash.......................................... 102 1.14 Implementation Details......................................... 103 1.15 Changes................................................. 105 i ii Splash Documentation, Release 3.5 Splash is a javascript rendering service. It’s a lightweight web browser with an HTTP API, implemented in Python 3 using Twisted and QT5. The (twisted) QT reactor is used to make the service fully asynchronous allowing to take advantage of webkit concurrency via QT main loop. Some of Splash features: • process multiple webpages in parallel; • get HTML results and/or take screenshots; • turn
    [Show full text]
  • Buildbot Documentation Release 0.9.15
    Buildbot Documentation Release 0.9.15 Brian Warner Jan 02, 2018 Contents 1 Buildbot Tutorial 3 1.1 First Run.................................................3 1.2 First Buildbot run with Docker......................................6 1.3 A Quick Tour...............................................9 1.4 Further Reading............................................. 17 2 Buildbot Manual 23 2.1 Introduction............................................... 23 2.2 Installation................................................ 29 2.3 Concepts................................................. 45 2.4 Secret Management........................................... 56 2.5 Configuration............................................... 58 2.6 Transition to “worker” terminology................................... 245 2.7 Customization.............................................. 250 2.8 New-Style Build Steps.......................................... 275 2.9 Command-line Tool........................................... 278 2.10 Resources................................................. 289 2.11 Optimization............................................... 289 2.12 Plugin Infrastructure in Buildbot..................................... 289 2.13 Deployment............................................... 290 3 Buildbot Development 293 3.1 General Documents........................................... 293 3.2 APIs................................................... 377 3.3 Python3 compatibility.......................................... 470 3.4 Classes.................................................
    [Show full text]
  • Automating Build, Test, and Release with Buildbot
    Automating Build, Test, and Release with Buildbot Dustin J. Mitchell Mozilla, Inc. Email: [email protected] Tom Prince Email: [email protected] Abstract—Buildbot is a mature framework for building con- to support a variety of deployments. Schedulers react to new tinuous integration systems which supports parallel execution of data from change sources, external events, or triggers based jobs across multiple platforms, flexible integration with version- on clock time (e.g., for a nightly build), and add new build control systems, extensive status reporting, and more. Beyond the capabilities it shares with similar tools, Buildbot has a number requests to the queue. of unique strengths and capabilities, some of them particu- Each build request comes with a set of source stamps larly geared toward release processes. This paper summarizes identifying the code from each codebase used for a build. A Buildbot’s structure, contrasts the framework with related tools, source stamp represents a particular revision and branch in a describes some advanced configurations, and highlights ongoing source code repository. Build requests also specify a builder improvements to the framework.1 that should perform the task and a set of properties, arbitrary I. INTRODUCTION key-value pairs giving further detail about the requested build. Buildbot is a continuous integration (CI) framework which Each builder defines the steps to take in executing a particular has been in use for well over 10 years[13]. While it began type of build. Once the request is selected for execution, the as a simple build-and-test tool, it has grown into an advanced steps are performed sequentially.
    [Show full text]
  • Mining Software Repositories for Release Engineers - Empirical Studies on Integration and Infrastructure-As-Code
    UNIVERSITÉ DE MONTRÉAL MINING SOFTWARE REPOSITORIES FOR RELEASE ENGINEERS - EMPIRICAL STUDIES ON INTEGRATION AND INFRASTRUCTURE-AS-CODE YUJUAN JIANG DÉPARTEMENT DE GÉNIE INFORMATIQUE ET GÉNIE LOGICIEL ÉCOLE POLYTECHNIQUE DE MONTRÉAL THÈSE PRÉSENTÉE EN VUE DE L’OBTENTION DU DIPLÔME DE PHILOSOPHIÆ DOCTOR (GÉNIE INFORMATIQUE) AOÛT 2016 c Yujuan Jiang, 2016. UNIVERSITÉ DE MONTRÉAL ÉCOLE POLYTECHNIQUE DE MONTRÉAL Cette thèse intitulée: MINING SOFTWARE REPOSITORIES FOR RELEASE ENGINEERS - EMPIRICAL STUDIES ON INTEGRATION AND INFRASTRUCTURE-AS-CODE présentée par: JIANG Yujuan en vue de l’obtention du diplôme de: Philosophiæ Doctor a été dûment acceptée par le jury d’examen constitué de: M. GAGNON Michel, Ph. D., président M. ADAMS Bram, Doctorat, membre et directeur de recherche M. GUÉHÉNEUC Yann-Gaël, Doctorat, membre Mme BAYSAL Olga, Ph. D., membre externe iii DEDICATION To my grandpa Who has become a star in the heaven iv ACKNOWLEDGMENTS Many people I met, many things happened, are hidden as part of this thesis. First of all, I want to thank my parents, for their endless and unconditional love. You respect my every single choice and impractical dream. You always hold the faith in me, even when I myself had lost it. Exclusive thanks are dedicated to my supervisor, Dr.Bram Adams. Humble, enthusiastic and hard-working, for work and for life, you show me what should be like as a researcher and an individual person. You lead me through all the way up here, with enormous patience and kindness. In past four years, what I gained was not only professional skills, but also the will to face new challenges, the courage of learning from failures and the belief in hard working.
    [Show full text]
  • Buildbot This Is the Buildbot Manual
    BuildBot This is the BuildBot manual. Copyright (C) 2005, 2006, 2009, 2010 Brian Warner Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. i Table of Contents 1 Introduction..................................... 1 1.1 History and Philosophy ........................................ 1 1.2 System Architecture............................................ 2 1.2.1 BuildSlave Connections.................................... 3 1.2.2 Buildmaster Architecture .................................. 4 1.2.3 Status Delivery Architecture............................... 6 1.3 Control Flow ................................................... 6 2 Installation ...................................... 8 2.1 Requirements .................................................. 8 2.2 Installing the code ............................................. 8 2.3 Creating a buildmaster ......................................... 9 2.4 Upgrading an Existing Buildmaster............................ 10 2.5 Creating a buildslave.......................................... 10 2.5.1 Buildslave Options ....................................... 12 2.6 Launching the daemons ....................................... 13 2.7 Logfiles ................................................... .... 14 2.8 Shutdown ................................................... 14 2.9 Maintenance .................................................. 15 2.10 Troubleshooting.............................................
    [Show full text]
  • Qtwebkit Layout Tests DRT and Tools
    UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED Department of Software Engineering QtWebKit layout tests DRT and Tools András Bécsi (bbandix) <[email protected]> 09/12/09 UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED Department of Software Engineering Outline Monitoring the buildbot Update toQt 4.6 on theBuildBot ■ ■ ■ ■ ■ ■ BuildBotMiner BuildBot logs manual-tester layout tests Progress of the port measured by passing DumpRenderTree issues Font metric issues » » Brokentests Flakeytests AndrásBécsi (bbandix) @ Nokia WebKit Code Camp 2 09/12/09 UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED Department of Software Engineering Qt 4.6 issues Issueswith fonts ■ ■ metricsdo only work on our BuildBot howeverwe got feedback thatthese After the update of the expected files tests (~ 500) experienced pixel differencesin many After the update to Qt 4.6 we » are correct on the bot layout on developers machines but More than 300tests have incorrect AndrásBécsi (bbandix) @ Nokia WebKit Code Camp 3 09/12/09 UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED Department of Software Engineering Qt 4.6 font metric issues the 306 failing tests found onlyminor differences(5-10 tests) On my laptop managedI to reproduce We testedother major distributions, but ■ the same usewe on the buildbot We tried the default configuration of Qt 4.6, – buildbot and and my machine: buildbot differencesthe between package Suspicious to Default /usr/localinstall echo yes|./configure–opensource-no-webkit » » » libxext1.0.4→ 1.1.1
    [Show full text]