Skip to content
Snippets Groups Projects
Unverified Commit 054b0403 authored by Lars Bilke's avatar Lars Bilke
Browse files

feat: add black job


Signed-off-by: default avatarLars Bilke <lars.bilke@ufz.de>
parent 507fb740
No related branches found
No related tags found
No related merge requests found
...@@ -266,6 +266,14 @@ In addition to logs in the console, this job produces the following reports, kep ...@@ -266,6 +266,14 @@ In addition to logs in the console, this job produces the following reports, kep
| -------------- | ---------------------------------------------------------------------------- | ----------------- | | -------------- | ---------------------------------------------------------------------------- | ----------------- |
| `$PYTHON_PROJECT_DIR/reports/py-sbom.cyclonedx.json` | [CycloneDX JSON](https://cyclonedx.org/docs/latest/json/) | [Security & Compliance integration](https://docs.gitlab.com/ee/ci/yaml/artifacts_reports.html#artifactsreportscyclonedx) | | `$PYTHON_PROJECT_DIR/reports/py-sbom.cyclonedx.json` | [CycloneDX JSON](https://cyclonedx.org/docs/latest/json/) | [Security & Compliance integration](https://docs.gitlab.com/ee/ci/yaml/artifacts_reports.html#artifactsreportscyclonedx) |
### `py-black` job
This job **disabled by default** and runs [black](https://black.readthedocs.io) on the repo. It is bound to the build stage.
| Input / Variable | Description | Default value |
| ---------------- | ----------------------------------------------------------------------- | ----------------- |
| `black-enabled` / `PYTHON_BLACK_ENABLED` | Set to `true` to enable black job | _none_ (disabled) |
### SonarQube analysis ### SonarQube analysis
If you're using the SonarQube template to analyse your Python code, here is a sample `sonar-project.properties` file: If you're using the SonarQube template to analyse your Python code, here is a sample `sonar-project.properties` file:
...@@ -413,7 +421,6 @@ variables: ...@@ -413,7 +421,6 @@ variables:
PIP_EXTRA_INDEX_URL: "${CI_SERVER_PROTOCOL}://gitlab-ci-token:${CI_JOB_TOKEN}@${CI_SERVER_HOST}:${CI_SERVER_PORT}/api/v4/groups/<group-id>/-/packages/pypi/simple" PIP_EXTRA_INDEX_URL: "${CI_SERVER_PROTOCOL}://gitlab-ci-token:${CI_JOB_TOKEN}@${CI_SERVER_HOST}:${CI_SERVER_PORT}/api/v4/groups/<group-id>/-/packages/pypi/simple"
``` ```
## Variants ## Variants
The Python template can be used in conjunction with template variants to cover specific cases. The Python template can be used in conjunction with template variants to cover specific cases.
......
...@@ -240,6 +240,12 @@ ...@@ -240,6 +240,12 @@
"default": "$CI_JOB_TOKEN" "default": "$CI_JOB_TOKEN"
} }
] ]
},
{
"id": "black",
"name": "black",
"description": "Code formatting based on [black](https://black.readthedocs.io)",
"enable_with": "PYTHON_BLACK_ENABLED"
} }
], ],
"variants": [ "variants": [
......
...@@ -147,6 +147,10 @@ spec: ...@@ -147,6 +147,10 @@ spec:
_defaults to [GitLab project's packages repository](https://docs.gitlab.com/ee/user/packages/pypi_repository/)_ _defaults to [GitLab project's packages repository](https://docs.gitlab.com/ee/user/packages/pypi_repository/)_
default: ${CI_SERVER_URL}/api/v4/projects/${CI_PROJECT_ID}/packages/pypi default: ${CI_SERVER_URL}/api/v4/projects/${CI_PROJECT_ID}/packages/pypi
black-enabled:
description: Enable black
type: boolean
default: false
--- ---
# default workflow rules: Merge Request pipelines # default workflow rules: Merge Request pipelines
workflow: workflow:
...@@ -260,6 +264,8 @@ variables: ...@@ -260,6 +264,8 @@ variables:
PYTHON_SBOM_DISABLED: $[[ inputs.sbom-disabled ]] PYTHON_SBOM_DISABLED: $[[ inputs.sbom-disabled ]]
PYTHON_RELEASE_ENABLED: $[[ inputs.release-enabled ]] PYTHON_RELEASE_ENABLED: $[[ inputs.release-enabled ]]
PYTHON_BLACK_ENABLED: $[[ inputs.black-enabled ]]
.python-scripts: &python-scripts | .python-scripts: &python-scripts |
# BEGSCRIPT # BEGSCRIPT
...@@ -860,6 +866,19 @@ py-compile: ...@@ -860,6 +866,19 @@ py-compile:
when: never when: never
- !reference [.test-policy, rules] - !reference [.test-policy, rules]
py-black:
extends: .python-base
stage: build
script:
- install_requirements
- _pip install black
- _run black . --check
rules:
# exclude if $PYTHON_BLACK_ENABLED not set
- if: '$PYTHON_BLACK_ENABLED != "true"'
when: never
- !reference [.test-policy, rules]
############################################################################################### ###############################################################################################
# test stage # # test stage #
############################################################################################### ###############################################################################################
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment