name: Build and Deploy Docs on: # Run on pushes targeting the default branch push: branches: [ master ] # Allows you to run this workflow manually from the Actions tab workflow_dispatch: # Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages permissions: contents: read pages: write id-token: write # Allow only one concurrent deployment, skipping runs queued between any # in-progress and latest queued runs. However, do not cancel in-progress runs # as we want to allow these production deployments to complete. concurrency: group: "pages" cancel-in-progress: false jobs: build: if: github.repository_owner == 'gearman' name: Build Docs runs-on: ubuntu-20.04 steps: - name: Install Dependencies run: | sudo apt update && sudo apt install -y \ apt-transport-https \ apt-file \ software-properties-common \ build-essential \ autotools-dev \ autoconf \ automake \ make \ pkgconf \ libboost-all-dev \ libevent-dev \ gperf \ uuid-dev \ sphinx-doc \ sphinx-common \ python3-sphinx - name: Clone Repository uses: actions/checkout@v4 - name: Bootstrap run: | if [ -f "/etc/lsb-release" ]; then cat /etc/lsb-release fi ./bootstrap.sh -a shell: bash - name: Configure run: | ./configure shell: bash - name: Build HTML Documentation run: make -C docs dirhtml - name: Setup Pages uses: actions/configure-pages@v5 - name: Upload Artifacts uses: actions/upload-pages-artifact@v3 with: path: 'docs/build/dirhtml' deploy: if: github.repository_owner == 'gearman' name: Deploy Docs # Add a dependency on the build job needs: build runs-on: ubuntu-latest environment: name: github-pages url: ${{ steps.deployment.outputs.page_url }} steps: - name: Deploy to GitHub Pages id: deployment uses: actions/deploy-pages@v4