diff --git a/.github/workflows/updater.sh b/.github/workflows/updater.sh index 5635e68..df78dcc 100644 --- a/.github/workflows/updater.sh +++ b/.github/workflows/updater.sh @@ -17,11 +17,8 @@ #================================================= # Fetching information -#TODO : find a way to install tomlq executable -#app=$(cat manifest.toml | tomlq -j '.id') -#current_version=$(cat manifest.toml | tomlq -j '.version|split("~")[0]') -app=$(cat manifest.toml | awk -v key="id" '$1 == key { gsub("\"","",$3);print $3 }') -current_version=$(cat manifest.toml | awk -v key="version" '$1 == key { gsub("\"","",$3);print $3 }' | awk -F'~' '{print $1}') +app=$(cat manifest.toml | tomlq -j '.id') +current_version=$(cat manifest.toml | tomlq -j '.version|split("~")[0]') upstream_version=$(curl -Ls https://pypi.org/pypi/$app/json | jq -r .info.version) # Setting up the environment variables @@ -32,13 +29,15 @@ echo "VERSION=$upstream_version" >> $GITHUB_ENV echo "PROCEED=false" >> $GITHUB_ENV # Proceed only if the retrieved version is greater than the current one -if ! dpkg --compare-versions "$current_version" "lt" "$upstream_version" ; then - echo "::warning ::No new version available" - exit 0 +if ! dpkg --compare-versions "$current_version" "lt" "$upstream_version" +then + echo "::warning ::No new version available" + exit 0 # Proceed only if a PR for this new version does not already exist -elif git ls-remote -q --exit-code --heads https://github.com/$GITHUB_REPOSITORY.git ci-auto-update-v$upstream_version ; then - echo "::warning ::A branch already exists for this update" - exit 0 +elif git ls-remote -q --exit-code --heads https://github.com/$GITHUB_REPOSITORY.git ci-auto-update-v$upstream_version +then + echo "::warning ::A branch already exists for this update" + exit 0 fi #================================================= @@ -48,14 +47,23 @@ fi # Replace new version in _common.sh sed -i "s/^app_version=.*/app_version=$upstream_version/" scripts/_common.sh +# Replace python required version +py_required_major=$(curl -Ls https://pypi.org/pypi/$app/json | jq -r .info.requires_python | cut -d '=' -f 2 | rev | cut -d"." -f2- | rev) +py_required_minor=$(curl -s "https://www.python.org/ftp/python/" | grep ">$py_required_major" | cut -d '/' -f 2 | cut -d '>' -f 2 | sort -rV | head -n 1) +sed -i "s/^py_required_version=.*/py_required_version=$py_required_minor/" scripts/_common.sh + +# Replace pip required version +pip_required=$(curl -Ls https://pypi.org/pypi/$app/json | jq -r .info.requires_dist[] | grep "pip") #"pip (<23.1,>=21.0)" +sed -i "s/^pip_required=.*/pip_required=\"$pip_required\"/" scripts/_common.sh + #================================================= # GENERIC FINALIZATION #================================================= # Replace new version in manifest -#TODO : find a way to install tomlq executable -#echo "$(tomlq -s --indent 4 ".[] | .version = \"$upstream_version~ynh1\"" manifest.toml)" > manifest.toml sed -i "s/^version = .*/version = \"$upstream_version~ynh1\"/" manifest.toml +#DOES NOT WORK BECAUSE IT REORDER ALL THE MANIFEST IN A STRANGE WAY +#echo "$(tomlq --toml-output --slurp --indent 4 ".[] | .version = \"$version~ynh1\"" manifest.toml)" > manifest.toml # No need to update the README, yunohost-bot takes care of it diff --git a/.github/workflows/updater.yml b/.github/workflows/updater.yml index 137e440..392e0ec 100644 --- a/.github/workflows/updater.yml +++ b/.github/workflows/updater.yml @@ -17,6 +17,11 @@ jobs: uses: actions/checkout@v3 with: token: ${{ secrets.GITHUB_TOKEN }} + - name: Install python + uses: actions/setup-python@v4 + - name: Install yq/tomlq + id: install_yq + run: pip install yq - name: Run the updater script id: run_updater run: | diff --git a/README.md b/README.md index 79cf7b9..8f6acf0 100644 --- a/README.md +++ b/README.md @@ -29,7 +29,7 @@ Open source home automation that puts local control and privacy first. Powered b - Home Energy Management." -**Shipped version:** 2023.3.1~ynh1 +**Shipped version:** 2023.3.4~ynh1 **Demo:** https://demo.home-assistant.io diff --git a/README_fr.md b/README_fr.md index 267698e..5ae4fcc 100644 --- a/README_fr.md +++ b/README_fr.md @@ -29,7 +29,7 @@ Open source home automation that puts local control and privacy first. Powered b - Home Energy Management." -**Version incluse :** 2023.3.1~ynh1 +**Version incluse :** 2023.3.4~ynh1 **Démo :** https://demo.home-assistant.io diff --git a/manifest.toml b/manifest.toml index 59dec4f..af72e22 100644 --- a/manifest.toml +++ b/manifest.toml @@ -5,7 +5,7 @@ name = "Home Assistant" description.en = "Home automation platform" description.fr = "Plateforme domotique" -version = "2023.3.1~ynh1" +version = "2023.3.4~ynh1" maintainers = ["ewilly"] diff --git a/scripts/_common.sh b/scripts/_common.sh index 26bee10..49fea09 100644 --- a/scripts/_common.sh +++ b/scripts/_common.sh @@ -5,12 +5,11 @@ #================================================= # Release to install -app_version=2023.3.1 +app_version=2023.3.4 -# Requirements (Major.Minor.Patch) -# PY_VERSION=$(curl -s "https://www.python.org/ftp/python/" | grep ">3.9" | tail -n1 | cut -d '/' -f 2 | cut -d '>' -f 2) -# Pyhton 3.9.2 will be shiped with bullseye -py_required_version=3.10.9 +# Requirements +py_required_version=3.10.10 +pip_required="pip (<23.1,>=21.0)" #================================================= # PERSONAL HELPERS @@ -125,7 +124,7 @@ myynh_install_homeassistant () { ynh_exec_as $app "$install_dir/bin/python3" -m ensurepip # install last version of pip - ynh_exec_as $app "$install_dir/bin/pip3" --cache-dir "$data_dir/.cache" install --upgrade pip + ynh_exec_as $app "$install_dir/bin/pip3" --cache-dir "$data_dir/.cache" install --upgrade "$pip_required" # install last version of wheel ynh_exec_as $app "$install_dir/bin/pip3" --cache-dir "$data_dir/.cache" install --upgrade wheel @@ -137,7 +136,7 @@ myynh_install_homeassistant () { ynh_exec_as $app "$install_dir/bin/pip3" --cache-dir "$data_dir/.cache" install --upgrade mysqlclient # install Home Assistant - ynh_exec_as $app "$install_dir/bin/pip3" --cache-dir "$data_dir/.cache" install --upgrade $app==$app_version + ynh_exec_as $app "$install_dir/bin/pip3" --cache-dir "$data_dir/.cache" install --upgrade "$app==$app_version" ) }