Release schedule and history¶
Schedule¶
Starting with 2021-07, a new version of OpenTestFactory is released each month (except August).
Past releases¶
2023-02 (2023-03-02)¶
Warning
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 therobotframework/robot
,junit/mvntest
, andcypress/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
andextra_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.
- Additional information is logged when using agents:
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.
Warning
- 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
andjobDepth
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.
Thejava-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 viaINPUT_<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 theextra-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 lines of workflow logs are now truncated, the
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 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 usingopentf-ctl workflow --wait
oropentf-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
andlog.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 supportsget agents
anddelete 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
andrun workflow --wait
; - better error messages for invalid config files.
- the
-
The Jenkins plugin has been open-sourced (it was previously part of the Squash code base): https://gitlab.com/henixdevelopment/open-source/opentestfactory/jenkins-plugin
The full list of modifications is available here.
2021-11 (2021-11-16)¶
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