Skip to content

Commit 4043cde

Browse files
authored
Documentation (#506)
Moved over from using rst to using markdown to work better on github. Added mkdocs for managing the documentation instead of sphinx. Changed the documentation theme to material as it gave better navigation options. Updated all documentation with guides for several areas such as installation and running tests.
1 parent ab472f1 commit 4043cde

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

55 files changed

+1349
-2121
lines changed

.readthedocs.yaml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
version: 2
2+
formats: all
3+
mkdocs:
4+
fail_on_warning: false
5+
configuration: mkdocs.yml
6+
python:
7+
install:
8+
- requirements: docs/requirements.txt
9+
build:
10+
os: "ubuntu-22.04"

AUTHORS.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<!---
2+
Copyright Axis Communications AB
3+
For a full list of individual contributors, please see the commit history.
4+
5+
Licensed under the Apache License, Version 2.0 (the "License");
6+
you may not use this file except in compliance with the License.
7+
You may obtain a copy of the License at
8+
9+
http://www.apache.org/licenses/LICENSE-2.0
10+
11+
Unless required by applicable law or agreed to in writing, software
12+
distributed under the License is distributed on an "AS IS" BASIS,
13+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14+
See the License for the specific language governing permissions and
15+
limitations under the License.
16+
--->
17+
# Maintainers
18+
19+
- Anders Josephson <anders.josephson@axis.com>
20+
- Fredrik Fristedt <fredrik.fristedt@axis.com>
21+
- Tobias Persson <tobias.persson@axis.com>

AUTHORS.rst

Lines changed: 0 additions & 7 deletions
This file was deleted.

README.md

Lines changed: 33 additions & 114 deletions
Original file line numberDiff line numberDiff line change
@@ -1,138 +1,57 @@
1-
.. image:: images/etos-logo.png
2-
:width: 350
3-
:alt: ETOS
1+
<!---
2+
Copyright Axis Communications AB
3+
For a full list of individual contributors, please see the commit history.
44
5-
.. image:: https://img.shields.io/badge/Stage-Sandbox-yellow.svg
6-
:target: https://github.com/eiffel-community/community/blob/master/PROJECT_LIFECYCLE.md#stage-sandbox
5+
Licensed under the Apache License, Version 2.0 (the "License");
6+
you may not use this file except in compliance with the License.
7+
You may obtain a copy of the License at
78
8-
====
9-
ETOS
10-
====
9+
http://www.apache.org/licenses/LICENSE-2.0
1110
12-
ETOS (Eiffel Test Orchestration System) is a new test orchestration system which takes away control of how to run and what to run from the system itself and places it into the hands of the relevant engineers.
13-
14-
The idea of having a system dictate what and how to run is finished. Let's bring back control to the testers.
15-
16-
With ETOS we define how to run tests using recipes and we define what to run with collections of recipes.
11+
Unless required by applicable law or agreed to in writing, software
12+
distributed under the License is distributed on an "AS IS" BASIS,
13+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14+
See the License for the specific language governing permissions and
15+
limitations under the License.
16+
--->
1717

18-
.. list-table :: ETOS Roles
19-
:widths: 25 25 25
20-
:header-rows: 1
18+
<img src="./docs/images/etos-logo.png" alt="ETOS" width="350"/>
2119

22-
* - :ref:`test-engineer`
23-
- :ref:`test-automation-engineer`
24-
- :ref:`system-engineer`
25-
* - Create collections
26-
- Create recipes
27-
- Deploy ETOS
28-
* - Analyze results
29-
- Create tests
30-
- Infrastructure
31-
* - What to run?
32-
- How to run?
33-
- Where to run?
20+
[![Sandbox badge](https://img.shields.io/badge/Stage-Sandbox-yellow)](https://github.com/eiffel-community/community/blob/master/PROJECT_LIFECYCLE.md#stage-sandbox)
3421

35-
This means that only people who knows how and what to run decide these factors. ETOS will only receive the collection of recipes and execute it accordingly.
36-
You can also mix test suites. For instance, let's say you want to run a "go" unittest and a "python" function test in the same suite, that's easy to do; just add them to your collection.
22+
# ETOS
3723

38-
This is the strength of ETOS. Relying on the humans to decide what to run, how to run and where to run.
39-
40-
ETOS is a collection of multiple services working together. This repository is a facilitator of versioning, Helm charts and documentation.
41-
The services are located in these repositories.
24+
ETOS (Eiffel Test Orchestration System) is a new test orchestration system which takes away control of how to run and what to run from the system itself and places it into the hands of the relevant engineers.
4225

43-
- :ref:`etos-client`
44-
- :ref:`etos-api`
45-
- :ref:`etos-suite-starter`
46-
- :ref:`etos-suite-runner`
47-
- :ref:`etos-test-runner`
48-
- :ref:`etos-environment-provider`
49-
- :ref:`etos-library`
50-
- :ref:`etos-test-runner-containers`
26+
The idea of having a system dictate what and how to run is finished. Let's bring back control to the testers.
5127

28+
Please see the [documentation](./docs/index.md) for more information, tutorials and guides on how to use ETOS.
5229

53-
Features
54-
========
30+
## Features
5531

5632
- Generic test suite execution based solely on JSON.
5733
- Mix and match test suites, regardless of programming language.
5834
- Separation of concerns between testers, test automation engineers and system engineers.
5935
- Eiffel protocol implementation.
6036

37+
## Support
6138

62-
Installation
63-
============
64-
65-
Requirements
66-
------------
67-
68-
In order to install ETOS, you need to meet the following requirements.
69-
70-
- An up and running kubernetes cluster (`<https://kubernetes.io/>`_)
71-
- Helm version 3.x installed (`<https://helm.sh/>`_)
72-
73-
74-
Installation Steps
75-
------------------
76-
77-
1. First we need to add the Helm repository where the ETOS Helm charts are stored
78-
79-
::
80-
81-
helm repo add Eiffel registry.nordix.org/eiffel
82-
83-
2. Then simply install ETOS using Helm
84-
85-
::
86-
87-
helm install <name of the ETOS deployments> eiffel/etos --namespace <your kubernetes namespace>
88-
89-
Deployment Configuration
90-
------------------------
91-
92-
Following the installation step will give you a default configured ETOS deployment. Chances are that the default deployment configuration of ETOS will not work for your Infrastructure.
93-
To tailor the deployment to your specific infrastructure you need to create a configuration file and tell Helm to use that file when installing ETOS.
94-
95-
Here is an example of a standard ETOS configuration file that should get most configurations up and running.
96-
97-
.. code-block:: yaml
98-
99-
global:
100-
# This is the URL to the Eiffel Graphql API
101-
graphqlServerUrl: http://eiffel-graphql-api.my.cluster-url.com
102-
# This is the URL where the deployed ETOS Environment Provider will be available
103-
environmentProviderUrl: http://environment-provider.my.cluster-url.com
104-
# This is the URL where the deployed ETOS API will be available
105-
etosApiUrl: http://etos-api.my.cluster-url.com
106-
107-
suite-starter:
108-
rabbitMQ:
109-
# this is the message queue where suite starter listens for Eiffel
110-
queue_name: suite_starter.queue
111-
112-
# This is the configuration that should match your rabbitMQ deployment
113-
# ETOS needs a rabbitMQ service to be able to subscribe and publish Eiffel events
114-
rabbitmqHost: dev-rabbitmq.myhost.com
115-
rabbitmqExchange: my.eiffel.exchange
116-
rabbitmqPort: "5671"
117-
rabbitmqVhost: myvhost
118-
rabbitMQ:
119-
username: rabbit_user
120-
password: rabbit_password
39+
If you need help, please get in contact with us.
12140

41+
For questions and discussions, please use the [discussions](https://github.com/eiffel-community/etos/discussions) on github.
42+
For bug reports and feature requests, please use the [issue tracker](https://github.com/eiffel-community/etos/issues)
12243

123-
Contribute
124-
==========
44+
There is also a mailing list at: etos-maintainers@googlegroups.com
12545

126-
| Please write issues in the relevant repositories for where you found the issue.
127-
| If you do not know which repository to write the issue for, feel free to write it here and it will be moved.
128-
| Documentation issues are reported here.
46+
## Code of Conduct and Contributing
47+
To get involved, please see [Code of Conduct](https://github.com/eiffel-community/.github/blob/master/CODE_OF_CONDUCT.md) and [contribution guidelines](https://github.com/eiffel-community/.github/blob/master/CONTRIBUTING.md).
12948

130-
- Issue Tracker: https://github.com/eiffel-community/etos/issues
131-
- Source Code: https://github.com/eiffel-community/etos
49+
Note that these files are located in the .github repository. See [this](https://docs.github.com/en/github/building-a-strong-community/creating-a-default-community-health-file) page for further details regarding default community health files.
13250

51+
## About this repository
52+
The contents of this repository are licensed under the [Apache License 2.0](./LICENSE).
13353

134-
Support
135-
=======
54+
## About Eiffel
55+
This repository forms part of the Eiffel Community. Eiffel is a protocol for technology agnostic machine-to-machine communication in continuous integration and delivery pipelines, aimed at securing scalability, flexibility and traceability. Eiffel is based on the concept of decentralized real time messaging, both to drive the continuous integration and delivery system and to document it.
13656

137-
If you are having issues, please let us know.
138-
There is a mailing list at: etos-maintainers@googlegroups.com or just write an Issue.
57+
Visit [Eiffel Community](https://eiffel-community.github.io) to get started and get involved.

docs/AUTHORS.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<!---
2+
Copyright Axis Communications AB
3+
For a full list of individual contributors, please see the commit history.
4+
5+
Licensed under the Apache License, Version 2.0 (the "License");
6+
you may not use this file except in compliance with the License.
7+
You may obtain a copy of the License at
8+
9+
http://www.apache.org/licenses/LICENSE-2.0
10+
11+
Unless required by applicable law or agreed to in writing, software
12+
distributed under the License is distributed on an "AS IS" BASIS,
13+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14+
See the License for the specific language governing permissions and
15+
limitations under the License.
16+
--->
17+
# Maintainers
18+
19+
- Anders Josephson <anders.josephson@axis.com>
20+
- Fredrik Fristedt <fredrik.fristedt@axis.com>
21+
- Tobias Persson <tobias.persson@axis.com>

0 commit comments

Comments
 (0)