README.md 2.31 KB
Newer Older
1
<!--
2
SPDX-FileCopyrightText: 2020 Helmholtz Centre Potsdam - GFZ German Research Centre for Geosciences Potsdam, Germany (https://www.gfz-potsdam.de/)
3 4 5 6

SPDX-License-Identifier: CC0-1.0
-->

7
# Software Quality Assurance
Maximilian Dolling's avatar
Maximilian Dolling committed
8

Maximilian Dolling's avatar
Maximilian Dolling committed
9 10
---

11
This framework provides various services for the GitLab CI regarding to software quality.
Maximilian Dolling's avatar
Maximilian Dolling committed
12 13 14 15 16 17 18 19

## Description

This software provides a docker image, which provides various services around software quality.
Its goal is to help researchers, developers and [RSEs](https://de-rse.org/en/) develop software with better quality.
Currently there are two ways to run the services.
Either via the [GitLab CI/CD](https://docs.gitlab.com/ee/ci/) (recommended) or a local run.

20
> **Example:** You can find a full report of all available services [here](meta/software-quality-assurance-report.md)
Maximilian Dolling's avatar
Maximilian Dolling committed
21 22

**Current available services:**
Maximilian Dolling's avatar
Maximilian Dolling committed
23
* Programming Language Detection
Maximilian Dolling's avatar
Maximilian Dolling committed
24 25
* License Check
* Report Generation
Maximilian Dolling's avatar
Maximilian Dolling committed
26
* List Authors
Maximilian Dolling's avatar
Maximilian Dolling committed
27 28 29 30 31 32 33 34 35

---

## Requirements

The software you want to run the services on **must** be a [git](https://git-scm.com/) repository!

**via GitLab CI/CD**

36
* available [GitLab Runner](https://docs.gitlab.com/runner/) with `software-quality-assurance` [tag](https://docs.gitlab.com/ee/ci/runners/#using-tags) and the [docker executor](https://docs.gitlab.com/runner/executors/docker.html)
Maximilian Dolling's avatar
Maximilian Dolling committed
37 38 39 40 41 42 43 44 45

**local usage**

* [docker](https://www.docker.com/) >= 19.03.1

---

## Usage

46 47 48
Some of the services require a config file.
To see which, take a look at the [service description](doc/doc_service_description.md)

Maximilian Dolling's avatar
Maximilian Dolling committed
49 50 51 52 53 54 55 56 57
Running the services via Gitlab CI/CD is the recommended solution.
It keeps the report up to date, every time the project is changed.
You can read more about how it is set up [here](doc/doc_usage_ci.md).

Running it on you local machine is easier to set up.
Therefore it must be triggered manually before every release.
You can read more about how it is set up [here](doc/doc_usage_local.md).

---
58

Maximilian Dolling's avatar
Maximilian Dolling committed
59 60 61 62 63 64
## Service Description

You can find a detailed description of all implemented services [here](doc/doc_service_description.md).

---

65
## Further planned features
Maximilian Dolling's avatar
Maximilian Dolling committed
66
* license check
Maximilian Dolling's avatar
Maximilian Dolling committed
67 68 69 70 71 72
    * R
    * Java
    * Fortran
    * JavaScript
    * C, C++
    * Matlab
Maximilian Dolling's avatar
Maximilian Dolling committed
73
* license header check
Maximilian Dolling's avatar
Maximilian Dolling committed
74
* license generation
Maximilian Dolling's avatar
Maximilian Dolling committed
75
* comment check
Maximilian Dolling's avatar
Maximilian Dolling committed
76 77
* check for necessary files
* generate necessary files
Maximilian Dolling's avatar
Maximilian Dolling committed
78 79 80 81
* check if tests exist
* credential check
* DOI request
* curate meta data
82

Maximilian Dolling's avatar
Maximilian Dolling committed
83
---