diff --git a/.github/workflows/build-and-deploy.yml b/.github/workflows/build-and-deploy.yml index 05fbca96269..e0bcdf7e63b 100644 --- a/.github/workflows/build-and-deploy.yml +++ b/.github/workflows/build-and-deploy.yml @@ -12,10 +12,17 @@ jobs: name: Build And Deploy runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - name: Checkout + uses: actions/checkout@v4 with: fetch-depth: 0 - - uses: actions/setup-node@v4 + + - name: Check documentation consistency + run: | + bash .github/workflows/consistency-check.sh + + - name: Setup Node + uses: actions/setup-node@v4 with: node-version: 18 cache: yarn diff --git a/.github/workflows/build-check.yml b/.github/workflows/build-check.yml index e979fb8bf3d..7fb79b400b9 100644 --- a/.github/workflows/build-check.yml +++ b/.github/workflows/build-check.yml @@ -1,30 +1,37 @@ -name: Build check - -on: - push: - branches-ignore: - - main -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true -jobs: - deploy: - name: Build check - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - uses: actions/setup-node@v4 - with: - node-version: 18 - cache: yarn - - - name: Install dependencies - run: | - yarn - - - name: Build website - run: | - make build - +name: Build check + +on: + push: + branches-ignore: + - main +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + deploy: + name: Build check + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Check documentation consistency + run: | + bash .github/workflows/consistency-check.sh + + - name: Setup Node + uses: actions/setup-node@v4 + with: + node-version: 18 + cache: yarn + + - name: Install dependencies + run: | + yarn + + - name: Build website + run: | + make build diff --git a/.github/workflows/consistency-check.sh b/.github/workflows/consistency-check.sh new file mode 100644 index 00000000000..f1d42b5014a --- /dev/null +++ b/.github/workflows/consistency-check.sh @@ -0,0 +1,40 @@ +#!/usr/bin/env bash + +IGNORE_FILES="来杯咖啡.md" + +# Convert IGNORE_FILES to array +IFS=' ' read -r -a ignore_array <<< "$IGNORE_FILES" + +# Find all markdown files in docs directory +missing_files=0 +while IFS= read -r file; do +# Get relative path from docs directory +rel_path="${file#docs/}" + +# Check if file should be ignored +should_ignore=0 +for ignore_file in "${ignore_array[@]}"; do + if [[ "$rel_path" == *"$ignore_file" ]]; then + should_ignore=1 + break + fi +done + +# Skip check if file should be ignored +if [ $should_ignore -eq 1 ]; then + echo "Ignoring file: ${rel_path}" + continue +fi + +# Check if corresponding English translation exists +if [ ! -f "i18n/en/docusaurus-plugin-content-docs/current/${rel_path}" ]; then + echo "Missing English translation for: ${rel_path}" + missing_files=$((missing_files + 1)) +fi +done < <(find docs -name "*.md" -type f) + +# Exit with error if any files are missing +if [ $missing_files -gt 0 ]; then +echo "Error: Found ${missing_files} files without English translations" +exit 1 +fi \ No newline at end of file