Skip to content

Release schedule and history


Starting with 2021-07, a new version of OpenTestFactory is released each month (except August).

Past releases

2023-02 (2023-03-02)


If you upgrade the orchestrator to the opentestfactory/allinone 2023-02 image, then you must upgrade the Jenkins plugin to 2.1.0.

  • The Orchestrator now supports Cypress projects which are anywhere in a Git repository (previously, only Cypress projects at the root of the repository could be used).

  • The extra-options input is now supported for all technologies: it has been added to the robotframework/robot, junit/mvntest, and cypress/cypress actions.

  • The Orchestrator now supports the definition of variables which are not interpreted by the shell (i.e. no expansion nor substitution is performed) by using the verbatim: true option.

  • The characters - and _ can now be freely interchanged in the input names (e.g. extra-options and extra_options are the same). - should be preferred.

  • In the case of communication failure, the EventBus will retry to publish the event (the maximum number of retries is defined by max_publication_attempts in the EventBus configuration file).

  • Logs are further improved:

    • Additional information is logged when using agents:
      • deregistration of an agent;
      • sent and awaited files by an agent;
      • in debug mode, job assignation to/release from an agent.
    • The EventBug logs are easier to read when the orchestrator in debug mode.

The full list of modifications is available here.

2022-12 (2023-01-03)

This is a maintenance release improving opentf-ctl and the documentation.

The full list of modifications is available here.

2022-10 (2022-11-10)

  • In order to be usable with the new Jenkins releases, the Jenkins plugin has been ported to Java 11.


    • if you use Jenkins version 2.357 or later, you must use the Plugin for Jenkins 2.0.0 or later;
    • otherwise, you must use a version 1.x.y of the Plugin for Jenkins (which is compatible with versions 2.164.1 up to 2.356 of Jenkins).
  • The Jenkins plugin supports stepDepth and jobDepth set to 0, meaning that jobs / steps are displayed for any nested depth.

  • The orchestrator now supports Cucumber and JUnit projects which are not at the root of the Git repository.
    The java-param-library has been completed to support such cases.

  • The ~= operator has been added to test if a string matches a regular expression.

  • The orchestrator supports any character in the value of environment variables, except for the newline character which is disallowed.
    Input parameters are available as environment variables (see the documentation) only if the conversion is possible: length shorter than 2048 characters and no newline character.

  • Names of namespaces are trimmed (i.e. leading and trailing space characters are removed).

  • Invalid opentf-ctl‘s command line parameters are better handled: a meaningful error message is displayed.

The full list of modifications is available here.

2022-09 (2022-09-23)

  • The orchestrator can now be installed behind a reverse proxy, see the documentation.

  • Hooks can now access the inputs of the provider, either by using the ìnputs context or via INPUT_<VARIABLE_NAME> environment variables.

  • PowerShell can now be used in PEaC files.

  • Better support of some test technologies

    • SoapUI can now be used on Windows,
    • the inputs of the soapui/soapui@v1 action have been tidied up,
    • the postman/postman@v1 action now supports the extra-options input,
    • for JUnit, @RepeatedTest, @ParameterizedTest, @TestFactory, and @TestTemplate tests are now supported.
  • opentf-ctl contains some improvements:

    • the lines of workflow logs are now truncated, the --max-command-length command line option can be used to define the truncation length,
    • some default values for --job-depth, --step-depth, and --max-command-length can now be configured,
    • the configuration file now supports

      • the definition of different endpoints for each service in case routes or ports have been customized, and
      • using force-base-url to force the URL in case of a misconfigured reverse proxy.

The full list of modifications is available here.

2022-07 (2022-07-25)

  • This release focuses on improving the logs and the error messages to facilitate troubleshooting, for example when some components have been improperly set up during installation.
    Additionally, the Jenkins plugin reports the orchestrator logs, this reporting can be configured as described here.

  • The java-param-library can now be used in Cucumber tests to retrieve the values of the parameters defined in a PEaC.

  • Two Docker images are now provided to quickly set up execution environments:

    • the first for Robot Framework,
    • the other for Maven-driven tests (i.e. Cucumber and JUnit).

The full list of modifications is available here.

2022-05 (2022-06-17)

  • This release brings a major feature: namespaces and access control.
    Namespaces are an optional mechanism to segregate the resources manipulated by the orchestrator: execution environments, API endpoints, workflows… Once the resources are dispatched on namespaces, it is possible to give permissions to access them: no access, read-only, or read/write. A typical use case is when the orchestrator is shared by several teams, but each one has its own test environments and does not want other teams to access them. It is now possible to limit the access of each team member to the environments, workflows… of her/his team, while the orchestrator administrators have access to everything.

  • The new create-archive action can be used in a PEaC file to generate a tar file.

  • The new /channels endpoint can be used to get the list of all execution environments (both the ones accessed via ssh or via the agent).

The full list of modifications is available here.

2022-04 (2022-04-22)

This release is a maintenance release containing small improvements:

  • opentf-ctl is using much less memory when displaying workflow information (e.g. when using opentf-ctl workflow --wait or opentf-ctl get workflow).

  • opentf-agent --version can now be used to get the version of the agent.

  • A warning is now displayed when launching the agent if the specified encoding is UTF8 (or if no encoding is specified, as this is the default) while the execution environment is not set with this encoding.

The full list of modifications is available here.

2022-03 (2022-03-30)

This release adds the possibility to use OpenTestFactory as a quality gate in a CI/CD pipeline.

Some other, small, improvements have been done:

  • We started to improve log management: some microservices (the ones used to drive tests) are reporting more information. This information is available in opentf-ctl get workflow and in the Jenkins plugin.

  • The event retention period of the Observer can now be configured with retention_period_minutes (see the documentation).

  • When running a Cucumber test, a report.json file was generated, but its content was not some JSON data, but, instead, the Cucumber terminal output. This file is no more generated.

  • When running a Robot Framework test, a tar file containing the report.html and log.html files, and the screenshots generated during the test, is now generated.

  • When investigating problems, the channel_id is now available in the logs.

  • opentf-ctl view token TOKEN can be used to display the payload of a token. opentf-ctl check token TOKEN using PUBLIC_KEY_PATH can be used to validate a token.

  • opentf-ctl get workflow has been extended with the --output=format option, so the returned information can be formatted in JSON or YAML.

  • The agent now verifies that the provided OS tag corresponds to the operating system where it is running. Additionally, it validates the syntax of the provided Orchestrator URL.

The full list of modifications is available here.

2022-02 (2022-02-25)

This is a maintenance release fixing some bugs and preparing the quality gate that will be added in 2022-03.

The full list of modifications is available here.

2022-01 (2022-01-24)

This is a maintenance release fixing some bugs and including some small improvements:

  • more information and clearer messages in the logs
  • agent
    • increased performance
    • possible disabling of certificate verification
    • support of private certificates
  • opentf-ctl
    • opentf-ctl get workflows displays more columns (ID, status, first timestamp, name)
    • opentf-ctl now supports get agents and delete agent commands to list and kill agents

The full list of modifications is available here.

2021-12 (2021-12-23)

  • The opentf-ctl tool has been enhanced with the following features:

    • the config command can be used to generate or modify a configuration file;
    • the version command displays the tools version;
    • the get agents command lists the registered agents;
    • environment variables with an OPENTF_RUN_ prefix are automatically provided to the workflow execution environment;
    • all workflow execution errors are now reported for get workflow and run workflow --wait;
    • better error messages for invalid config files.
  • The Jenkins plugin has been open-sourced (it was previously part of the Squash code base):

The full list of modifications is available here.

2021-11 (2021-11-16)

  • Added support of Postman.

  • An Allure report is now produced for each executed PEaC.

2021-10 (2021-10-21)

  • Added support for properly starting and stopping the orchestrator.

  • Added tools to help manage the orchestrator:

    • opentf-ready to wait until the orchestrator is ready to accept workflows.

    • opentf-done to wait until the orchestrator can be safely stopped (i.e. it has no more pending tasks).

    • opentf-ctl that can be used to

      • start a workflow;
      • stop a workflow;
      • cancel a workflow;
      • generate a signed token;
      • list the subscriptions on the event bus.
  • Added the put-file action to put a file in the execution environment (see the action description).

2021-09 (2021-09-09)

  • Added the Java Param Library
    This library provides an API usable in Java tests to retrieve the values of the parameters defined in a PEaC.
  • Added the support of hooks
    Hooks allow the definition of custom actions to be performed before and/or after a given action of the orchestrator: retrieval of non-standard test reports, starting/stopping a service required by the tests, logging the start and the end of the tests… These hooks can be defined either in a PEaC to be applied to the corresponding workflow or in a configuration file of a provider to be applied to all workflows.
    See the hooks guide for more information.

2021-07 (2021-07-16)

  • Added support of SKF (Squash Keyword Framework)

1.1.0 (2021-06-04)

  • Improved logs in Jenkins plugin

1.0.0 (2021-04-23)

Initial release

  • basic orchestrator mechanisms: reception and execution of a PEaC, stopping a PEaC
  • retrieval of tests in Git repositories
  • launch of tests and parsing of results for JUnit, Robot Framework, Cucumber, Cypress, SoapUI
  • generation of Allure reports (can be published only in Squash TM for the time being)
  • Jenkins plugin