1290ea73dSAndreas Gohr# This workflow updates the list of deleted files based on the recent changes and creates a pull request. 2*3d8dbb19SZweihorn# It compares the current master with the data/deleted.files file and cleans the file from any re-introduced files. 3290ea73dSAndreas Gohr# It compares the current master with the stable branch and adds all deleted files to the data/deleted.files file 4290ea73dSAndreas Gohr# unless they are already listed there or are excluded from the release archives (export-ignore in .gitattributes). 5*3d8dbb19SZweihorn# Any additions are made to the top of the list with a single trailing line before the first "# removed in" line. 6290ea73dSAndreas Gohr 7290ea73dSAndreas Gohrname: "Update deleted files" 8290ea73dSAndreas Gohron: 9290ea73dSAndreas Gohr push: 10290ea73dSAndreas Gohr branches: 11290ea73dSAndreas Gohr - master 12290ea73dSAndreas Gohr 13290ea73dSAndreas Gohrjobs: 14290ea73dSAndreas Gohr update: 15290ea73dSAndreas Gohr name: Update deleted files 16290ea73dSAndreas Gohr runs-on: ubuntu-latest 17290ea73dSAndreas Gohr steps: 18290ea73dSAndreas Gohr - name: Checkout 194d2a0912SAndreas Gohr uses: actions/checkout@v4 20290ea73dSAndreas Gohr with: 21290ea73dSAndreas Gohr fetch-depth: 0 22290ea73dSAndreas Gohr 23*3d8dbb19SZweihorn - name: Cleaning list from re-introduced files 24*3d8dbb19SZweihorn run: | 25*3d8dbb19SZweihorn for E in $(git ls-tree -r master --name-only); do 26*3d8dbb19SZweihorn if (git check-attr export-ignore "$E" | grep -q "export-ignore: set"); then 27*3d8dbb19SZweihorn continue 28*3d8dbb19SZweihorn fi 29*3d8dbb19SZweihorn grep -v "^$E$" data/deleted.files > data/deleted.files.tmp && mv data/deleted.files{.tmp,} 30*3d8dbb19SZweihorn done 31*3d8dbb19SZweihorn 32*3d8dbb19SZweihorn - name: Update list with deleted files 33290ea73dSAndreas Gohr run: | 34290ea73dSAndreas Gohr for F in $(git diff origin/stable..HEAD --summary | awk '/^ delete/ && $4 !~ /^(VERSION)/ {print $4}'); do 35eacee56eSAndreas Gohr if (git check-attr export-ignore "$F" | grep -q "export-ignore: set"); then 36290ea73dSAndreas Gohr continue 37290ea73dSAndreas Gohr fi 38*3d8dbb19SZweihorn if grep -q "^$F$" data/deleted.files; then 39290ea73dSAndreas Gohr continue 40290ea73dSAndreas Gohr fi 41*3d8dbb19SZweihorn awk -v "input=$F" '/# removed in/ && !found {print input; found=1} 1' data/deleted.files > data/deleted.files.tmp && cp data/deleted.files{.tmp,} 42290ea73dSAndreas Gohr done 43*3d8dbb19SZweihorn if (test -f "data/deleted.files.tmp"); then 44*3d8dbb19SZweihorn awk '/# removed in/ && !found {printf("\n"); found=1} 1' data/deleted.files > data/deleted.files.tmp && mv data/deleted.files{.tmp,} 45*3d8dbb19SZweihorn fi 46290ea73dSAndreas Gohr 47290ea73dSAndreas Gohr - name: Create Pull Request 48290ea73dSAndreas Gohr uses: peter-evans/create-pull-request@v4 49290ea73dSAndreas Gohr with: 50bf7ba4d5SAndreas Gohr commit-message: " Update deleted files" 51bf7ba4d5SAndreas Gohr title: " Update deleted files" 52290ea73dSAndreas Gohr body: "This updates the list of deleted files based on the recent changes." 53290ea73dSAndreas Gohr delete-branch: true 54077b7fe2SAndreas Gohr branch: "bot/deletedFiles" 55