Pour tout problème contactez-nous par mail : support@froggit.fr | La FAQ :grey_question: | Rejoignez-nous sur le Chat :speech_balloon:

Skip to content
Snippets Groups Projects
Commit 170399fa authored by Dorian Turba's avatar Dorian Turba
Browse files

rename depandabot to requirements-compile

parent 88b7c344
No related branches found
No related tags found
1 merge request!1feat: add depandabot template
Pipeline #25271 passed
......@@ -9,7 +9,7 @@ include:
- local: 'templates/python/code_quality/isort/isort.yml'
- local: 'templates/python/code_quality/mypy/mypy.yml'
- local: 'templates/python/code_quality/ruff/ruff.yml'
- local: 'templates/python/dependency_management/depandabot/depandabot.yml'
- local: 'templates/python/dependency_management/requirements-compile/requirements-compile.yml'
python_install:
extends:
......@@ -59,10 +59,10 @@ ruff:
variables:
PROJECT_PATH: "tests/ruff_project"
depandabot:
requirements-compile:
stage: templates
needs: [ "python_install" ]
variables:
PROJECT_PATH: "tests/depandabot_project"
PROJECT_PATH: "tests/requirements-compile_project"
REQUIREMENTS_FILE_PATH: "${PROJECT_PATH}/requirements.in"
OUTPUT_FILE_PATH: "${PROJECT_PATH}/requirements.txt"
files:
template: ../templates/python/dependency_management/depandabot/depandabot.yml
documentation: ../templates/python/dependency_management/depandabot/README.md
changelog: ../templates/python/dependency_management/depandabot/CHANGELOG.md
template: ../templates/python/dependency_management/requirements-compile/requirements-compile.yml
documentation: ../templates/python/dependency_management/requirements-compile/README.md
changelog: ../templates/python/dependency_management/requirements-compile/CHANGELOG.md
data:
description: "Run pip-compile to generate a requirements.txt and create a merge request on your repository with the updated requirements.txt"
description: "Run pip-compile to generate a requirements.txt and create a merge
request on your repository with the updated requirements.txt"
icon:
public: true
labels:
......
# depandabot template
# requirements-compile template
## Objective
The objective of the `depandabot` job is to provide a way to update the requirements.txt file and create a merge request on a Gitlab instance. This reusable job can help speed up other jobs creation and ensure consistent configuration across CI jobs.
The objective of the `requirements-compile` job is to provide a way to update the
requirements.txt file and create a merge request on a Gitlab instance. This reusable job
can help speed up other jobs creation and ensure consistent configuration across CI
jobs.
## How to use it
1. Include the depandabot template in your CI/CD configuration (see quick use above).
2. Create a job that extend the `depandabot` job template.
1. Include the requirements-compile template in your CI/CD configuration (see quick use
above).
2. Create a job that extend the `requirements-compile` job template.
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 |
| ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------- |
| `PROJECT_PATH` | The path to the project root directory. | `"."` |
| `REQUIREMENTS_FILE_PATH` | the path to the requirements file. | `"${PROJECT_PATH}/requirements.txt"` |
| `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"` |
| `GITLAB_API_URL` | The host name of the GitLab instance | `${CI_SERVER_HOST}` |
| Name | Description | Default |
|--------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------|
| `PROJECT_PATH` | The path to the project root directory. | `"."` |
| `REQUIREMENTS_FILE_PATH` | the path to the requirements file. | `"${PROJECT_PATH}/requirements.txt"` |
| `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"` |
| `GITLAB_API_URL` | The host name of the GitLab instance | `${CI_SERVER_HOST}` |
## Example of use
```yaml
include:
# Include the python_install job template (don't forget to replace the version tag)
- remote: 'https://api.r2devops.io/job/r/gitlab/dorianturba/r2devops_catalog/r2_metadata/depandabot@0.1.0.yaml'
- remote: 'https://api.r2devops.io/job/r/gitlab/dorianturba/r2devops_catalog/r2_metadata/requirements-compile@0.1.0.yaml'
requirements311:
extends:
- .depandabot # extends the python_install job template
- .requirements-compile # extends the python_install job template
stage: dependency_management
variables:
REQUIREMENTS_FILE_PATH: "${PROJECT_PATH}/requirements-py311.txt" # override the default REQUIREMENTS_FILE_PATH variable
IMAGE_TAG: "3.11" # override the default IMAGE_TAG variable
REQUIREMENTS_FILE_PATH: "${PROJECT_PATH}/requirements-py312.txt" # override the default REQUIREMENTS_FILE_PATH variable
IMAGE_TAG: "3.12" # override the default IMAGE_TAG variable
GITLAB_API_URL: "gitlab.example.com" # override the default GITLAB_API_URL
script:
- !reference [script] # reuse the script from the depandabot job template
- !reference [ script ] # reuse the script from the requirements-compile job template
```
include:
- remote: 'https://api.r2devops.io/job/r/gitlab/dorianturba/r2devops_catalog/r2_metadata/python_install@latest.yaml'
depandabot:
requirements-compile:
extends:
- .python_install
stage: build
......@@ -16,19 +16,19 @@ depandabot:
script:
- !reference [.python_install, script]
- DEPS_BRANCH="depandabot/requirements-txt/$(date +%s)"
- DEPS_BRANCH="requirements-compile/requirements-txt/$(date +%s)"
- |
COMMIT_MESSAGE="build(deps): bump new versions"
- $([ -f ${OUTPUT_FILE_PATH} ]) && ACTION="update" || ACTION="create"
- pip-compile --quiet --strip-extras -o ${OUTPUT_FILE_PATH} ${REQUIREMENTS_FILE_PATH}
- if [ -n "$(git status --porcelain ${OUTPUT_FILE_PATH})" ]; then
- |
curl --header "Authorization: Bearer ${DEPANDABOT_TOKEN}" \
curl --header "Authorization: Bearer ${REQUIREMENTS_COMPILE_TOKEN}" \
--form "branch=$DEPS_BRANCH" \
--form "ref=${CI_DEFAULT_BRANCH}" \
"https://${GITLAB_API_URL}/api/v4/projects/${CI_PROJECT_ID}/repository/branches"
- |
curl --header "Authorization: Bearer ${DEPANDABOT_TOKEN}" \
curl --header "Authorization: Bearer ${REQUIREMENTS_COMPILE_TOKEN}" \
--form "branch=$DEPS_BRANCH" \
--form "commit_message=$COMMIT_MESSAGE" \
--form "actions[][action]=$ACTION" \
......@@ -38,7 +38,7 @@ depandabot:
- requirements_compare ${OUTPUT_FILE_PATH} # Debug
- requirements_compare ${OUTPUT_FILE_PATH} > description.md
- |
curl --header "Authorization: Bearer ${DEPANDABOT_TOKEN}" \
curl --header "Authorization: Bearer ${REQUIREMENTS_COMPILE_TOKEN}" \
--form "source_branch=$DEPS_BRANCH" \
--form "target_branch=${CI_DEFAULT_BRANCH}" \
--form "title=$COMMIT_MESSAGE" \
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment