diff --git a/.github/workflows/jh-builder.yml b/.github/workflows/jh-builder.yml index 3b090733e37b46..f74f9f7e825cad 100644 --- a/.github/workflows/jh-builder.yml +++ b/.github/workflows/jh-builder.yml @@ -10,7 +10,7 @@ on: env: BUILD_TYPE: core - DEFAULT_PYTHON: "3.12.3" + DEFAULT_PYTHON: "3.12" PIP_TIMEOUT: 60 UV_HTTP_TIMEOUT: 60 UV_SYSTEM_PYTHON: "true" @@ -27,7 +27,7 @@ jobs: publish: ${{ steps.version.outputs.publish }} steps: - name: Checkout the repository - uses: actions/checkout@v4.1.6 + uses: actions/checkout@v4.1.7 with: fetch-depth: 0 @@ -35,7 +35,7 @@ jobs: run: cp -f build-jethub.yaml build.yaml - name: Set up Python ${{ env.DEFAULT_PYTHON }} - uses: actions/setup-python@v5.1.0 + uses: actions/setup-python@v5.2.0 with: python-version: ${{ env.DEFAULT_PYTHON }} @@ -74,7 +74,7 @@ jobs: run: find ./homeassistant/components/*/translations -name "*.json" | tar zcvf translations.tar.gz -T - - name: Upload translations - uses: actions/upload-artifact@v4.3.3 + uses: actions/upload-artifact@v4.4.0 with: name: translations path: translations.tar.gz @@ -96,14 +96,14 @@ jobs: arch: ${{ fromJson(needs.init.outputs.architectures) }} steps: - name: Checkout the repository - uses: actions/checkout@v4.1.6 + uses: actions/checkout@v4.1.7 - name: update build.yaml run: cp -f build-jethub.yaml build.yaml - name: Download nightly wheels of frontend if: needs.init.outputs.channel == 'dev' - uses: dawidd6/action-download-artifact@v3.1.4 + uses: dawidd6/action-download-artifact@v6 with: github_token: ${{secrets.GITHUB_TOKEN}} repo: home-assistant/frontend @@ -114,7 +114,7 @@ jobs: - name: Download nightly wheels of intents if: needs.init.outputs.channel == 'dev' - uses: dawidd6/action-download-artifact@v3.1.4 + uses: dawidd6/action-download-artifact@v6 with: github_token: ${{secrets.GITHUB_TOKEN}} repo: home-assistant/intents-package @@ -125,7 +125,7 @@ jobs: - name: Set up Python ${{ env.DEFAULT_PYTHON }} if: needs.init.outputs.channel == 'dev' - uses: actions/setup-python@v5.1.0 + uses: actions/setup-python@v5.2.0 with: python-version: ${{ env.DEFAULT_PYTHON }} @@ -142,7 +142,7 @@ jobs: env: UV_PRERELEASE: allow run: | - python3 -m pip install "$(grep '^uv' < requirements_test.txt)" + python3 -m pip install "$(grep '^uv' < requirements.txt)" uv pip install packaging tomli uv pip install . python3 script/version_bump.py nightly --set-nightly-version "${{ needs.init.outputs.version }}" @@ -189,9 +189,9 @@ jobs: sed -i "s|noaa-coops|# noaa-coops|g" requirements_all.txt sed -i "s|pyezviz|# pyezviz|g" requirements_all.txt sed -i "s|pykrakenapi|# pykrakenapi|g" requirements_all.txt - + - name: Download translations - uses: actions/download-artifact@v4.1.7 + uses: actions/download-artifact@v4.1.8 with: name: translations @@ -206,14 +206,14 @@ jobs: echo "${{ github.sha }};${{ github.ref }};${{ github.event_name }};${{ github.actor }}" > rootfs/OFFICIAL_IMAGE - name: Login to GitHub Container Registry - uses: docker/login-action@v3.2.0 + uses: docker/login-action@v3.3.0 with: registry: ghcr.io username: ${{ github.repository_owner }} password: ${{ secrets.GITHUB_TOKEN }} - name: Build base image - uses: jethub-homeassistant/builder@2024.03.5 + uses: jethub-homeassistant/builder@2024.08.2 with: args: | $BUILD_ARGS \ @@ -261,7 +261,7 @@ jobs: - tinker steps: - name: Checkout the repository - uses: actions/checkout@v4.1.6 + uses: actions/checkout@v4.1.7 - name: update build.yaml run: cp -f build-jethub.yaml build.yaml @@ -278,14 +278,14 @@ jobs: fi - name: Login to GitHub Container Registry - uses: docker/login-action@v3.2.0 + uses: docker/login-action@v3.3.0 with: registry: ghcr.io username: ${{ github.repository_owner }} password: ${{ secrets.GITHUB_TOKEN }} - name: Build base image - uses: jethub-homeassistant/builder@2024.03.5 + uses: jethub-homeassistant/builder@2024.08.2 with: args: | $BUILD_ARGS \ @@ -300,7 +300,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout the repository - uses: actions/checkout@v4.1.6 + uses: actions/checkout@v4.1.7 - name: update build.yaml run: cp -f build-jethub.yaml build.yaml @@ -343,10 +343,10 @@ jobs: registry: ["ghcr.io/jethub-homeassistant", "cr.jethome.work/ha"] steps: - name: Checkout the repository - uses: actions/checkout@v4.1.6 + uses: actions/checkout@v4.1.7 - name: Install Cosign - uses: sigstore/cosign-installer@v3.5.0 + uses: sigstore/cosign-installer@v3.6.0 with: cosign-release: "v2.2.3" @@ -355,7 +355,7 @@ jobs: - name: Login to DockerHub if: matrix.registry == 'cr.jethome.work/ha' - uses: docker/login-action@v3.2.0 + uses: docker/login-action@v3.3.0 with: registry: cr.jethome.work username: ${{ secrets.CR_USERNAME }} @@ -363,7 +363,7 @@ jobs: - name: Login to GitHub Container Registry if: matrix.registry == 'ghcr.io/jethub-homeassistant' - uses: docker/login-action@v3.2.0 + uses: docker/login-action@v3.3.0 with: registry: ghcr.io username: ${{ github.repository_owner }} diff --git a/.github/workflows/jh-translations.yml b/.github/workflows/jh-translations.yml index d112ded1bc4289..fa7b848b3db71c 100644 --- a/.github/workflows/jh-translations.yml +++ b/.github/workflows/jh-translations.yml @@ -13,7 +13,7 @@ on: - "**strings.json" env: - DEFAULT_PYTHON: "3.12.3" + DEFAULT_PYTHON: "3.12" jobs: upload: @@ -22,10 +22,12 @@ jobs: runs-on: ${{ vars.RUNNER }} steps: - name: Checkout the repository - uses: actions/checkout@v4.1.6 + uses: actions/checkout@v4.1.7 + with: + fetch-depth: 0 - name: Set up Python ${{ env.DEFAULT_PYTHON }} - uses: actions/setup-python@v5.1.0 + uses: actions/setup-python@v5.2.0 with: python-version: ${{ env.DEFAULT_PYTHON }} @@ -46,11 +48,11 @@ jobs: docker create --name temp-core ghcr.io/home-assistant/aarch64-homeassistant:$VERSION docker cp temp-core:"/usr/src/homeassistant/homeassistant" ./ docker rm temp-core - + - name: Archive translations shell: bash run: find ./homeassistant/components/*/translations -name "*.json" | tar zcvf translations.tar.gz -T - - + - name: Upload Translations uses: transifex/cli-action@v2 with: diff --git a/.github/workflows/jh-wheels.yml b/.github/workflows/jh-wheels.yml index 47fa70bfb3eb06..79fff44bdd04d9 100644 --- a/.github/workflows/jh-wheels.yml +++ b/.github/workflows/jh-wheels.yml @@ -19,7 +19,7 @@ on: workflow_call: env: - DEFAULT_PYTHON: "3.12.3" + DEFAULT_PYTHON: "3.12" concurrency: group: ${{ github.workflow }}-${{ github.ref_name}} @@ -34,11 +34,11 @@ jobs: architectures: ${{ steps.info.outputs.architectures }} steps: - name: Checkout the repository - uses: actions/checkout@v4.1.6 + uses: actions/checkout@v4.1.7 - name: Set up Python ${{ env.DEFAULT_PYTHON }} id: python - uses: actions/setup-python@v5.1.0 + uses: actions/setup-python@v5.2.0 with: python-version: ${{ env.DEFAULT_PYTHON }} check-latest: true @@ -48,7 +48,7 @@ jobs: python -m venv venv . venv/bin/activate python --version - pip install "$(grep '^uv' < requirements_test.txt)" + pip install "$(grep '^uv' < requirements.txt)" uv pip install -r requirements.txt - name: Get information @@ -84,14 +84,14 @@ jobs: ) > .env_file - name: Upload env_file - uses: actions/upload-artifact@v4.3.3 + uses: actions/upload-artifact@v4.4.0 with: name: env_file path: ./.env_file overwrite: true - name: Upload requirements_diff - uses: actions/upload-artifact@v4.3.3 + uses: actions/upload-artifact@v4.4.0 with: name: requirements_diff path: ./requirements_diff.txt @@ -103,7 +103,7 @@ jobs: python -m script.gen_requirements_all ci - name: Upload requirements_all_wheels - uses: actions/upload-artifact@v4.3.3 + uses: actions/upload-artifact@v4.4.0 with: name: requirements_all_wheels path: ./requirements_all_wheels_*.txt @@ -120,20 +120,20 @@ jobs: arch: ${{ fromJson(needs.init.outputs.architectures) }} steps: - name: Checkout the repository - uses: actions/checkout@v4.1.6 + uses: actions/checkout@v4.1.7 - name: Download env_file - uses: actions/download-artifact@v4.1.7 + uses: actions/download-artifact@v4.1.8 with: name: env_file - name: Download requirements_diff - uses: actions/download-artifact@v4.1.7 + uses: actions/download-artifact@v4.1.8 with: name: requirements_diff - name: Build wheels - uses: jethub-homeassistant/wheels@2024.01.0 + uses: jethub-homeassistant/wheels@2024.07.1 with: abi: ${{ matrix.abi }} tag: musllinux_1_2 @@ -141,7 +141,7 @@ jobs: wheels-key: ${{ secrets.WHEELS_KEY }} env-file: true apk: "libffi-dev;openssl-dev;yaml-dev;nasm" - skip-binary: aiohttp + skip-binary: aiohttp;multidict;yarl constraints: "homeassistant/package_constraints.txt" requirements-diff: "requirements_diff.txt" requirements: "requirements.txt" @@ -158,23 +158,35 @@ jobs: arch: ${{ fromJson(needs.init.outputs.architectures) }} steps: - name: Checkout the repository - uses: actions/checkout@v4.1.6 + uses: actions/checkout@v4.1.7 - name: Download env_file - uses: actions/download-artifact@v4.1.7 + uses: actions/download-artifact@v4.1.8 with: name: env_file - name: Download requirements_diff - uses: actions/download-artifact@v4.1.7 + uses: actions/download-artifact@v4.1.8 with: name: requirements_diff - name: Download requirements_all_wheels - uses: actions/download-artifact@v4.1.7 + uses: actions/download-artifact@v4.1.8 with: name: requirements_all_wheels + - name: Adjust build env + run: | + if [ "${{ matrix.arch }}" = "i386" ]; then + echo "NPY_DISABLE_SVML=1" >> .env_file + fi + + # Do not pin numpy in wheels building + sed -i "/numpy/d" homeassistant/package_constraints.txt + # Don't build wheels for uv as uv requires a greater version of rust as currently available on alpine + sed -i "/uv/d" requirements.txt + sed -i "/uv/d" requirements_diff.txt + - name: Split requirements all run: | # We split requirements all into multiple files. @@ -195,17 +207,8 @@ jobs: cat homeassistant/package_constraints.txt | grep 'grpcio==' >> requirements_old-cython.txt cat homeassistant/package_constraints.txt | grep 'pydantic==' >> requirements_old-cython.txt - - name: Adjust build env - run: | - if [ "${{ matrix.arch }}" = "i386" ]; then - echo "NPY_DISABLE_SVML=1" >> .env_file - fi - - # Do not pin numpy in wheels building - sed -i "/numpy/d" homeassistant/package_constraints.txt - - name: Build wheels (old cython) - uses: jethub-homeassistant/wheels@2024.01.0 + uses: jethub-homeassistant/wheels@2024.07.1 with: abi: ${{ matrix.abi }} tag: musllinux_1_2 @@ -213,14 +216,14 @@ jobs: wheels-key: ${{ secrets.WHEELS_KEY }} env-file: true apk: "bluez-dev;libffi-dev;openssl-dev;glib-dev;eudev-dev;libxml2-dev;libxslt-dev;libpng-dev;libjpeg-turbo-dev;tiff-dev;cups-dev;gmp-dev;mpfr-dev;mpc1-dev;ffmpeg-dev;gammu-dev;yaml-dev;openblas-dev;fftw-dev;lapack-dev;gfortran;blas-dev;eigen-dev;freetype-dev;glew-dev;harfbuzz-dev;hdf5-dev;libdc1394-dev;libtbb-dev;mesa-dev;openexr-dev;openjpeg-dev;uchardet-dev" - skip-binary: aiohttp;charset-normalizer;grpcio;SQLAlchemy;protobuf;pydantic + skip-binary: aiohttp;charset-normalizer;grpcio;multidict;SQLAlchemy;protobuf;pydantic;pymicro-vad;yarl constraints: "homeassistant/package_constraints.txt" requirements-diff: "requirements_diff.txt" requirements: "requirements_old-cython.txt" pip: "'cython<3'" - name: Build wheels (part 1) - uses: jethub-homeassistant/wheels@2024.01.0 + uses: jethub-homeassistant/wheels@2024.07.1 with: abi: ${{ matrix.abi }} tag: musllinux_1_2 @@ -228,13 +231,13 @@ jobs: wheels-key: ${{ secrets.WHEELS_KEY }} env-file: true apk: "bluez-dev;libffi-dev;openssl-dev;glib-dev;eudev-dev;libxml2-dev;libxslt-dev;libpng-dev;libjpeg-turbo-dev;tiff-dev;cups-dev;gmp-dev;mpfr-dev;mpc1-dev;ffmpeg-dev;gammu-dev;yaml-dev;openblas-dev;fftw-dev;lapack-dev;gfortran;blas-dev;eigen-dev;freetype-dev;glew-dev;harfbuzz-dev;hdf5-dev;libdc1394-dev;libtbb-dev;mesa-dev;openexr-dev;openjpeg-dev;uchardet-dev;nasm" - skip-binary: aiohttp;charset-normalizer;grpcio;SQLAlchemy;protobuf;pydantic + skip-binary: aiohttp;charset-normalizer;grpcio;multidict;SQLAlchemy;protobuf;pydantic;pymicro-vad;yarl constraints: "homeassistant/package_constraints.txt" requirements-diff: "requirements_diff.txt" requirements: "requirements_all.txtaa" - name: Build wheels (part 2) - uses: jethub-homeassistant/wheels@2024.01.0 + uses: jethub-homeassistant/wheels@2024.07.1 with: abi: ${{ matrix.abi }} tag: musllinux_1_2 @@ -242,13 +245,13 @@ jobs: wheels-key: ${{ secrets.WHEELS_KEY }} env-file: true apk: "bluez-dev;libffi-dev;openssl-dev;glib-dev;eudev-dev;libxml2-dev;libxslt-dev;libpng-dev;libjpeg-turbo-dev;tiff-dev;cups-dev;gmp-dev;mpfr-dev;mpc1-dev;ffmpeg-dev;gammu-dev;yaml-dev;openblas-dev;fftw-dev;lapack-dev;gfortran;blas-dev;eigen-dev;freetype-dev;glew-dev;harfbuzz-dev;hdf5-dev;libdc1394-dev;libtbb-dev;mesa-dev;openexr-dev;openjpeg-dev;uchardet-dev;nasm" - skip-binary: aiohttp;charset-normalizer;grpcio;SQLAlchemy;protobuf;pydantic + skip-binary: aiohttp;charset-normalizer;grpcio;multidict;SQLAlchemy;protobuf;pydantic;pymicro-vad;yarl constraints: "homeassistant/package_constraints.txt" requirements-diff: "requirements_diff.txt" requirements: "requirements_all.txtab" - name: Build wheels (part 3) - uses: jethub-homeassistant/wheels@2024.01.0 + uses: jethub-homeassistant/wheels@2024.07.1 with: abi: ${{ matrix.abi }} tag: musllinux_1_2 @@ -256,7 +259,7 @@ jobs: wheels-key: ${{ secrets.WHEELS_KEY }} env-file: true apk: "bluez-dev;libffi-dev;openssl-dev;glib-dev;eudev-dev;libxml2-dev;libxslt-dev;libpng-dev;libjpeg-turbo-dev;tiff-dev;cups-dev;gmp-dev;mpfr-dev;mpc1-dev;ffmpeg-dev;gammu-dev;yaml-dev;openblas-dev;fftw-dev;lapack-dev;gfortran;blas-dev;eigen-dev;freetype-dev;glew-dev;harfbuzz-dev;hdf5-dev;libdc1394-dev;libtbb-dev;mesa-dev;openexr-dev;openjpeg-dev;uchardet-dev;nasm" - skip-binary: aiohttp;charset-normalizer;grpcio;SQLAlchemy;protobuf;pydantic + skip-binary: aiohttp;charset-normalizer;grpcio;multidict;SQLAlchemy;protobuf;pydantic;pymicro-vad;yarl constraints: "homeassistant/package_constraints.txt" requirements-diff: "requirements_diff.txt" requirements: "requirements_all.txtac" diff --git a/build-jethub.yaml b/build-jethub.yaml index 33b40a96911cc5..796fb89f3fcbb4 100644 --- a/build-jethub.yaml +++ b/build-jethub.yaml @@ -1,10 +1,10 @@ image: ghcr.io/jethub-homeassistant/{arch}-homeassistant build_from: - aarch64: ghcr.io/jethub-homeassistant/aarch64-homeassistant-base:2024.03.0 - armhf: ghcr.io/jethub-homeassistant/armhf-homeassistant-base:2024.03.0 - armv7: ghcr.io/jethub-homeassistant/armv7-homeassistant-base:2024.03.0 - amd64: ghcr.io/jethub-homeassistant/amd64-homeassistant-base:2024.03.0 - i386: ghcr.io/jethub-homeassistant/i386-homeassistant-base:2024.03.0 + aarch64: ghcr.io/jethub-homeassistant/aarch64-homeassistant-base:2024.06.1 + armhf: ghcr.io/jethub-homeassistant/armhf-homeassistant-base:2024.06.1 + armv7: ghcr.io/jethub-homeassistant/armv7-homeassistant-base:2024.06.1 + amd64: ghcr.io/jethub-homeassistant/amd64-homeassistant-base:2024.06.1 + i386: ghcr.io/jethub-homeassistant/i386-homeassistant-base:2024.06.1 codenotary: signer: vb@jethome.ru base_image: vb@jethome.ru