Skip to content
#########################################################################
# #
# Author: Copyright (C) 2022, 2023 Mark Grant #
# #
# Released under the GPLv3 only. #
# SPDX-License-Identifier: GPL-3.0-only #
# #
# Purpose: #
# Configuration file for GitHub Actions publication of Doxygen #
# documentation to Github Pages. Only runs on published release event. #
# #
#########################################################################
name: Publish Doxygen Documentation to Github Pages
on:
release:
types: [released]
jobs:
version_check:
outputs:
status: ${{ steps.build.outputs.flag }}
runs-on: ubuntu-22.04
steps:
# Check-out the repository under $GITHUB_WORKSPACE.
- uses: actions/checkout@v4
with:
fetch-depth: 0 # Get all incl tags, needed for git-enhanced AC_INIT
ref: ${{ github.event.release.tag_name }}
- name: Fetch latest release
id: latest_release
uses: CityOfLosAngeles/[email protected]
- name: Print versions
run: |
echo "Latest release is ${{ steps.latest_release.outputs.name }}"
echo "This release is ${{ github.event.release.name }}"
- name: Flag to build the docs
id: build
if: steps.latest_release.outputs.name == github.event.release.name
run: |
echo "This release is the flagged latest release so build."
echo "flag=build" >> $GITHUB_OUTPUT
- name: Notify no build
if: steps.latest_release.outputs.name != github.event.release.name
run: |
echo "This release is not the flagged latest release so no build."
publish-doxygen:
runs-on: ubuntu-22.04
needs: version_check
if: needs.version_check.outputs.status == 'build'
steps:
# Check-out the repository under $GITHUB_WORKSPACE.
- uses: actions/checkout@v4
with:
fetch-depth: 0 # Get all incl tags, needed for git-enhanced AC_INIT
ref: ${{ github.event.release.tag_name }}
- name: Update the package list
run: sudo apt-get update
- name: Add the extra standard packages
run: |
sudo apt-get install -y autoconf-archive libtool-bin
sudo apt-get install -y doxygen graphviz
sudo apt-get install -y libssh-gcrypt-dev libssh-gcrypt-4
- name: Add the extra PPA
run: sudo add-apt-repository ppa:m-grant-prg/utils -y
- name: Update the package list
run: sudo apt-get update
- name: Add the PPA packages
run: |
sudo apt-get install -y libmgec7-dev libmgec7
sudo apt-get install -y libmgesysutils2-dev libmgesysutils2
sudo apt-get install -y txt2manwrap
- name: Autoreconf
run: autoreconf -if .
- name: Configure
run: ./configure --enable-silent-rules=yes
- name: Make doxygen
run: make doxygen
- name: Create .nojekyll
run: touch docs/doxygen/.nojekyll
- name: Deploy to GitHub Pages
uses: JamesIves/[email protected]
with:
branch: gh-pages
folder: docs/doxygen