This is an automated email from the ASF dual-hosted git repository.
mgrigorov pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/avro.git
The following commit(s) were added to refs/heads/main by this push:
new 0baa65f9e1 AVRO-4232: Install uv for the JavaScript & Docker CI
workflows (#3665)
0baa65f9e1 is described below
commit 0baa65f9e1cdf6cb2395b61999fab5e330d58583
Author: Martin Grigorov <[email protected]>
AuthorDate: Mon Feb 23 12:58:32 2026 +0200
AVRO-4232: Install uv for the JavaScript & Docker CI workflows (#3665)
* AVRO-4232: Install uv for the JavaScript & Docker CI workflows
* Add /root/.local/bin to PATH for uv/uvx
* Add more patterns to labeler.yml
---
.github/labeler.yml | 35 ++++++++++++++++++++++++-----------
.github/workflows/test-lang-js.yml | 15 +++++++++------
share/docker/Dockerfile | 17 ++++++-----------
3 files changed, 39 insertions(+), 28 deletions(-)
diff --git a/.github/labeler.yml b/.github/labeler.yml
index a6184f0538..1e4e98e783 100644
--- a/.github/labeler.yml
+++ b/.github/labeler.yml
@@ -18,36 +18,49 @@
#
# Pull Request Labeler Github Action Configuration:
https://github.com/marketplace/actions/labeler
-C:
+C:
- changed-files:
- any-glob-to-any-file: "lang/c/**/*"
-C++:
+ - any-glob-to-any-file: ".github/workflows/test-lang-c.yml"
+C++:
- changed-files:
- any-glob-to-any-file: "lang/c++/**/*"
-C#:
+ - any-glob-to-any-file: ".github/workflows/test-lang-c++.yml"
+C#:
- changed-files:
- any-glob-to-any-file: "lang/csharp/**/*"
-Java:
+ - any-glob-to-any-file: ".github/workflows/*-csharp*.yml"
+Java:
- changed-files:
- any-glob-to-any-file: "lang/java/**/*"
-Js:
+ - any-glob-to-any-file: ".github/workflows/*-java*.yml"
+ - any-glob-to-any-file: ".github/workflows/*maven*.yml"
+ - any-glob-to-any-file: ".github/workflows/*spotless*.yml"
+Js:
- changed-files:
- any-glob-to-any-file: "lang/js/**/*"
-Perl:
+ - any-glob-to-any-file: ".github/workflows/*-js*.yml"
+Perl:
- changed-files:
- any-glob-to-any-file: "lang/perl/**/*"
-Php:
+ - any-glob-to-any-file: ".github/workflows/test-lang-perl.yml"
+Php:
- changed-files:
- any-glob-to-any-file: "lang/php/**/*"
-Python:
+ - any-glob-to-any-file: ".github/workflows/test-lang-php.yml"
+Python:
- changed-files:
- any-glob-to-any-file: "lang/py/**/*"
-Ruby:
+ - any-glob-to-any-file: ".github/workflows/*-py*.yml"
+Ruby:
- changed-files:
- any-glob-to-any-file: "lang/ruby/**/*"
-build:
+ - any-glob-to-any-file: ".github/workflows/test-lang-ruby.yml"
+build:
- changed-files:
- any-glob-to-any-file: ["**/*Dockerfile*", "**/*.sh", "**/*pom.xml",
".github/**/*"]
-website:
+ - any-glob-to-any-file: ".github/workflows/test-docker.yml"
+website:
- changed-files:
- any-glob-to-any-file: "doc/**/*"
+ - any-glob-to-any-file: ".github/workflows/deploy-docs.yml"
diff --git a/.github/workflows/test-lang-js.yml
b/.github/workflows/test-lang-js.yml
index 95a875dc6b..0033a203b5 100644
--- a/.github/workflows/test-lang-js.yml
+++ b/.github/workflows/test-lang-js.yml
@@ -37,7 +37,7 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
- os:
+ os:
- ubuntu-latest
- ubuntu-24.04-arm
node:
@@ -68,7 +68,7 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
- os:
+ os:
- ubuntu-latest
- ubuntu-24.04-arm
node:
@@ -99,10 +99,13 @@ jobs:
liblzma-dev \
libsnappy-dev \
libzstd-dev
- - name: Install Python Dependencies
- run: |
- python3 -m pip install --break-system-packages --upgrade pip
setuptools tox
- python3 -m pip install --break-system-packages python-snappy
zstandard
+
+ - name: Setup uv
+ uses: astral-sh/setup-uv@681c641aba71e4a1c380be3ab5e12ad51f415867
+
+ - name: Install Dependencies
+ working-directory: lang/py
+ run: uv sync --frozen
- name: Create Interop Data Directory
working-directory: .
diff --git a/share/docker/Dockerfile b/share/docker/Dockerfile
index 5e11cb4e39..5932e5be7b 100644
--- a/share/docker/Dockerfile
+++ b/share/docker/Dockerfile
@@ -189,15 +189,10 @@ RUN apt-get -qqy install --no-install-recommends mypy \
python3.11 \
python3.12 \
python3.13 \
- python3.13-dev \
- python3-pip \
- python3-setuptools \
- python3-snappy \
- python3-venv \
- python3-wheel \
- python3-zstandard \
- tox \
- && apt-get -qqy clean
+ python3.14 \
+ python3.14-dev \
+ && apt-get -qqy clean \
+ && curl -LsSf https://astral.sh/uv/0.10.4/install.sh | sh
# Install Ruby
RUN apt-get -qqy install ruby-full \
@@ -211,7 +206,7 @@ RUN gem install bundler --no-document && \
# Install Rust
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
--default-toolchain 1.73.0
-ENV PATH=$PATH:/root/.cargo/bin/
+ENV PATH=$PATH:/root/.cargo/bin/:/root/.local/bin
# Install .NET SDK
RUN cd /opt ; \
@@ -219,7 +214,7 @@ RUN cd /opt ; \
bash ./dotnet-install.sh --channel "6.0" --install-dir "/opt/dotnet" ; \
bash ./dotnet-install.sh --channel "7.0" --install-dir "/opt/dotnet" ; \
bash ./dotnet-install.sh --channel "8.0" --install-dir "/opt/dotnet" ;
-
+
ENV PATH=$PATH:/opt/dotnet
# Since we want the JDK21 as a default, we have to re-prepend it to the PATH.