From b07236b54427d2ea5492952358ab47c1fa16a4ac Mon Sep 17 00:00:00 2001 From: Wendelin <12148533+wendevlin@users.noreply.github.com> Date: Mon, 13 Jan 2025 12:35:54 +0100 Subject: [PATCH] Add frontend auto update workflow (#5501) * Remove git submodule * Add frontend auto update workflow * Update .github/workflows/update_frontend.yml Co-authored-by: Stefan Agner --------- Co-authored-by: Stefan Agner --- .github/workflows/update_frontend.yml | 74 +++++++++++++++++++++++++++ .gitmodules | 4 -- .ha-frontend-version | 1 + home-assistant-polymer | 1 - scripts/update-frontend.sh | 27 ---------- 5 files changed, 75 insertions(+), 32 deletions(-) create mode 100644 .github/workflows/update_frontend.yml delete mode 100644 .gitmodules create mode 100644 .ha-frontend-version delete mode 160000 home-assistant-polymer delete mode 100755 scripts/update-frontend.sh diff --git a/.github/workflows/update_frontend.yml b/.github/workflows/update_frontend.yml new file mode 100644 index 00000000000..4a87c018c1e --- /dev/null +++ b/.github/workflows/update_frontend.yml @@ -0,0 +1,74 @@ +name: Update frontend + +on: + schedule: # once a day + - cron: "0 0 * * *" + workflow_dispatch: + +jobs: + check-version: + runs-on: ubuntu-latest + outputs: + skip: ${{ steps.check_version.outputs.skip || steps.check_existing_pr.outputs.skip }} + latest_tag: ${{ steps.latest_frontend_version.outputs.latest_tag }} + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Get latest frontend release + id: latest_frontend_version + uses: abatilo/release-info-action@v1.3.3 + with: + owner: home-assistant + repo: frontend + - name: Check if version is up to date + id: check_version + run: | + SUPERVISOR_VERSION=$(cat .ha-frontend-version) + LATEST_VERSION=${{ steps.latest_frontend_version.outputs.latest_tag }} + echo "SUPERVISOR_VERSION=$SUPERVISOR_VERSION" >> $GITHUB_ENV + echo "LATEST_VERSION=$LATEST_VERSION" >> $GITHUB_ENV + if [[ ! "$SUPERVISOR_VERSION" < "$LATEST_VERSION" ]]; then + echo "Frontend version is up to date" + echo "skip=true" >> $GITHUB_OUTPUT + fi + - name: Check if there is no open PR with this version + if: steps.check_version.outputs.skip != 'true' + id: check_existing_pr + env: + GH_TOKEN: ${{ github.token }} + run: | + PR=$(gh pr list --state open --base main --json title --search "Autoupdate frontend to version $LATEST_VERSION") + if [[ "$PR" != "[]" ]]; then + echo "Skipping - There is already a PR open for version $LATEST_VERSION" + echo "skip=true" >> $GITHUB_OUTPUT + fi + create-pr: + runs-on: ubuntu-latest + needs: check-version + if: needs.check-version.outputs.skip != 'true' + steps: + - name: Checkout code + uses: actions/checkout@v4 + - name: Clear www folder + run: | + rm -rf supervisor/api/panel/* + - name: Update version file + run: | + echo "${{ needs.check-version.outputs.latest_tag }}" > .ha-frontend-version + - name: Download release assets + uses: robinraju/release-downloader@v1 + with: + repository: 'home-assistant/frontend' + tag: ${{ needs.check-version.outputs.latest_tag }} + fileName: home_assistant_frontend_supervisor-${{ needs.check-version.outputs.latest_tag }}.tar.gz + extract: true + out-file-path: supervisor/api/panel/ + - name: Create PR + uses: peter-evans/create-pull-request@v7 + with: + commit-message: "Autoupdate frontend to version ${{ needs.check-version.outputs.latest_tag }}" + branch: autoupdate-frontend + base: main + draft: true + sign-commits: true + title: "Autoupdate frontend to version ${{ needs.check-version.outputs.latest_tag }}" diff --git a/.gitmodules b/.gitmodules deleted file mode 100644 index 178ea35a32c..00000000000 --- a/.gitmodules +++ /dev/null @@ -1,4 +0,0 @@ -[submodule "home-assistant-polymer"] - path = home-assistant-polymer - url = https://github.com/home-assistant/home-assistant-polymer - branch = dev diff --git a/.ha-frontend-version b/.ha-frontend-version new file mode 100644 index 00000000000..86a97a7397a --- /dev/null +++ b/.ha-frontend-version @@ -0,0 +1 @@ +20241127.8 \ No newline at end of file diff --git a/home-assistant-polymer b/home-assistant-polymer deleted file mode 160000 index 46f0e0212dc..00000000000 --- a/home-assistant-polymer +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 46f0e0212dc93ffaf2992b64aa8fa1b54fde7e0e diff --git a/scripts/update-frontend.sh b/scripts/update-frontend.sh deleted file mode 100755 index 8f23900a666..00000000000 --- a/scripts/update-frontend.sh +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/bash -source "/etc/supervisor_scripts/common" - -set -e - -# Update frontend -git submodule update --init --recursive --remote - -[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" -cd home-assistant-polymer -nvm install -script/bootstrap - -# Download translations -./script/translations_download - -# build frontend -cd hassio -./script/build_hassio - -# Copy frontend -rm -rf ../../supervisor/api/panel/* -cp -rf build/* ../../supervisor/api/panel/ - -# Reset frontend git -cd .. -git reset --hard HEAD \ No newline at end of file