👉 Jetzt bei Amazon nach deinem nächsten Gaming PCs stöbern (Affiliate-Link – ich erhalte eine kleine Provision, für dich bleibt der Preis gleich)

 

Manchmal möchte man in GitHub Actions nur etwas tun, wenn bestimmte Dateien verändert wurden. Also muss man erst herausfinden, welche Dateien verändert wurden. Dafür gibt es die Action tj-actions/verify-changed-files.

Um die veränderten Dateien zu finden, wird erst das Repo ausgecheckt:

- name: Checkout of repo
  uses: actions/checkout@v4
  with:
    fetch-depth: 0
Code-Sprache: YAML (yaml)

Anschließend ruft man die Action auf:

- name: Get changed files
  id: changed-files
  uses: tj-actions/changed-files@v44
Code-Sprache: YAML (yaml)

Die Actions erstellt eine Output-Variable all_changed_files in der alle veränderten Dateien gelistet sind. Diese könnte man nun z.B. ausgeben:

- name: List the changed files
  env:
    ALL_CHANGED_FILES: ${{ steps.changed-files.outputs.all_changed_files }}
  run: |
    for file in ${ALL_CHANGED_FILES}; do
      echo "$file was changed."
    done
Code-Sprache: YAML (yaml)

Die vollständige Workflow Datei sieht in diesem Beispiel dann so aus:

name: Get list of changed files

on:
  push:

jobs:
  changed_files:
    runs-on: ubuntu-latest
    name: List changes files

    steps:
      # Checkout with full history
      - name: Checkout of repo
        uses: actions/checkout@v4
        with:
          fetch-depth: 0
      
      - name: Get changed files
        id: changed-files
        uses: tj-actions/changed-files@v44

      - name: List the changed files
        env:
          ALL_CHANGED_FILES: ${{ steps.changed-files.outputs.all_changed_files }}
        run: |
          for file in ${ALL_CHANGED_FILES}; do
            echo "$file was changed."
          done

Code-Sprache: YAML (yaml)