name: Validate Markdown on: # Trigger the workflow on pull request pull_request: branches: - main paths: - '**.md' - '**.ipynb' - '!translations/**' - '!translated_images/**' permissions: contents: read pull-requests: write jobs: check-broken-paths: name: Check Broken Relative Paths runs-on: ubuntu-latest steps: - name: Checkout Repo uses: actions/checkout@v7 - name: Check broken Paths id: check-broken-paths uses: john0isaac/action-check-markdown@v1.3.1 with: command: check_broken_paths directory: ./ guide-url: 'https://github.com/microsoft/generative-ai-for-beginners/blob/main/CONTRIBUTING.md' github-token: ${{ secrets.GITHUB_TOKEN }} check-paths-tracking: if: ${{ always() }} needs: check-broken-paths name: Check Paths Have Tracking runs-on: ubuntu-latest steps: - name: Checkout Repo uses: actions/checkout@v7 - name: Run Check paths tracking id: check-paths-tracking uses: john0isaac/action-check-markdown@v1.3.1 with: command: check_paths_tracking directory: ./ guide-url: 'https://github.com/microsoft/generative-ai-for-beginners/blob/main/CONTRIBUTING.md' github-token: ${{ secrets.GITHUB_TOKEN }} check-urls-tracking: if: ${{ always() }} needs: check-paths-tracking name: Check URLs Have Tracking runs-on: ubuntu-latest steps: - name: Checkout Repo uses: actions/checkout@v7 with: fetch-depth: 0 - name: Collect changed markdown files id: changed-markdown-files run: | mapfile -d '' -t files < <(git diff --name-only -z --diff-filter=ACMR "${{ github.event.pull_request.base.sha }}"..."${{ github.event.pull_request.head.sha }}" -- '**.md' '**.ipynb' ':(exclude)translations/**' ':(exclude)translated_images/**') if [ ${#files[@]} -eq 0 ]; then echo "has_files=false" >> "$GITHUB_OUTPUT" exit 0 fi printf '%s\0' "${files[@]}" > changed_markdown_files.txt echo "has_files=true" >> "$GITHUB_OUTPUT" - name: Run Check URLs tracking if: steps.changed-markdown-files.outputs.has_files == 'true' run: | python -m pip install --upgrade pip python -m pip install markdown-checker mapfile -d '' -t files < changed_markdown_files.txt markdown-checker -f check_urls_tracking --guide-url 'https://github.com/microsoft/generative-ai-for-beginners/blob/main/CONTRIBUTING.md' "${files[@]}" check-urls-locale: if: ${{ always() }} needs: check-urls-tracking name: Check URLs Don't Have Locale runs-on: ubuntu-latest steps: - name: Checkout Repo uses: actions/checkout@v7 - name: Run Check URLs Country Locale id: check-urls-locale uses: john0isaac/action-check-markdown@v1.3.1 with: command: check_urls_locale directory: ./ guide-url: 'https://github.com/microsoft/generative-ai-for-beginners/blob/main/CONTRIBUTING.md' github-token: ${{ secrets.GITHUB_TOKEN }} check-broken-urls: if: ${{ always() }} name: Check Broken URLs runs-on: ubuntu-latest steps: - name: Checkout Repo uses: actions/checkout@v7 - name: Run Check Broken URLs id: check-broken-urls uses: john0isaac/action-check-markdown@v1.3.1 with: command: check_broken_urls directory: ./ guide-url: 'https://github.com/microsoft/generative-ai-for-beginners/blob/main/CONTRIBUTING.md' github-token: ${{ secrets.GITHUB_TOKEN }}