1290ea73dSAndreas Gohr# This workflow updates the list of deleted files based on the recent changes and creates a pull request. 23d8dbb19SZweihorn# 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). 5606abce6SDamien Regad# Any additions are made to the top of the list with a single trailing line before the first "# removed on" line. 6606abce6SDamien Regad# Finally, the list of newly removed entries receives a header "# removed on $(date -I)" with the current ISO date. 7290ea73dSAndreas Gohr 8290ea73dSAndreas Gohrname: "Update deleted files" 9290ea73dSAndreas Gohron: 10290ea73dSAndreas Gohr push: 11290ea73dSAndreas Gohr branches: 12290ea73dSAndreas Gohr - master 13290ea73dSAndreas Gohr 14290ea73dSAndreas Gohrjobs: 15290ea73dSAndreas Gohr update: 16290ea73dSAndreas Gohr name: Update deleted files 17290ea73dSAndreas Gohr runs-on: ubuntu-latest 18290ea73dSAndreas Gohr steps: 19290ea73dSAndreas Gohr - name: Checkout 204d2a0912SAndreas Gohr uses: actions/checkout@v4 21290ea73dSAndreas Gohr with: 22290ea73dSAndreas Gohr fetch-depth: 0 23290ea73dSAndreas Gohr 243d8dbb19SZweihorn - name: Cleaning list from re-introduced files 253d8dbb19SZweihorn run: | 263d8dbb19SZweihorn for E in $(git ls-tree -r master --name-only); do 273d8dbb19SZweihorn if (git check-attr export-ignore "$E" | grep -q "export-ignore: set"); then 283d8dbb19SZweihorn continue 293d8dbb19SZweihorn fi 303d8dbb19SZweihorn grep -v "^$E$" data/deleted.files > data/deleted.files.tmp && mv data/deleted.files{.tmp,} 313d8dbb19SZweihorn done 323d8dbb19SZweihorn 333d8dbb19SZweihorn - name: Update list with deleted files 34290ea73dSAndreas Gohr run: | 35290ea73dSAndreas Gohr for F in $(git diff origin/stable..HEAD --summary | awk '/^ delete/ && $4 !~ /^(VERSION)/ {print $4}'); do 36eacee56eSAndreas Gohr if (git check-attr export-ignore "$F" | grep -q "export-ignore: set"); then 37290ea73dSAndreas Gohr continue 38290ea73dSAndreas Gohr fi 393d8dbb19SZweihorn if grep -q "^$F$" data/deleted.files; then 40290ea73dSAndreas Gohr continue 41290ea73dSAndreas Gohr fi 4239a79d26SZweihorn if ( ! test -f "data/deleted.files.tmp"); then 43606abce6SDamien Regad awk -v "input=# newly removed" '/# removed on/ && !found {print input; found=1} 1' data/deleted.files > data/deleted.files.tmp && cp data/deleted.files{.tmp,} 4439a79d26SZweihorn fi 45606abce6SDamien Regad awk -v "input=$F" '/# removed on/ && !found {print input; found=1} 1' data/deleted.files > data/deleted.files.tmp && cp data/deleted.files{.tmp,} 46290ea73dSAndreas Gohr done 473d8dbb19SZweihorn if (test -f "data/deleted.files.tmp"); then 48606abce6SDamien Regad awk '/# removed on/ && !found {printf("\n"); found=1} 1' data/deleted.files > data/deleted.files.tmp && mv data/deleted.files{.tmp,} 49606abce6SDamien Regad sed -i "s/^# newly removed/# removed on $(date -I)/" data/deleted.files 503d8dbb19SZweihorn fi 51290ea73dSAndreas Gohr 52290ea73dSAndreas Gohr - name: Create Pull Request 53*b56152e0SAndreas Gohr uses: peter-evans/create-pull-request@v6 54290ea73dSAndreas Gohr with: 55bf7ba4d5SAndreas Gohr commit-message: " Update deleted files" 56bf7ba4d5SAndreas Gohr title: " Update deleted files" 57290ea73dSAndreas Gohr body: "This updates the list of deleted files based on the recent changes." 58290ea73dSAndreas Gohr delete-branch: true 59077b7fe2SAndreas Gohr branch: "bot/deletedFiles" 60