Skip to content

build(deps): bump peter-evans/create-pull-request from 7 to 8 (#12) #12

build(deps): bump peter-evans/create-pull-request from 7 to 8 (#12)

build(deps): bump peter-evans/create-pull-request from 7 to 8 (#12) #12

Workflow file for this run

name: Generate docs
on:
push:
branches:
- main
paths:
- ".github/workflows/generate-docs.yml"
- "scripts/**"
# Run every day at 00:00 UTC to refresh docs from BlueLua source repos.
schedule:
- cron: "0 0 * * *"
workflow_dispatch:
permissions:
contents: write
pull-requests: write
jobs:
discover:
runs-on: ubuntu-latest
outputs:
repos: ${{ steps.repos.outputs.repos }}
steps:
- name: Discover source repos
id: repos
env:
GH_TOKEN: ${{ github.token }}
ORG: ${{ github.repository_owner }}
run: |
set -euo pipefail
tmp="$(mktemp -d)"
repos_file="$tmp/repos.jsonl"
gh api --paginate "/orgs/${ORG}/repos" \
--jq '.[] | select(.archived == false and .disabled == false) | [.name, .clone_url] | @tsv' \
> "$repos_file"
found="[]"
while IFS=$'\t' read -r name clone_url; do
[ "$name" != "${ORG}.github.io" ] || continue
if gh api "/repos/${ORG}/${name}/contents/types" >/dev/null 2>&1; then
found="$(jq --arg name "$name" --arg clone_url "$clone_url" \
'. + [{ "name": $name, "clone_url": $clone_url }]' <<< "$found")"
fi
done < "$repos_file"
echo "repos=$(jq -c . <<< "$found")" >> "$GITHUB_OUTPUT"
generate:
needs: discover
if: ${{ needs.discover.outputs.repos != '[]' }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
repo: ${{ fromJson(needs.discover.outputs.repos) }}
steps:
- name: Checkout docs repo
uses: actions/checkout@v6
- name: Checkout source repo
run: git clone --depth 1 "${CLONE_URL}" "${RUNNER_TEMP}/source"
env:
CLONE_URL: ${{ matrix.repo.clone_url }}
- name: Setup LuaJIT
uses: leafo/gh-actions-lua@v13
with:
luaVersion: "luajit"
- name: Generate docs
run: |
set -euo pipefail
output_dir="docs/src/${REPO_NAME}/api"
mkdir -p "$output_dir"
find "$output_dir" -maxdepth 1 -type f -name "*.md" ! -name "ecodes.md" -delete
luajit scripts/generate-api-docs.lua "${RUNNER_TEMP}/source/types" "$output_dir"
env:
REPO_NAME: ${{ matrix.repo.name }}
- name: Format docs
run: |
set -euo pipefail
if compgen -G "docs/src/${REPO_NAME}/api/*.md" > /dev/null; then
npx --yes prettier@3.8.3 --write "docs/src/${REPO_NAME}/api/*.md"
fi
env:
REPO_NAME: ${{ matrix.repo.name }}
- name: Open docs PR
uses: peter-evans/create-pull-request@v8
with:
commit-message: "docs(${{ matrix.repo.name }}): generate API docs"
title: "docs(${{ matrix.repo.name }}): generate API docs"
body: "Generate and format API docs from `${{ matrix.repo.name }}` LuaLS type annotations."
branch: "automation/generate-docs-${{ matrix.repo.name }}"
add-paths: |
docs/src/${{ matrix.repo.name }}/api