From dc8b6343b916c79069983a950af77a10f9670c9e Mon Sep 17 00:00:00 2001 From: Toha Date: Wed, 29 Jul 2026 17:30:23 +0000 Subject: [PATCH] Unify git changed files check. --- .github/workflows/check.yml | 44 ++++++++++++++++--------------------- 1 file changed, 19 insertions(+), 25 deletions(-) diff --git a/.github/workflows/check.yml b/.github/workflows/check.yml index ed0fe4a86..89c7f80b5 100644 --- a/.github/workflows/check.yml +++ b/.github/workflows/check.yml @@ -20,34 +20,28 @@ jobs: run: | git fetch origin master:master ANY_CHANGED=false - JS_ANY_CHANGED=false - JS_ALL_CHANGED_FILES=$(git diff --diff-filter=ACMRT --name-only master -- tests/**/*.js tests/**/*.ts scripts/**/*.js scripts/**/*.mts scripts/**/*.ts sites/**/*.js sites/**/*.ts | tr '\n' ' ') - if [ -n "${JS_ALL_CHANGED_FILES}" ]; then - JS_ANY_CHANGED=true - ANY_CHANGED=true - fi - echo "js_all_changed_files=$JS_ALL_CHANGED_FILES" >> "$GITHUB_OUTPUT" - echo "js_any_changed=$JS_ANY_CHANGED" >> "$GITHUB_OUTPUT" - CHANNELS_ANY_CHANGED=false - CHANNELS_ALL_CHANGED_FILES=$(git diff --diff-filter=ACMRT --name-only master -- sites/**/*.channels.xml | tr '\n' ' ') - if [ -n "${CHANNELS_ALL_CHANGED_FILES}" ]; then - CHANNELS_ANY_CHANGED=true - ANY_CHANGED=true - fi - echo "channels_all_changed_files=$CHANNELS_ALL_CHANGED_FILES" >> "$GITHUB_OUTPUT" - echo "channels_any_changed=$CHANNELS_ANY_CHANGED" >> "$GITHUB_OUTPUT" - echo "any_changed=$ANY_CHANGED" >> "$GITHUB_OUTPUT" - WORKERS_ANY_CHANGED=false - WORKERS_CHANGED_FILES=$(git diff --diff-filter=ACMRT --name-only master -- workers.txt | tr '\n' ' ') - if [ -n "${WORKERS_CHANGED_FILES}" ]; then - WORKERS_ANY_CHANGED=true - ANY_CHANGED=true - fi - echo "workers_any_changed=$WORKERS_ANY_CHANGED" >> "$GITHUB_OUTPUT" + JS_FILES="tests/**/*.js tests/**/*.ts scripts/**/*.js scripts/**/*.mts scripts/**/*.ts sites/**/*.js sites/**/*.ts" + CHANNELS_FILES="sites/**/*.channels.xml" + WORKERS_FILES="workers.txt" + for PREFIX in JS CHANNELS WORKERS; do + CHANGED_FILES_VAR="${PREFIX}_FILES" + CHANGED_FILES_PATTERN=${!CHANGED_FILES_VAR} + if [ -n "${CHANGED_FILES_PATTERN}" ]; then + HAS_CHANGES=false + CHANGED_FILES=$(git diff --diff-filter=ACMRT --name-only master -- ${CHANGED_FILES_PATTERN} | tr '\n' ' ') + if [ -n "${CHANGED_FILES}" ]; then + ANY_CHANGED=true + HAS_CHANGES=true + echo "${PREFIX,,}_all_changed_files=${CHANGED_FILES}" >> "${GITHUB_OUTPUT}" + fi + echo "${PREFIX,,}_any_changed=${HAS_CHANGES}" >> "${GITHUB_OUTPUT}" + fi + done + echo "any_changed=${ANY_CHANGED}" >> "${GITHUB_OUTPUT}" - uses: actions/setup-node@v4 if: steps.files.outputs.any_changed == 'true' with: - node-version: 22 + node-version: 24 cache: 'npm' - name: Install dependencies if: steps.files.outputs.any_changed == 'true'