mirror of
https://github.com/esphome/esphome.git
synced 2026-06-24 12:33:10 +00:00
[ci] Use uv for pip installs across CI workflows (#16451)
This commit is contained in:
16
.github/actions/restore-python/action.yml
vendored
16
.github/actions/restore-python/action.yml
vendored
@@ -27,6 +27,14 @@ runs:
|
|||||||
path: venv
|
path: venv
|
||||||
# yamllint disable-line rule:line-length
|
# yamllint disable-line rule:line-length
|
||||||
key: ${{ runner.os }}-${{ steps.python.outputs.python-version }}-venv-${{ inputs.cache-key }}
|
key: ${{ runner.os }}-${{ steps.python.outputs.python-version }}-venv-${{ inputs.cache-key }}
|
||||||
|
- name: Set up uv
|
||||||
|
# Only needed on cache miss to populate the venv. ``uv pip install``
|
||||||
|
# detects the activated venv via ``VIRTUAL_ENV`` so the venv layout
|
||||||
|
# downstream jobs rely on is preserved.
|
||||||
|
if: steps.cache-venv.outputs.cache-hit != 'true'
|
||||||
|
uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0
|
||||||
|
with:
|
||||||
|
enable-cache: true
|
||||||
- name: Create Python virtual environment
|
- name: Create Python virtual environment
|
||||||
if: steps.cache-venv.outputs.cache-hit != 'true' && runner.os != 'Windows'
|
if: steps.cache-venv.outputs.cache-hit != 'true' && runner.os != 'Windows'
|
||||||
shell: bash
|
shell: bash
|
||||||
@@ -34,8 +42,8 @@ runs:
|
|||||||
python -m venv venv
|
python -m venv venv
|
||||||
source venv/bin/activate
|
source venv/bin/activate
|
||||||
python --version
|
python --version
|
||||||
pip install -r requirements.txt -r requirements_test.txt
|
uv pip install -r requirements.txt -r requirements_test.txt
|
||||||
pip install -e .
|
uv pip install -e .
|
||||||
- name: Create Python virtual environment
|
- name: Create Python virtual environment
|
||||||
if: steps.cache-venv.outputs.cache-hit != 'true' && runner.os == 'Windows'
|
if: steps.cache-venv.outputs.cache-hit != 'true' && runner.os == 'Windows'
|
||||||
shell: bash
|
shell: bash
|
||||||
@@ -43,5 +51,5 @@ runs:
|
|||||||
python -m venv venv
|
python -m venv venv
|
||||||
source ./venv/Scripts/activate
|
source ./venv/Scripts/activate
|
||||||
python --version
|
python --version
|
||||||
pip install -r requirements.txt -r requirements_test.txt
|
uv pip install -r requirements.txt -r requirements_test.txt
|
||||||
pip install -e .
|
uv pip install -e .
|
||||||
|
|||||||
8
.github/workflows/ci-api-proto.yml
vendored
8
.github/workflows/ci-api-proto.yml
vendored
@@ -26,6 +26,12 @@ jobs:
|
|||||||
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
|
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
|
||||||
with:
|
with:
|
||||||
python-version: "3.11"
|
python-version: "3.11"
|
||||||
|
- name: Set up uv
|
||||||
|
# ``--system`` (below) installs into the setup-python interpreter;
|
||||||
|
# no venv is created or restored by this workflow.
|
||||||
|
uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0
|
||||||
|
with:
|
||||||
|
enable-cache: true
|
||||||
|
|
||||||
- name: Install apt dependencies
|
- name: Install apt dependencies
|
||||||
run: |
|
run: |
|
||||||
@@ -34,7 +40,7 @@ jobs:
|
|||||||
sudo apt install -y protobuf-compiler
|
sudo apt install -y protobuf-compiler
|
||||||
protoc --version
|
protoc --version
|
||||||
- name: Install python dependencies
|
- name: Install python dependencies
|
||||||
run: pip install aioesphomeapi -c requirements.txt -r requirements_dev.txt
|
run: uv pip install --system aioesphomeapi -c requirements.txt -r requirements_dev.txt
|
||||||
- name: Generate files
|
- name: Generate files
|
||||||
run: script/api_protobuf/api_protobuf.py
|
run: script/api_protobuf/api_protobuf.py
|
||||||
- name: Check for changes
|
- name: Check for changes
|
||||||
|
|||||||
22
.github/workflows/ci.yml
vendored
22
.github/workflows/ci.yml
vendored
@@ -52,14 +52,22 @@ jobs:
|
|||||||
path: venv
|
path: venv
|
||||||
# yamllint disable-line rule:line-length
|
# yamllint disable-line rule:line-length
|
||||||
key: ${{ runner.os }}-${{ steps.python.outputs.python-version }}-venv-${{ steps.cache-key.outputs.key }}
|
key: ${{ runner.os }}-${{ steps.python.outputs.python-version }}-venv-${{ steps.cache-key.outputs.key }}
|
||||||
|
- name: Set up uv
|
||||||
|
# Only needed on cache miss to populate the venv. ``uv pip install``
|
||||||
|
# detects the activated venv via ``VIRTUAL_ENV`` so downstream jobs
|
||||||
|
# that ``. venv/bin/activate`` see an identical layout.
|
||||||
|
if: steps.cache-venv.outputs.cache-hit != 'true'
|
||||||
|
uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0
|
||||||
|
with:
|
||||||
|
enable-cache: true
|
||||||
- name: Create Python virtual environment
|
- name: Create Python virtual environment
|
||||||
if: steps.cache-venv.outputs.cache-hit != 'true'
|
if: steps.cache-venv.outputs.cache-hit != 'true'
|
||||||
run: |
|
run: |
|
||||||
python -m venv venv
|
python -m venv venv
|
||||||
. venv/bin/activate
|
. venv/bin/activate
|
||||||
python --version
|
python --version
|
||||||
pip install -r requirements.txt -r requirements_dev.txt -r requirements_test.txt pre-commit
|
uv pip install -r requirements.txt -r requirements_dev.txt -r requirements_test.txt pre-commit
|
||||||
pip install -e .
|
uv pip install -e .
|
||||||
|
|
||||||
pylint:
|
pylint:
|
||||||
name: Check pylint
|
name: Check pylint
|
||||||
@@ -351,14 +359,20 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
path: venv
|
path: venv
|
||||||
key: ${{ runner.os }}-${{ steps.python.outputs.python-version }}-venv-${{ needs.common.outputs.cache-key }}
|
key: ${{ runner.os }}-${{ steps.python.outputs.python-version }}-venv-${{ needs.common.outputs.cache-key }}
|
||||||
|
- name: Set up uv
|
||||||
|
# Only needed on cache miss to populate the venv.
|
||||||
|
if: steps.cache-venv.outputs.cache-hit != 'true'
|
||||||
|
uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0
|
||||||
|
with:
|
||||||
|
enable-cache: true
|
||||||
- name: Create Python virtual environment
|
- name: Create Python virtual environment
|
||||||
if: steps.cache-venv.outputs.cache-hit != 'true'
|
if: steps.cache-venv.outputs.cache-hit != 'true'
|
||||||
run: |
|
run: |
|
||||||
python -m venv venv
|
python -m venv venv
|
||||||
. venv/bin/activate
|
. venv/bin/activate
|
||||||
python --version
|
python --version
|
||||||
pip install -r requirements.txt -r requirements_test.txt
|
uv pip install -r requirements.txt -r requirements_test.txt
|
||||||
pip install -e .
|
uv pip install -e .
|
||||||
- name: Register matcher
|
- name: Register matcher
|
||||||
run: echo "::add-matcher::.github/workflows/matchers/pytest.json"
|
run: echo "::add-matcher::.github/workflows/matchers/pytest.json"
|
||||||
- name: Run integration tests
|
- name: Run integration tests
|
||||||
|
|||||||
Reference in New Issue
Block a user