]> begriffs open source - cmsis/blob - .github/workflows/gh-pages.yaml
GitHub: Add LinkChecker for DoxyGen.
[cmsis] / .github / workflows / gh-pages.yaml
1 name: Publish Documentation
2 on:
3   workflow_dispatch:
4   pull_request:
5     branches: [ develop ]
6     paths:
7       - '.github/workflows/gh-pages.yaml'
8       - 'CMSIS/Utilities/check_links.sh'
9       - 'CMSIS/DoxyGen/**'
10   push:
11     branches: [ develop ]
12     paths:
13       - '.github/workflows/gh-pages.yaml'
14       - 'CMSIS/Utilities/check_links.sh'
15       - 'CMSIS/DoxyGen/**'
16 jobs:
17   docs:
18     name: Build develop documentation
19     runs-on: ubuntu-20.04
20     steps:
21       - uses: actions/checkout@v2
22       - uses: actions/setup-node@v1
23       - name: Install Doxygen 1.8.6
24         run: |
25           wget http://archive.ubuntu.com/ubuntu/pool/main/d/doxygen/doxygen_1.8.6-2_amd64.deb
26           sudo dpkg -i doxygen_1.8.6-2_amd64.deb
27       - name: Install mscgen 0.20
28         run: |
29           sudo apt-get update
30           sudo apt-get install --no-install-recommends -y mscgen=0.20-12
31       - name: Install linkchecker
32         run: |
33           sudo pip install LinkChecker
34       - name: Generate doxygen
35         run: CMSIS/DoxyGen/gen_doc.sh
36       - name: Run linkchecker
37         run: |
38           echo "::add-matcher::.github/linkchecker.json"
39           CMSIS/Utilities/check_links.sh CMSIS/Documentation/index.html
40       - name: Upload documentation
41         if: ${{ github.event_name == 'pull_request' }}
42         uses: actions/upload-artifact@v2
43         with:
44           path: CMSIS/Documentation/**
45       - name: Archive documentation
46         if: ${{ github.event_name == 'push' || github.event_name == 'workflow_dispatch' }}
47         run: |
48           cd CMSIS/Documentation
49           tar -cvjf /tmp/doc.tbz2 .
50       - uses: actions/checkout@v2
51         if: ${{ github.event_name == 'push' || github.event_name == 'workflow_dispatch' }}
52         with:
53           ref: gh-pages
54       - name: Publish documentation
55         if: ${{ github.event_name == 'push' || github.event_name == 'workflow_dispatch' }}
56         run: |
57           rm -r develop
58           mkdir develop
59           cd develop
60           tar -xvjf /tmp/doc.tbz2
61           git config user.name github-actions
62           git config user.email github-actions@github.com
63           git add .
64           git commit -m "Update develop documentation"
65           git push