Corrected issue #124 #218
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build documentation and pack | |
on: | |
workflow_dispatch: | |
push: | |
branches: | |
- main | |
pull_request: | |
branches: | |
- main | |
release: | |
types: [published] | |
jobs: | |
pack: | |
name: Generate pack | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- name: Fetch tags | |
if: ${{ github.event_name == 'release' }} | |
run: | | |
git fetch --tags --force | |
- name: Install packages | |
run: | | |
sudo apt-get update | |
sudo apt-get install --no-install-recommends -y libclang1-9 libclang-cpp1-9 p7zip libxml2-utils | |
sudo pip install LinkChecker | |
# - name: Install Doxygen 1.8.6 | |
# run: | | |
# wget http://archive.ubuntu.com/ubuntu/pool/main/d/doxygen/doxygen_1.8.6-2_amd64.deb | |
# sudo dpkg -i doxygen_1.8.6-2_amd64.deb | |
# which doxygen | |
# doxygen --version | |
- name: Install doxygen 1.9.2 | |
run: | | |
wget -O doxygen.tgz https://sourceforge.net/projects/doxygen/files/rel-1.9.2/doxygen-1.9.2.linux.bin.tar.gz/download | |
sudo tar -C /opt -xf doxygen.tgz | |
sudo ln -s /opt/doxygen-1.9.2/bin/doxygen /usr/local/bin/ | |
which doxygen | |
doxygen --version | |
- name: Install PackChk 1.3.95 | |
run: | | |
wget https://github.com/Open-CMSIS-Pack/devtools/releases/download/tools%2Fpackchk%2F1.3.95/packchk-1.3.95-linux64.zip | |
unzip packchk-1.3.95-linux64.zip | |
sudo mv packchk /usr/local/bin | |
which packchk | |
packchk --version | |
- name: Generate doxygen | |
run: | | |
echo "::add-matcher::.github/doxygen.json" | |
/bin/bash gen_doc.sh | |
echo "::remove-matcher owner=doxygen::" | |
working-directory: ./Doxygen | |
- name: Run linkchecker | |
run: | | |
echo "::add-matcher::.github/linkchecker.json" | |
/bin/bash ../Scripts/git/check_links.sh ./html/index.html ./ | |
echo "::remove-matcher owner=linkchecker::" | |
working-directory: ./Documentation | |
- name: Archive documentation | |
if: ${{ github.event_name == 'pull_request' }} | |
uses: actions/upload-artifact@v3 | |
with: | |
name: documentation | |
path: Documentation/html/ | |
retention-days: 1 | |
if-no-files-found: error | |
- name: Archive documentation | |
if: ${{ github.event_name == 'release' || github.event_name == 'push' || github.event_name == 'workflow_dispatch' }} | |
run: | | |
cd Documentation/html | |
tar -cvjf /tmp/doc.tbz2 . | |
- name: Generate pack | |
id: pack | |
run: | | |
mkdir -p ~/.arm/Packs/.Web | |
wget -O ~/.arm/Packs/.Web/ARM.CMSIS.pdsc https://www.keil.com/pack/ARM.CMSIS.pdsc | |
echo "::add-matcher::.github/packchk.json" | |
/bin/bash ./Scripts/git/gen_pack.sh | |
echo "::remove-matcher owner=packchk::" | |
- name: Archive pack | |
if: ${{ github.event_name != 'release' }} | |
uses: actions/upload-artifact@v3 | |
with: | |
path: output/*.pack | |
retention-days: 1 | |
if-no-files-found: error | |
- name: Attach pack to release assets | |
if: ${{ github.event_name == 'release' }} | |
uses: svenstaro/upload-release-action@v2 | |
with: | |
repo_token: ${{ secrets.GITHUB_TOKEN }} | |
file_glob: true | |
file: output/*.pack | |
tag: ${{ github.ref }} | |
overwrite: true | |
- uses: actions/checkout@v3 | |
if: ${{ github.event_name == 'release' || github.event_name == 'push' || github.event_name == 'workflow_dispatch' }} | |
with: | |
ref: gh-pages | |
- name: Publish documentation | |
if: ${{ github.event_name == 'push' || github.event_name == 'workflow_dispatch' }} | |
run: | | |
rm -rf main | |
mkdir main | |
pushd main | |
tar -xvjf /tmp/doc.tbz2 | |
popd | |
./update_versions.sh | |
git config user.name github-actions | |
git config user.email github-actions@github.com | |
git add . | |
git commit -m "Update main documentation" | |
git push | |
- name: Publish documentation | |
if: ${{ github.event_name == 'release' }} | |
run: | | |
RELEASE=$(echo $GITHUB_REF | sed 's/refs\/tags\///') | |
rm -rf ${RELEASE} | |
mkdir -p ${RELEASE} | |
rm -f latest | |
ln -s ${RELEASE} latest | |
pushd ${RELEASE} | |
tar -xvjf /tmp/doc.tbz2 | |
popd | |
./update_versions.sh | |
git config user.name github-actions | |
git config user.email github-actions@github.com | |
git add . latest | |
git commit -m "Update documentation for release ${RELEASE}" | |
git push |