Skip to main content
Redhat Developers  Logo
  • Products

    Platforms

    • Red Hat Enterprise Linux
      Red Hat Enterprise Linux Icon
    • Red Hat AI
      Red Hat AI
    • Red Hat OpenShift
      Openshift icon
    • Red Hat Ansible Automation Platform
      Ansible icon
    • View All Red Hat Products

    Featured

    • Red Hat build of OpenJDK
    • Red Hat Developer Hub
    • Red Hat JBoss Enterprise Application Platform
    • Red Hat OpenShift Dev Spaces
    • Red Hat OpenShift Local
    • Red Hat Developer Sandbox

      Try Red Hat products and technologies without setup or configuration fees for 30 days with this shared Openshift and Kubernetes cluster.
    • Try at no cost
  • Technologies

    Featured

    • AI/ML
      AI/ML Icon
    • Linux
      Linux Icon
    • Kubernetes
      Cloud icon
    • Automation
      Automation Icon showing arrows moving in a circle around a gear
    • View All Technologies
    • Programming Languages & Frameworks

      • Java
      • Python
      • JavaScript
    • System Design & Architecture

      • Red Hat architecture and design patterns
      • Microservices
      • Event-Driven Architecture
      • Databases
    • Developer Productivity

      • Developer productivity
      • Developer Tools
      • GitOps
    • Automated Data Processing

      • AI/ML
      • Data Science
      • Apache Kafka on Kubernetes
    • Platform Engineering

      • DevOps
      • DevSecOps
      • Ansible automation for applications and services
    • Secure Development & Architectures

      • Security
      • Secure coding
  • Learn

    Featured

    • Kubernetes & Cloud Native
      Openshift icon
    • Linux
      Rhel icon
    • Automation
      Ansible cloud icon
    • AI/ML
      AI/ML Icon
    • View All Learning Resources

    E-Books

    • GitOps Cookbook
    • Podman in Action
    • Kubernetes Operators
    • The Path to GitOps
    • View All E-books

    Cheat Sheets

    • Linux Commands
    • Bash Commands
    • Git
    • systemd Commands
    • View All Cheat Sheets

    Documentation

    • Product Documentation
    • API Catalog
    • Legacy Documentation
  • Developer Sandbox

    Developer Sandbox

    • Access Red Hat’s products and technologies without setup or configuration, and start developing quicker than ever before with our new, no-cost sandbox environments.
    • Explore Developer Sandbox

    Featured Developer Sandbox activities

    • Get started with your Developer Sandbox
    • OpenShift virtualization and application modernization using the Developer Sandbox
    • Explore all Developer Sandbox activities

    Ready to start developing apps?

    • Try at no cost
  • Blog
  • Events
  • Videos

Continuous Integration Strategies (Part 3 of 3)

November 21, 2013
Langdon White
Related topics:
Linux
Related products:
Red Hat Enterprise Linux

