Skip to content

607 maintenance integrate uv to dockerfile and GitHub workflow#617

Open
valhassan wants to merge 9 commits intoNRCan:mainfrom
valhassan:607-maintenance-integrate-uv-to-dockerfile-and-github-workflow
Open

607 maintenance integrate uv to dockerfile and GitHub workflow#617
valhassan wants to merge 9 commits intoNRCan:mainfrom
valhassan:607-maintenance-integrate-uv-to-dockerfile-and-github-workflow

Conversation

@valhassan
Copy link
Collaborator

Description

This PR integrates uv as the project’s Python/package tooling and updates the GitHub workflows to match.

Summary of changes:

  • Dockerfile: Multistage build using uv (copy from ghcr.io/astral-sh/uv), Python 3.12, uv sync --frozen with cu128 extra; builder stage with deps + venv, runtime stage with minimal CUDA runtime and geospatial libs.
  • build-on-tag.yml: Replaced manual docker build / docker tag / docker push with docker/build-push-action@v6; metadata now targets .../gdl-cuda12 with version + latest tags; bumped actions/checkout@v5, docker/login-action@v3. BuildKit is used by the action (required for Dockerfile RUN --mount=...).
  • github-actions-ci.yml: Switched from pip + requirements.txt to uv; Python 3.12 (matches pyproject.toml); single install step uv sync --frozen --extra dev --extra cpu; added lint step (ruff check + format --check); tests run with uv run --frozen pytest tests/; astral-sh/setup-uv@v7, actions/checkout@v5, uv cache enabled.

Motivation: Align Docker and CI with the lockfile and pyproject.toml, use a single toolchain (uv), and simplify/maintain the workflows.

Dependencies: None.

Fixes #607

Type of change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Other — Maintenance: tooling (uv) and CI/workflow updates

How Has This Been Tested?

  • CI: github-actions-ci.yml runs on push/PR (checkout → setup-uv → uv sync → ruff → pytest). Passing CI confirms install, lint, and tests.
  • Docker: build-on-tag.yml runs on tag push; build uses BuildKit and build-push-action. No new pytest coverage added; changes are to build and CI only.

Screenshots (if applicable):

N/A

Checklist

  • My code follows the code style of this project
  • I have performed a self-review of my own code
  • My PR has a descriptive title
  • My code follows PEP8 (most of it)
  • My code have the proper documentation in the code
  • I have made corresponding changes to the documentation
  • My changes generate no new errors
  • My code is covered by the existing tests
  • My code includes tests that show that my feature works — N/A (no new feature)
  • My PR passes CI tests

valhassan and others added 9 commits January 28, 2026 12:46
…ndency management, optimize caching, and set up a non-root user for runtime execution.
…patial libraries, and enhance environment configuration for improved runtime performance.
…rom Docker builds, improving build efficiency and reducing image size.
…by upgrading action versions, consolidating build and push steps, and improving metadata extraction for tags and labels.
… to UV for dependency management, and streamline testing and linting processes with enhanced Python version support.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[MAINTENANCE] integrate uv to dockerfile and github workflow

1 participant