name: "Build and deploy documentation" on: workflow_dispatch: push: branches: - main paths: # build the manuals only when docs directory is updated - docs/** - modules/** # Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages permissions: contents: write pages: write id-token: write # Allow one concurrent deployment concurrency: group: "pages" cancel-in-progress: true jobs: check_date: runs-on: ubuntu-latest name: Check latest commit outputs: should_run: ${{ steps.should_run.outputs.should_run }} steps: - uses: actions/checkout@v4.1.7 - name: print latest_commit run: echo ${{ github.sha }} - id: should_run continue-on-error: true name: check latest commit is less than a day if: ${{ github.event_name == 'schedule' }} run: test -z $(git rev-list --after="24 hours" ${{ github.sha }}) && echo "::set-output name=should_run::false" publish: needs: check_date if: ${{ needs.check_date.outputs.should_run != 'false' }} runs-on: ubuntu-latest steps: - uses: actions/checkout@v4.1.7 - uses: DeterminateSystems/nix-installer-action@main - uses: DeterminateSystems/magic-nix-cache-action@main - run: | nix build .#docs -Lv cp -r result/share/doc/nvf public - uses: peaceiris/actions-gh-pages@v4 with: github_token: ${{ secrets.GITHUB_TOKEN }} publish_dir: ./public