Share:

    This is part 3 of a three part article on Continuous Integration Strategies:  Simplifying application development on Red Hat® Enterprise Linux®

    SOFTWARE COLLECTIONS

    The testing environment requirements are simplified somewhat if your software is built against a Red Hat Software Collection (RHSCL).

    Red Hat Software Collections provide three primary features: the ability to have multiple versions of software on one OS, certainty that the software is the same across versions of the OS, and the option to refresh components more frequently than the underlying OS.
    As a result, testing need only be performed against the software collection for which the application has been built—so an application developed to run on the software collection for Python 2.7 should be testable on that software collection running on any version of Red Hat Enterprise Linux. The test results should then be valid for all versions of Red Hat Enterprise Linux that run that software collection.

    REQUIREMENTS FOR TESTS

    Test coverage within the CI environment should be considered no differently than any other integration and testing regime. Your tests should provide an appropriate breadth of coverage and depth in test scenarios to ensure the necessary level of quality in the delivered software.

    Suitable test coverage tools may include CoverMe for Ruby 1.9 or RCov for versions of Ruby other than 1.9, any of the tools described in the Wikipedia Java Code Coverage Tools article, COVTOOL for C++, or coverage.py or by using test.regrtest for Python.

    An area where you might have some flexibility in the breadth and depth of testing is where the soft- ware uses features covered by API/ABI guarantees, but care should be taken to ensure the testing strategy doesn’t become over-reliant on these guarantees. Comprehensive baseline testing should be performed and automation should trivialize execution of the baseline tests across multiple OS versions.

    And this is the key point: CI environment testing must be automated so that tests can be executed unattended with each build of the application software or OS update.

    There are a number of automation tools that can be used with Red Hat Enterprise Linux, including Selenium, Beaker, and Autotest, among others.

    MANAGING YOUR TESTING ENVIRONMENT

    It’s possible that the environment needed to support comprehensive testing will be relatively complex: multiple versions of Red Hat Enterprise Linux, coupled with the need to test when changes occur in each OS version, in addition to changes in your software.
    The process of managing and implementing the necessary test environments can be simplified by the use of provisioning tools such as Red Hat Satellite or Cobbler.

    Red Hat Satellite is a system designed for the distribution of generic content, although it is used principally to distribute OS updates from the Red Hat network, updates to applications created within your organization, or for software delivered by third parties.

    With Red Hat Satellite, you create channels for content you wish to deliver, where each channel offers the ability to apply update streams. Then the software can be used to instantiate the content on hardware. In addition, Red Hat Satellite can merge channels—such as your applications and an OS version as they are instantiated on hardware—enabling a single OS configuration to be used independently by multiple applications. And the process can be automated through an API or scripting.

    For more information on setting up your test environments using Red Hat Satellite, refer to “Part 1— Setting up your Environment—Staging Content” of the Best Practices for Deploying and Managing   Linux with Red Hat Network white paper. You may also find the information in RHN Satellite:  Best Practices For Multiple Organizations on enabling each development group to manage its own content set using multi-organization support useful too.

    CONCLUSION

    As an ISV or independent application developer, the flexibility of Red Hat Enterprise Linux and Red Hat’s service provisioning over an extended time period for multiple major and minor OS releases could encourage you to lock down your software to a specific build of the OS. Doing so would either limit your market or limit the options of your customers to take advantage of the latest OS improvements and innovations.

    By adopting a robust CI process—one underpinned by a solid repository for application assets, and an automated build and test process against a well defined and managed set of Red Hat Enterprise Linux environments— it will become possible to give your clients the assurance that they can use your software on almost any OS version. At the same time, a CI environment can potentially reduce your development/integration costs and eliminate the lead time normally needed to effect integration.

    Following the guidelines in this paper and making use of the tools and techniques suggested should ease the path to a robust and effective CI environment. Your Red Hat sales and support team stands ready to assist you with the setup and commissioning of this environment.

    In addition, you can also look towards completing a more comprehensive self certification of your software, thereby offering current and future customers a high level of comfort that your software will work well on whatever Red Hat Enterprise Linux environment they have.

    For more information on assistance with CI setup, Red Hat Satellite, or self certification, please contact developer@redhat.com.

    Last updated: January 9, 2023

    Recent Posts

    • Skopeo: The unsung hero of Linux container-tools

    • Automate certificate management in OpenShift

    • Customize RHEL CoreOS at scale: On-cluster image mode in OpenShift

    • How to set up KServe autoscaling for vLLM with KEDA

    • How I used Cursor AI to migrate a Bash test suite to Python

    What’s up next?

     

    Red Hat Developers logo LinkedIn YouTube Twitter Facebook

    Platforms

    • Red Hat AI
    • Red Hat Enterprise Linux
    • Red Hat OpenShift
    • Red Hat Ansible Automation Platform
    • See all products

    Build

    • Developer Sandbox
    • Developer Tools
    • Interactive Tutorials
    • API Catalog

    Quicklinks

    • Learning Resources
    • E-books
    • Cheat Sheets
    • Blog
    • Events
    • Newsletter

    Communicate

    • About us
    • Contact sales
    • Find a partner
    • Report a website issue
    • Site Status Dashboard
    • Report a security problem

    RED HAT DEVELOPER

    Build here. Go anywhere.

    We serve the builders. The problem solvers who create careers with code.

    Join us if you’re a developer, software engineer, web designer, front-end designer, UX designer, computer scientist, architect, tester, product manager, project manager or team lead.

    Sign me up

    Red Hat legal and privacy links

    • About Red Hat
    • Jobs
    • Events
    • Locations
    • Contact Red Hat
    • Red Hat Blog
    • Inclusion at Red Hat
    • Cool Stuff Store
    • Red Hat Summit
    © 2025 Red Hat

    Red Hat legal and privacy links

    • Privacy statement
    • Terms of use
    • All policies and guidelines
    • Digital accessibility

    Report a website issue