78 lines
3.1 KiB
Markdown
78 lines
3.1 KiB
Markdown
# npm-groovy-lint-docker-action
|
||
|
||
Gitea Action (Github Action) для проверки Groovy кода(Groovy Liter).
|
||
В качестве линтера используется 'NPM GROOVY LINT' - Groovy & Jenkinsfile Linter. NPM GROOVY LINT основан на базе CodeNarc - анализатора Groovy кода.
|
||
|
||
[Ссылка на проект](https://github.com/nvuillam/npm-groovy-lint)
|
||
|
||
Пример использования:
|
||
|
||
1- Данный код в виде yaml файла размещаем в репозиторий для которого необходим линтинг groovy кода. Путь для размещения
|
||
файла: repo_with_groovy_files/.gitea/workflows/groovy-linter.yml
|
||
|
||
```yaml
|
||
---
|
||
name: Groovy linter
|
||
run-name: ${{ gitea.actor }} is start check sources
|
||
on: [pull_request]
|
||
|
||
jobs:
|
||
linter:
|
||
name: Groovy linter
|
||
runs-on: docker
|
||
container:
|
||
image: harbor.avroid.tech/devops/npm-groovy-lint:14.4.1-0
|
||
steps:
|
||
- run: echo "Start job on ${{ runner.name }} with OS ${{ runner.os }}"
|
||
- run: echo "Work with branch ${{ gitea.ref }} in repository ${{ gitea.repository }}"
|
||
- name: Check out repository code
|
||
uses: https://gitea:${{ secrets.CI_TOKEN }}@git.avroid.tech/Mirrors/github-actions-checkout.git@v4
|
||
with:
|
||
fetch-depth: 0
|
||
persist-credentials: false
|
||
- name: Get all groovy files that have changed
|
||
id: changed-files-specific
|
||
uses: https://gitea:${{ secrets.CI_TOKEN }}@git.avroid.tech/Mirrors/github-actions-tj-actions-changed-files.git@v44
|
||
with:
|
||
files: |
|
||
**/*.groovy
|
||
**/Jenkinsfile
|
||
- name: Run step if there is no changed files
|
||
id: no_files_to_check
|
||
if: steps.changed-files-specific.outputs.any_changed != 'true'
|
||
run: echo "*** No changed groovy files, nothing to check. ***"
|
||
|
||
- name: Run linter for changed files
|
||
id: groovy_linter
|
||
if: steps.changed-files-specific.outputs.any_changed == 'true'
|
||
uses: https://gitea:${{ secrets.CI_TOKEN }}@git.avroid.tech/Actions/npm-groovy-lint-docker-action.git@v17
|
||
with:
|
||
input_flags: "--failon error"
|
||
input_files: ${{ steps.changed-files-specific.outputs.all_changed_files }}
|
||
```
|
||
2 - Размещаем в корне проверяемого репозитория конфиг для линтера. Путь и имя для размещения
|
||
repo_with_groovy_files/.groovylintrc.json
|
||
|
||
```json
|
||
{
|
||
"extends": "recommended",
|
||
"rules": {
|
||
"convention.CompileStatic": "off",
|
||
"convention.NoDef": "off",
|
||
"groovyism.ExplicitCallToEqualsMethod": "off",
|
||
"groovyism.GStringExpressionWithinString": "off",
|
||
"naming.VariableName": {
|
||
"ignoreVariableNames": "_"
|
||
},
|
||
"naming.FactoryMethodName": "off",
|
||
"unnecessary.UnnecessaryGetter": "off",
|
||
"size.NestedBlockDepth": {
|
||
"maxNestedBlockDepth": 10
|
||
},
|
||
"unused.UnusedVariable": {
|
||
"ignoreVariableNames": "_"
|
||
}
|
||
}
|
||
}
|
||
```
|
||
Описание правил конфига линтера https://codenarc.org/codenarc-rule-index-by-name.html |