aboutsummaryrefslogtreecommitdiff
path: root/.github/workflows/api-docs.yml
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/api-docs.yml')
-rw-r--r--.github/workflows/api-docs.yml74
1 files changed, 17 insertions, 57 deletions
diff --git a/.github/workflows/api-docs.yml b/.github/workflows/api-docs.yml
index fa8a7dbca0..6f8fe107d2 100644
--- a/.github/workflows/api-docs.yml
+++ b/.github/workflows/api-docs.yml
@@ -1,74 +1,34 @@
-# Autogenerate the API docs on new commit to important branches
-# Also work as a check for PR's to not forget committing their doc changes
-# called from api-docs-check.yml
-name: Autogenerate API docs
+# Check if any PR needs to run the autogenerate script
+name: Autogenerate API docs and types
on:
- push:
+ pull_request:
+ types: [opened, synchronize, reopened, ready_for_review]
paths:
- 'src/nvim/api/*.[ch]'
+ - 'src/nvim/eval.lua'
- 'runtime/lua/**.lua'
- 'runtime/doc/**'
- branches:
- - 'master'
- - 'release-[0-9]+.[0-9]+'
- workflow_dispatch:
- workflow_call:
- inputs:
- check_only:
- type: boolean
- default: false
- required: false
jobs:
- regen-api-docs:
+ regen-api-docs-and-types:
runs-on: ubuntu-latest
+ if: github.event.pull_request.draft == false
permissions:
contents: write
pull-requests: write
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
steps:
- - uses: rhysd/action-setup-vim@v1
- with:
- neovim: true
- version: nightly
- - uses: actions/checkout@v3
- with:
- # Fetch depth 0 is required if called through workflow_call. In order
- # to create a PR we need to access other branches, which requires a
- # full clone.
- fetch-depth: 0
-
+ - uses: actions/checkout@v4
- name: Install dependencies
run: |
- sudo apt-get update
- sudo env DEBIAN_FRONTEND=noninteractive apt-get install -y doxygen python3 python3-msgpack
-
- - name: Setup git config
- run: |
- git config --global user.name 'marvim'
- git config --global user.email 'marvim@users.noreply.github.com'
-
- - run: printf 'DOC_BRANCH=marvim/api-doc-update/%s\n' ${GITHUB_REF#refs/heads/} >> $GITHUB_ENV
+ ./.github/scripts/install_deps.sh
+ sudo apt-get install -y doxygen python3-msgpack
+ - uses: ./.github/actions/cache
- name: Generate docs
- id: docs
- run: |
- git checkout -b ${DOC_BRANCH}
- python3 scripts/gen_vimdoc.py
- printf 'UPDATED_DOCS=%s\n' $([ -z "$(git diff)" ]; echo $?) >> $GITHUB_OUTPUT
-
- - name: FAIL, PR has not committed doc changes
- if: ${{ steps.docs.outputs.UPDATED_DOCS != 0 && inputs.check_only }}
- run: |
- echo "Job failed, run ./scripts/gen_vimdoc.py and commit your doc changes"
- echo "The doc generation produces the following changes:"
- git diff --color --exit-code
-
- - name: Automatic PR
- if: ${{ steps.docs.outputs.UPDATED_DOCS != 0 && !inputs.check_only }}
run: |
- git add -u
- git commit -m 'docs: regenerate [skip ci]'
- git push --force https://${GITHUB_ACTOR}:${GITHUB_TOKEN}@github.com/${GITHUB_REPOSITORY} ${DOC_BRANCH}
- gh pr create --draft --fill --base ${GITHUB_REF#refs/heads/} --head ${DOC_BRANCH} || true
+ make doc
+ if [ -n "$(git status --porcelain)" ]; then
+ echo "::error::Job failed, run 'make doc' and commit your doc changes."
+ echo "::error::The doc generation produces the following changes:"
+ git diff --color --exit-code
+ fi