From 8c8a873b795c4f8a6a8f07e9ed7729d9c35dacd5 Mon Sep 17 00:00:00 2001 From: Pierre Smeyers <pierre.smeyers@gmail.com> Date: Mon, 7 Feb 2022 17:52:55 +0100 Subject: [PATCH] chore: renamed unprefixed variables BREAKING CHANGE: rename $REQUIREMENTS_FILE as $PYTHON_REQS_FILE and $PYTHON_REQS_FILE as $PYTHON_EXTRA_REQS_FILES default extra requirements changed from 'test-requirements.txt' to 'requirements-dev.txt' --- README.md | 4 ++-- kicker.json | 10 +++++----- templates/gitlab-ci-python.yml | 28 ++++++++++++++++------------ 3 files changed, 23 insertions(+), 19 deletions(-) diff --git a/README.md b/README.md index 112e2fc..4a47516 100644 --- a/README.md +++ b/README.md @@ -27,8 +27,8 @@ The Python template uses some global configuration used throughout all jobs. | `PIP_INDEX_URL` | Python repository url | _none_ | | `PIP_OPTS` | pip [extra options](https://pip.pypa.io/en/stable/reference/pip/#general-options) | _none_ | | `PYTHON_EXTRA_DEPS` | Python extra sets of dependencies to install<br/>For [Setuptools](https://setuptools.pypa.io/en/latest/userguide/dependency_management.html?highlight=extras#optional-dependencies) or [Poetry](https://python-poetry.org/docs/pyproject/#extras) only | _none_ | -| `REQUIREMENTS_FILE` | Name of requirements file _(relative to `$PYTHON_PROJECT_DIR`)_<br/>For [Requirements Files](https://pip.pypa.io/en/stable/user_guide/#requirements-files) build-system only | `requirements.txt` | -| `TEST_REQUIREMENTS_FILE` | Name of dev/test requirements file _(relative to `$PYTHON_PROJECT_DIR`)_ | `test-requirements.txt` | +| `PYTHON_REQS_FILE` | Main requirements file _(relative to `$PYTHON_PROJECT_DIR`)_<br/>For [Requirements Files](https://pip.pypa.io/en/stable/user_guide/#requirements-files) build-system only | `requirements.txt` | +| `PYTHON_EXTRA_REQS_FILES` | Extra dev requirements file(s) to install _(relative to `$PYTHON_PROJECT_DIR`)_ | `requirements-dev.txt` | The cache policy also makes the necessary to manage pip cache (not to download Python dependencies over and over again). diff --git a/kicker.json b/kicker.json index 702f023..35d8ab8 100644 --- a/kicker.json +++ b/kicker.json @@ -22,15 +22,15 @@ "advanced": true }, { - "name": "REQUIREMENTS_FILE", - "description": "Name of requirements file _(relative to `$PYTHON_PROJECT_DIR`)_\n\nFor [Requirements Files](https://pip.pypa.io/en/stable/user_guide/#requirements-files) build-system only", + "name": "PYTHON_REQS_FILE", + "description": "Main requirements file _(relative to `$PYTHON_PROJECT_DIR`)_\n\nFor [Requirements Files](https://pip.pypa.io/en/stable/user_guide/#requirements-files) build-system only", "default": "requirements.txt", "advanced": true }, { - "name": "TEST_REQUIREMENTS_FILE", - "description": "Name of dev/test requirements file _(relative to `$PYTHON_PROJECT_DIR`)_\n\nFor [Requirements Files](https://pip.pypa.io/en/stable/user_guide/#requirements-files) build-system only", - "default": "test-requirements.txt", + "name": "PYTHON_EXTRA_REQS_FILES", + "description": "Extra dev requirements file(s) to install _(relative to `$PYTHON_PROJECT_DIR`)_\n\nFor [Requirements Files](https://pip.pypa.io/en/stable/user_guide/#requirements-files) build-system only", + "default": "requirements-dev.txt", "advanced": true }, { diff --git a/templates/gitlab-ci-python.yml b/templates/gitlab-ci-python.yml index 434b958..9ac4503 100644 --- a/templates/gitlab-ci-python.yml +++ b/templates/gitlab-ci-python.yml @@ -25,9 +25,10 @@ variables: PYTHON_IMAGE: python:3 # Default Python project root directory PYTHON_PROJECT_DIR: . - REQUIREMENTS_FILE: requirements.txt - TEST_REQUIREMENTS_FILE: test-requirements.txt - SETUP_PY_DIR: "." + + PYTHON_REQS_FILE: requirements.txt + PYTHON_EXTRA_REQS_FILES: "requirements-dev.txt" + # default production ref name (pattern) PROD_REF: '/^(master|main)$/' # default integration ref name (pattern) @@ -273,7 +274,7 @@ variables: then log_info "--- Build system auto-detected: Pipenv" export PYTHON_BUILD_SYSTEM="pipenv" - elif [[ -f "${REQUIREMENTS_FILE}" ]] + elif [[ -f "${PYTHON_REQS_FILE}" ]] then log_info "--- Build system auto-detected: requirements file" export PYTHON_BUILD_SYSTEM="reqfile" @@ -311,17 +312,20 @@ variables: fi ;; reqfile) - if [[ -f "${REQUIREMENTS_FILE}" ]]; then - log_info "--- installing build requirements from \\e[33;1m${REQUIREMENTS_FILE}\\e[0m" + if [[ -f "${PYTHON_REQS_FILE}" ]]; then + log_info "--- installing main requirements from \\e[33;1m${PYTHON_REQS_FILE}\\e[0m" + # shellcheck disable=SC2086 + pip install ${PIP_OPTS} -r "${PYTHON_REQS_FILE}" # shellcheck disable=SC2086 - pip install ${PIP_OPTS} -r "${REQUIREMENTS_FILE}" - if [[ -f "${TEST_REQUIREMENTS_FILE}" ]]; then - log_info "--- installing test requirements from \\e[33;1m${TEST_REQUIREMENTS_FILE}\\e[0m" + found_reqs_files=$(eval ls -1 $PYTHON_EXTRA_REQS_FILES 2>/dev/null || echo "") + # shellcheck disable=SC2116 + for extrareqsfile in $(echo "$found_reqs_files"); do + log_info "--- installing extra requirements from \\e[33;1m${extrareqsfile}\\e[0m" # shellcheck disable=SC2086 - pip install ${PIP_OPTS} -r "${TEST_REQUIREMENTS_FILE}" - fi + pip install ${PIP_OPTS} -r "${extrareqsfile}" + done else - log_warn "--- requirements build system defined, but no ${REQUIREMENTS_FILE} file found" + log_warn "--- requirements build system defined, but no ${PYTHON_REQS_FILE} file found" fi ;; esac -- GitLab