name: Docs CI ### Run on *EVERY* .v or .md related commit. ### The documentation *SHOULD* stay valid, and the developers should receive ### early warning, if they break it. on: push: paths-ignore: - '**.yml' - '!**/docs_ci.yml' - 'cmd/tools/vrepl.v' pull_request: paths-ignore: - '**.yml' - '!**/docs_ci.yml' - 'cmd/tools/vrepl.v' concurrency: group: docs-${{ github.workflow }}-${{ github.ref == 'refs/heads/master' && github.sha || github.ref }} cancel-in-progress: true jobs: check-markdown: runs-on: ubuntu-24.04 timeout-minutes: 20 steps: - uses: actions/checkout@v6 - uses: ./.github/actions/cache-apt-packages-action - name: Build V run: make - name: Install dependencies (some examples show how to use sqlite and the x11 clipboard) run: ./v retry -- sudo apt install --quiet -y libx11-dev libssl-dev sqlite3 libsqlite3-dev - name: Check markdown line length & code examples run: ./v check-md -hide-warnings . ## NB: -hide-warnings is used here, so that the output is less noisy, ## thus real errors are easier to spot. report-missing-fn-doc: runs-on: ubuntu-24.04 timeout-minutes: 5 env: MOPTIONS: --diff --deprecated --relative-paths --exclude /vlib/v/ --exclude /vlib/v2/ --exclude /builtin/linux_bare/ --exclude /testdata/ --exclude /tests/ --exclude /vlib/sokol/ --exclude /vlib/x/ steps: - uses: actions/checkout@v6 - name: Build V run: make - name: Checkout previous v uses: actions/checkout@v6 with: repository: vlang/v ref: master path: pv - name: Check against parent commit run: | # shellcheck disable=SC2086 ./v missdoc $MOPTIONS pv/vlib vlib report-missing-dots-in-doc-comments: runs-on: ubuntu-24.04 timeout-minutes: 20 steps: - uses: actions/checkout@v6 - name: Build V run: make - name: Check doc comment dots for some key modules run: ./v run cmd/tools/find_doc_comments_with_no_dots.v \ vlib/builtin/ vlib/arrays/ vlib/flag/ \ vlib/bitfield/ vlib/term/ vlib/strings/ \ vlib/rand/ vlib/compress/ vlib/clipboard/ \ vlib/time/ \ vlib/os report-wrong-examples-in-doc-comments: runs-on: ubuntu-24.04 timeout-minutes: 20 steps: - uses: actions/checkout@v6 - name: Build V run: make - name: Check examples in the doc comments for all vlib modules run: VJOBS=1 ./v doc -check-examples -f none vlib/