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: ref: ${{ github.event.pull_request.head.sha }} fetch-depth: 0 - name: Fetch tags 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 https://doxygen.nl/files/doxygen-1.9.2.linux.bin.tar.gz # sudo tar -C /opt -xf doxygen-1.9.2.linux.bin.tar.gz # 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@v2 # 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 -k echo "::remove-matcher owner=packchk::" - name: Setup upterm session uses: lhotari/action-upterm@v1 # with: ## limits ssh access and adds the ssh public key for the user which triggered the workflow # limit-access-to-actor: true # - name: Archive pack # if: ${{ github.event_name != 'release' }} # uses: actions/upload-artifact@v2 # 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@v2 # 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 # cd main # tar -xvjf /tmp/doc.tbz2 # 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 # cd ${RELEASE} # tar -xvjf /tmp/doc.tbz2 # 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