From 38cd1e43be7f9eda6f2f637b116a91f0d4284de8 Mon Sep 17 00:00:00 2001 From: Vladimir Lewandowski Date: Thu, 25 Jan 2024 17:24:48 +0100 Subject: [PATCH 1/3] build: add a CI flow for Embedded UI refresh --- .github/workflows/embedded_ui_refresh.yaml | 71 ++++++++++++++++++++++ ydb/core/viewer/ya.make | 2 + 2 files changed, 73 insertions(+) create mode 100644 .github/workflows/embedded_ui_refresh.yaml diff --git a/.github/workflows/embedded_ui_refresh.yaml b/.github/workflows/embedded_ui_refresh.yaml new file mode 100644 index 000000000000..1250ee93831b --- /dev/null +++ b/.github/workflows/embedded_ui_refresh.yaml @@ -0,0 +1,71 @@ +on: + repository_dispatch: + types: [embedded_ui_refresh] + workflow_dispatch: + inputs: + asset_name: + description: Release asset name + required: true + default: embedded-ui + repository: + description: Source repository + required: true + default: ydb-platform/ydb-embedded-ui + tag_name: + description: Release tag + required: true + +name: Embedded UI Refresh + +jobs: + main: + runs-on: ubuntu-latest + permissions: + contents: write + pull-requests: write + env: + ASSET_NAME: ${{ github.event.inputs && github.event.inputs.asset_name || github.event.client_payload.asset_name }} + REPOSITORY: ${{ github.event.inputs && github.event.inputs.repository || github.event.client_payload.repository }} + TAG_NAME: ${{ github.event.inputs && github.event.inputs.tag_name || github.event.client_payload.tag_name }} + TEMP_ASSET_DIR: /tmp/asset + steps: + - uses: actions/checkout@v4 + - name: Asset Download + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: gh release download $TAG_NAME --repo $REPOSITORY --pattern $ASSET_NAME.zip --dir $TEMP_ASSET_DIR + - name: Asset Placement + env: + START_POINTER: "# GENERATED MONITORING RESOURCES START" + END_POINTER: "# GENERATED MONITORING RESOURCES END" + TARGET_DIR: ydb/core/viewer/monitoring + YA_MAKE_FILE: ydb/core/viewer/ya.make + run: | + unzip $TEMP_ASSET_DIR/$ASSET_NAME.zip -d $TEMP_ASSET_DIR + rm -rf $TARGET_DIR + mkdir $TARGET_DIR + mv -vf $TEMP_ASSET_DIR/$ASSET_NAME/* $TARGET_DIR + + NEW_RESOURCES=$(find $TARGET_DIR -type f | grep -v '.map' | sort) + INDENTATION=$(grep -e "$START_POINTER" $YA_MAKE_FILE | perl -lane 's/^(\s+)(.*)+$/$1/e; print') + + perl -0777 -pi -e "s/\s+$START_POINTER.*$END_POINTER/ + $INDENTATION$START_POINTER + ${INDENTATION}RESOURCE( + $(echo "$NEW_RESOURCES" | perl -e "while (<>) {chomp; print \"$INDENTATION \$_ \$_\\n\";}" | sed -E 's/\//\\\//g') + $INDENTATION) + $INDENTATION$END_POINTER/s" $YA_MAKE_FILE + - name: Pull Request + uses: peter-evans/create-pull-request@v5 + with: + token: ${{ secrets.GITHUB_TOKEN }} + commit-message: "build: refresh Embedded UI (${{ env.TAG_NAME }})" + branch: embedded-ui-refresh-${{ env.TAG_NAME }} + delete-branch: true + title: "build: refresh Embedded UI (${{ env.TAG_NAME }})" + body: | + ### Embedded UI Refresh + + Embedded UI + [${{ env.TAG_NAME }}](https://github.com/${{ env.REPOSITORY }}/releases/tag/${{ env.TAG_NAME }}) + ([CHANGELOG.md](https://github.com/${{ env.REPOSITORY }}/blob/${{ env.TAG_NAME }}/CHANGELOG.md)). diff --git a/ydb/core/viewer/ya.make b/ydb/core/viewer/ya.make index 6ba7460f81fd..6041359303e0 100644 --- a/ydb/core/viewer/ya.make +++ b/ydb/core/viewer/ya.make @@ -66,6 +66,7 @@ SRCS( ) IF (NOT EXPORT_CMAKE) + # GENERATED MONITORING RESOURCES START RESOURCE( monitoring/index.html monitoring/index.html monitoring/static/favicon.png monitoring/static/favicon.png @@ -162,6 +163,7 @@ IF (NOT EXPORT_CMAKE) monitoring/static/media/error.ca9e31d5d3dc34da07e11a00f7af0842.svg monitoring/static/media/error.ca9e31d5d3dc34da07e11a00f7af0842.svg monitoring/static/media/thumbsUp.d4a03fbaa64ce85a0045bf8ba77f8e2b.svg monitoring/static/media/thumbsUp.d4a03fbaa64ce85a0045bf8ba77f8e2b.svg ) + # GENERATED MONITORING RESOURCES END ENDIF() RESOURCE( From fe330dd02547f053cfe3f4cf85f7ead0f4eddfb6 Mon Sep 17 00:00:00 2001 From: Vladimir Lewandowski Date: Fri, 26 Jan 2024 12:32:16 +0100 Subject: [PATCH 2/3] ci: add comments to Embedded UI refresh script --- .github/workflows/embedded_ui_refresh.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/embedded_ui_refresh.yaml b/.github/workflows/embedded_ui_refresh.yaml index 1250ee93831b..45f12af05a04 100644 --- a/.github/workflows/embedded_ui_refresh.yaml +++ b/.github/workflows/embedded_ui_refresh.yaml @@ -46,9 +46,13 @@ jobs: mkdir $TARGET_DIR mv -vf $TEMP_ASSET_DIR/$ASSET_NAME/* $TARGET_DIR + # List of files in the target directory. NEW_RESOURCES=$(find $TARGET_DIR -type f | grep -v '.map' | sort) + + # Current indentation of the start pointer line. INDENTATION=$(grep -e "$START_POINTER" $YA_MAKE_FILE | perl -lane 's/^(\s+)(.*)+$/$1/e; print') + # Replacing resources list between start and end pointers with saving the current indentation. perl -0777 -pi -e "s/\s+$START_POINTER.*$END_POINTER/ $INDENTATION$START_POINTER ${INDENTATION}RESOURCE( From 70a113233b2a8c22a1196acab18ee98eadb3a0bb Mon Sep 17 00:00:00 2001 From: Vladimir Lewandowski Date: Fri, 26 Jan 2024 14:34:45 +0100 Subject: [PATCH 3/3] ci: remove unnecessary `.map` files filter in Embedded UI refresh script --- .github/workflows/embedded_ui_refresh.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/embedded_ui_refresh.yaml b/.github/workflows/embedded_ui_refresh.yaml index 45f12af05a04..d7cf2f073e42 100644 --- a/.github/workflows/embedded_ui_refresh.yaml +++ b/.github/workflows/embedded_ui_refresh.yaml @@ -47,7 +47,7 @@ jobs: mv -vf $TEMP_ASSET_DIR/$ASSET_NAME/* $TARGET_DIR # List of files in the target directory. - NEW_RESOURCES=$(find $TARGET_DIR -type f | grep -v '.map' | sort) + NEW_RESOURCES=$(find $TARGET_DIR -type f | sort) # Current indentation of the start pointer line. INDENTATION=$(grep -e "$START_POINTER" $YA_MAKE_FILE | perl -lane 's/^(\s+)(.*)+$/$1/e; print')