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