From a55f734ec307a31c20458996c60113200b3f0d73 Mon Sep 17 00:00:00 2001 From: Dorian Turba <froggit.commit.z3jqj@simplelogin.com> Date: Tue, 9 Jan 2024 15:46:21 +0100 Subject: [PATCH] add pre-commit --- r2_metadata/pre-commit.r2.yml | 15 ++++++++++ .../python/code_quality/pre-commit/README.md | 29 +++++++++++++++++++ .../code_quality/pre-commit/pre-commit.yml | 15 ++++++++++ 3 files changed, 59 insertions(+) create mode 100644 r2_metadata/pre-commit.r2.yml create mode 100644 templates/python/code_quality/pre-commit/README.md create mode 100644 templates/python/code_quality/pre-commit/pre-commit.yml diff --git a/r2_metadata/pre-commit.r2.yml b/r2_metadata/pre-commit.r2.yml new file mode 100644 index 0000000..3d0e9b9 --- /dev/null +++ b/r2_metadata/pre-commit.r2.yml @@ -0,0 +1,15 @@ +files: + template: ../templates/python/code_quality/pre-commit/pre-commit.yml + documentation: ../templates/python/code_quality/pre-commit/README.md +data: + description: "Run pre-commit on your repository" + icon: âš ï¸ + public: true + labels: + - Utilities + - Code Quality + - Robustness + - Security + - Spelling + license: MIT + deprecated: false diff --git a/templates/python/code_quality/pre-commit/README.md b/templates/python/code_quality/pre-commit/README.md new file mode 100644 index 0000000..bad732c --- /dev/null +++ b/templates/python/code_quality/pre-commit/README.md @@ -0,0 +1,29 @@ +# pre-commit template + +## Objective + +Run [pre-commit](https://pre-commit.com/) on your project. `pre-commit` is a Python +framework for managing and maintaining multi-language pre-commit hooks. + +## How to use it + +1. Configure the `.pre-commit-config.yaml` file in your repository's root directory with + your desired hooks. +2. Include the pre-commit template in your CI/CD configuration (see quick use above). +3. If you need to customize the job, check + the [jobs customization](https://docs.r2devops.io/get-started/use-templates/#job-templates-customization). + +## Variables + +| Name | Description | Default | +|----------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------| +| `PYTHON_SETUP` | Bash commands to setup your python environment with pre-commit. | `"pip install pre-commit"` | +| `IMAGE_TAG` | The default tag for the docker image. See [Python Docker Official Image](https://hub.docker.com/_/python) for supported tags and respective Dockerfile links. | `"latest"` | +| `PRE_COMMIT_INSTALL` | Bash commands to install pre-commit. | `"pre-commit install"` | +| `PRE_COMMIT_RUN` | Bash commands to run pre-commit. | `"pre-commit run --all-files"` | + +## Configuration of pre-commit + +To add configuration to `pre-commit`, you can add a `.pre-commit-config.yaml` file to +the root of your repository. This file will be used by `pre-commit` to configure the +hooks. diff --git a/templates/python/code_quality/pre-commit/pre-commit.yml b/templates/python/code_quality/pre-commit/pre-commit.yml new file mode 100644 index 0000000..e7def61 --- /dev/null +++ b/templates/python/code_quality/pre-commit/pre-commit.yml @@ -0,0 +1,15 @@ +include: + - remote: 'https://api.r2devops.io/job/r/gitlab/dorianturba-templates/r2devops_catalog/r2_metadata/python_install@latest.yaml' + +pre-commit: + extends: + - .python_install + stage: code_quality + variables: + PYTHON_SETUP: "pip install pre-commit" + PRE_COMMIT_INSTALL: "pre-commit install" + PRE_COMMIT_RUN: "pre-commit run --all-files" + script: + - !reference [.python_install, script] + - ${PRE_COMMIT_INSTALL} + - ${PRE_COMMIT_RUN} -- GitLab