Skip to content
Snippets Groups Projects
Commit c9af3af7 authored by Yoann Schneider's avatar Yoann Schneider :tennis:
Browse files

Merge branch 'bump-arkindex-base-worker' into 'master'

Bump Python requirement arkindex-base-worker to 0.4.0

See merge request !3
parents 71e05d33 9e390f43
No related branches found
No related tags found
1 merge request!3Bump Python requirement arkindex-base-worker to 0.4.0
Pipeline #203208 passed
......@@ -6,7 +6,7 @@ workers:
name: Thumbnails Generator
type: Utils
docker:
build: Dockerfile
command: worker-thumbnails-generator
configuration:
width: 900
height: 400
......
......@@ -14,7 +14,7 @@ variables:
DEBIAN_FRONTEND: non-interactive
test:
image: python:slim
image: python:3.12-slim
stage: test
cache:
......@@ -41,7 +41,7 @@ test:
- tox -- --junitxml=test-report.xml --durations=50
lint:
image: python:slim
image: python:3.12-slim
cache:
paths:
......@@ -105,7 +105,7 @@ bump-python-deps:
- schedules
script:
- devops python-deps requirements.txt
- devops python-deps pyproject.toml
publish-worker:
stage: release
......
repos:
- repo: https://github.com/astral-sh/ruff-pre-commit
# Ruff version.
rev: v0.3.1
rev: v0.8.2
hooks:
# Run the linter.
- id: ruff
......@@ -9,7 +9,7 @@ repos:
# Run the formatter.
- id: ruff-format
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.5.0
rev: v5.0.0
hooks:
- id: check-ast
- id: check-docstring-first
......@@ -25,12 +25,21 @@ repos:
args: ['--django']
- id: check-json
- id: check-toml
- id: requirements-txt-fixer
- repo: https://github.com/codespell-project/codespell
rev: v2.2.6
rev: v2.3.0
hooks:
- id: codespell
args: ['--write-changes']
- repo: meta
hooks:
- id: check-useless-excludes
- repo: https://github.com/shellcheck-py/shellcheck-py
rev: v0.10.0.1
hooks:
- id: shellcheck
- repo: https://gitlab.teklia.com/tools/pre-commit-hooks
rev: 0.1.0
hooks:
- id: long-test-files
args: ['1000']
files: '^tests\/(.*\/)?test_[^\/]*\.py$'
FROM python:3.11-slim
FROM python:3.12-slim
WORKDIR /src
# Install curl
ENV DEBIAN_FRONTEND=non-interactive
RUN apt-get update -q -y && apt-get install -q -y --no-install-recommends curl
# Install worker as a package
COPY worker_thumbnails_generator worker_thumbnails_generator
COPY requirements.txt setup.py pyproject.toml ./
COPY pyproject.toml ./
RUN pip install . --no-cache-dir
# Add archi local CA
RUN curl https://assets.teklia.com/teklia_dev_ca.pem > /usr/local/share/ca-certificates/arkindex-dev.crt && update-ca-certificates
ENV REQUESTS_CA_BUNDLE /etc/ssl/certs/ca-certificates.crt
CMD ["worker-thumbnails-generator"]
include requirements.txt
......@@ -4,19 +4,19 @@
# Will automatically login to a registry if CI_REGISTRY, CI_REGISTRY_USER and CI_REGISTRY_PASSWORD are set.
# Will only push an image if $CI_REGISTRY is set.
if [ -z "$VERSION" -o -z "$CI_PROJECT_DIR" -o -z "$CI_REGISTRY_IMAGE" ]; then
if [ -z "$VERSION" ] || [ -z "$CI_PROJECT_DIR" ] || [ -z "$CI_REGISTRY_IMAGE" ]; then
echo Missing environment variables
exit 1
fi
IMAGE_TAG="$CI_REGISTRY_IMAGE:$VERSION"
cd $CI_PROJECT_DIR
cd "$CI_PROJECT_DIR"
docker build -f Dockerfile . -t "$IMAGE_TAG"
if [ -n "$CI_REGISTRY" -a -n "$CI_REGISTRY_USER" -a -n "$CI_REGISTRY_PASSWORD" ]; then
echo $CI_REGISTRY_PASSWORD | docker login -u $CI_REGISTRY_USER --password-stdin $CI_REGISTRY
docker push $IMAGE_TAG
if [ -n "$CI_REGISTRY" ] && [ -n "$CI_REGISTRY_USER" ] && [ -n "$CI_REGISTRY_PASSWORD" ]; then
echo "$CI_REGISTRY_PASSWORD" | docker login -u "$CI_REGISTRY_USER" --password-stdin "$CI_REGISTRY"
docker push "$IMAGE_TAG"
else
echo "Missing environment variables to log in to the container registry…"
fi
......@@ -7,7 +7,9 @@ name = "worker_thumbnails_generator"
license = { file = "LICENSE" }
version = "0.1.0"
description = "Worker to generate thumbnails for Arkindex elements"
dynamic = ["dependencies"]
dependencies = [
"arkindex-base-worker==0.4.0",
]
authors = [
{ name = "Teklia", email = "contact@teklia.com" },
]
......@@ -22,16 +24,18 @@ classifiers = [
"Programming Language :: Python :: 3 :: Only",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
]
[project.scripts]
worker-thumbnails-generator = "worker_thumbnails_generator.worker:main"
"worker-thumbnails-generator" = "worker_thumbnails_generator.worker:main"
[tool.setuptools.dynamic]
dependencies = { file = ["requirements.txt"] }
[tool.setuptools.packages]
find = {}
[tool.ruff]
exclude = [".git", "__pycache__"]
target-version = "py312"
[tool.ruff.lint]
ignore = ["E501"]
......
#!/usr/bin/env python
from setuptools import find_packages, setup
setup(packages=find_packages())
......@@ -45,7 +45,7 @@ def _setup_environment(responses, monkeypatch) -> None:
monkeypatch.setattr(BaseWorker, "setup_api_client", mock_setup_api_client)
@pytest.fixture()
@pytest.fixture
def mock_worker() -> ThumbnailsGenerator:
worker = ThumbnailsGenerator()
worker.args = Namespace(dev=False)
......@@ -63,7 +63,7 @@ def mock_worker() -> ThumbnailsGenerator:
return worker
@pytest.fixture()
@pytest.fixture
def page_1_payload() -> dict:
return {
"id": "page_1",
......@@ -89,7 +89,7 @@ def page_1_payload() -> dict:
}
@pytest.fixture()
@pytest.fixture
def page_2_payload() -> dict:
return {
"id": "page_2",
......@@ -115,7 +115,7 @@ def page_2_payload() -> dict:
}
@pytest.fixture()
@pytest.fixture
def page_3_payload() -> dict:
return {
"id": "page_3",
......@@ -141,7 +141,7 @@ def page_3_payload() -> dict:
}
@pytest.fixture()
@pytest.fixture
def pages_payload(
page_1_payload: dict, page_2_payload: dict, page_3_payload: dict
) -> list[dict]:
......
......@@ -9,4 +9,3 @@ commands =
deps =
pytest
pytest-responses
-rrequirements.txt
......@@ -14,18 +14,11 @@ class ThumbnailsGenerator(ElementsWorker):
def configure(self) -> None:
super().configure()
if self.user_configuration:
logger.info("Loading user_configuration")
self.config.update(self.user_configuration)
self.thumbnail_width: int = self.config["width"]
self.thumbnail_height: int = self.config["height"]
self.first_n: int = self.config.get("first_n")
corpus = self.request("RetrieveCorpus", id=self.corpus_id)
self.corpus_types = {
element_type["slug"]: element_type for element_type in corpus["types"]
}
self.list_corpus_types()
def _list_folder_elements(self, folder):
"""
......
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