Our commitment to open-source and research
At Eficode we want to build the future of software. We are part of European research projects on test automation and serverless technologies (RADON). We also contribute to a variety of open-source projects and our team is responsible for several open-source plugins. By working with cutting-edge technologies, and sharing knowledge with the community, we can build the future of software together.
TESTOMAT EU research project
The next level of test automation
The TESTOMAT project will support software teams to increase the development speed without sacrificing quality. The project will ultimately result in a Test Automation Improvement Model, which will define key improvement areas in test automation, with the focus on measurable improvement steps.
With this EU research project, we wanted to advance test automation research on several fronts: enhancing specific testing technologies, reporting automatically from full Continuous Delivery pipeline, and creating a real-time dashboard for quality assurance alongside 33 other like-minded partners all over Europe.Read more
RADON EU research project
Unlock the benefits of serverless FaaS for the European software industry
RADON aims at creating a DevOps framework to create and manage microservices-based applications that can optimally exploit serverless computing technologies. RADON applications will include fine-grained and independently deployable microservices that can efficiently exploit FaaS and container technologies. The end goal is to broaden the adoption of serverless computing technologies within the European software industry.
Within this academic project, Eficode will provide an industry perspective and a use case from our services. We will take the lead in defining the adoption and customization methodology, provide support for appropriate CI/CD tools (e.g., Jenkins), and build related continuous testing and delivery configurations.
Jenkins Configuration as Code
Manage your Jenkins instance as code with this easy-to-use plugin
We developed the Jenkins Configuration as Code (JCasC) plugin to remove the need to manually edit Jenkins global configuration after deployment. JCasC configures Jenkins automatically once the configuration file is prepared. This solution also means you can restore your Jenkins within seconds. JCasC also allows you to reuse the same file to configure multiple Jenkins instances, or to spin up a local instance to test changes before you make them part of the production environment.
Jenkins Configuration as Code is the last missing piece in the puzzle for you to completely manage your Jenkins instance as code. This project is the result of a collaboration between Eficode Praqma and Cloudbees, and a growing number of external contributors. You’re more than welcome to contribute with code, or by creating issues with features or bugs. We don’t just want to solve our problems, we want to solve yours too!
A CI/CD solution to automate Helm charts deployment to your Kubernetes cluster
Helm packages Kubernetes applications as reusable, customizable, and shareable packages called “charts”. However, as Helm is NOT a CI/CD tool you have to write your own custom scripts and do lots of configuration to manage the charts lifecycle from a CI/CD pipeline.
At Eficode we’re all about automation, so we created Helmsman. Helmsman adds a layer of abstraction around Helm and allows you to declaratively define a desired state of your Helm charts in a Kubernetes cluster. It enables you to automate your Helm charts lifecycle management. Helmsman is told how to navigate from a declarative file called Desired State File (DSF) that you maintain in your version control system. It then interprets your wishes from the DSF and compares it to what’s running in the designated cluster. It figures out what changes need to be applied to make your wishes come true without maintaining/storing any additional state information anywhere.GitHubRead blog
Even more projects we contribute to...
A Groovy DSL to migrate to Git
2git is a Groovy DSL designed to script your VCS migration. It continuously runs and tweaks your migration script to give you complete confidence in your migration. 2git currently supports migrating from Clearcase and Clearcase UCM to git and Artifactory. 2git was designed to iterate on complex migrations. We wanted to keep scripting freedom while mitigating the pains of dealing with the source VCS.
Robot Framework plugin for Jenkins
Collect and publish Robot Framework test results in Jenkins
A plugin to collect and publish Robot Framework test results in Jenkins with the following features:
- Test suite and case details with trend graphs
- Environment variable expansion for build paths in configuration
- Wildcard support for output files for parsing and archiving of multiple Robot result files
- Collection and archiving of original Robot report HTML files
- Summary of Robot run on build page
- Summary of latest Robot run on project page
- Trend graph of passed tests over builds on project page
- Marking build failed/unstable/successful according to pass thresholds given by the user
- Option to evaluate only critical tests against the pass thresholds
- Listview column to show overall passed/failed tests in project listing and duration trend
- Configurable archiving of arbitrary Robot related artifacts per build
- Token macros for usage with e.g. email-ext plugin
- Test visibility in radiator views
Eficode contributed to the creation of the plugin and is currently maintaining the plugin.
Pre-tested Integration Plugin
A Jenkins plugin to prevent your master from breaking
This Jenkins plugin is designed to keep your master branch from breaking under Continuous Integration by introducing an automated quality tollgate. It allows you to automatically rebase, build, test and run all kinds of checks on your changes before ultimately delivering them to master.
As a Git SCM decorator, the Pre-tested Integration Plugin listens for new branches matching a configured pattern (ex.: ready/*). When triggered, it merges the target branch into master locally and lets your job run its configured steps. Should they all pass, the plugin considers the merge result good enough and pushes it to the remote master. All that’s left is to make sure only Jenkins has write access to master, and voilà, you are now the proud owner of an unbreakable mainline.
Praqmatic Automated Changelog (PAC)
An automated way of creating accurate changelogs
This tool allows us to avoid a lot of manual work and uncertainty around new features and new releases. PAC builds up changelogs/release notes by querying your Git repository and possibly your Application Lifecycle Management (ALM) system(s) for extra metadata.
You can use PAC to create a changelog suited for both developers and release managers. Using templates you can customize the look and feel and generate entire web pages or pdf documents using a simple configuration file.
A cross-platform Robot Framework library for GUI automation based on image recognition
Dealing with the automation of desktop client software with graphical user interfaces (GUI) is not always so rosy, especially implemented with older tech. Taking inspiration from predecessors our open source release is an effort to provide ever-increasing automation utilizing image recognition.
Eficode created and maintains the library.
Oxygen for Robot Framework
A new way to consolidate test reporting
Oxygen is a Robot Framework tool that empowers the user to convert the results of any testing tool or framework to Robot Framework's reporting to consolidate all test reporting together regardless of tools used.
Eficode created and maintains the tool.
HttpRequestLibrary for Robot Framework
Test REST interfaces with Java
This is a library to test REST interfaces in a simple way when running Robot Framework with Maven/Gradle. The goal is to simplify dependency management and enable tests to run only with Java.
InfluxDB plugin for Jenkins
Collect data from multiple Jenkins plugins into a single time-series database
A plugin to send data from various different Jenkins plugins into InfluxDB. It currently supports data from changelog, JUnit, and SonarQube without a separate plugin and it supports Cobertura, JaCoCo, Performance, Performance publisher, Robot Framework, and Serenity plugins. You can also write your own custom data and tags inside the pipeline jobs.
Eficode created the plugin and is currently maintaining it.
Making import and export possible with HashiCorp Vault
Medusa is an open-source cli tool that can import data from either json or yaml into Vault, and it can export data from any point in Vault to the same formats. This makes it easy to create developer environments, create backups, clone data, move data from different Vault instances with a single cli.
Robot Framework Maven plugin
Include Robot Framework tests to Maven lifecycle
The Robot Framework Maven plugin allows Robot Framework tests within a Maven lifecycle. That way developers or CI systems don't need to have anything special installed to be able to run the tests at the necessary phase.
A server offering Java-based Robot Framework libraries remotely via Remote library (XML-RPC)
When running Robot Framework tests with Python, it might still be necessary to use Java-based libraries. Jroboremoteserver publishes Java-libraries to be used over XML-RPC from Python running Robot Framework.
Jrobotremoteserver is an implementation for Java libraries, but there are other remote servers for other languages available, too. See here
JavalibCore for Robot Framework
Create Java-based Robot Framework libraries in a simpler way
JavalibCore helps to build Java-based Robot Framework libraries in a simple way and provides e.g. annotations to make the actual library code cleaner.
SeleniumLibrary for Robot Framework with Java
Browser testing with Robot Framework
This library provides Selenium for Robot Framework in the Java-way. It can be included in the application testing lifecycle within Maven (or other Java project management tools).
DBLibrary for Robot Framework with Java
Test databases connectable with JDBC drivers
Some databases (like Oracle) are a bit hard to be connected with other languages than Java. This library can be used along with Jrobotremoteserver for these kinds of databases, or for databases in tests running with Java.
At Eficode we help teams build software better, to the benefit of companies big and small. We were doing DevOps before it was a word. Over a decade later, we’ve seen DevOps transformations across industries.
We believe that the future of software development is unbelievably effective. Automation, continuous improvement for the business and cross-collaboration between teams are at the core of our mission.
We help drive the DevOps movement by training the next generations and sharing our experience with the community of DevOps practitioners.More about Eficode