xref: /dokuwiki/.github/workflows/deletedFiles.yml (revision b56152e0092ba1fc4bd5f37053ea3b57d485055b)
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