docs: change process for generating docblocks through actions (#6237)

This PR changes the original process of generating docblocks through actions. The process now is:

1. When a PR is merged for the branch `changeset-release/develop`, the docblock generator tool us used to generate docblocks for the changed files. The changed files are determined by retrieving all comments since the last release and the files in each of those commits.
2. If there are changes after using the docblock generator tool, a PR is opened in the branch `chore/generate-tsdocs`.
3. Once the `chore/generate-tsdocs` is merged, it triggers an action that generates the references for the docs. This changes the previous behaviour of generating references on a new release.

Both actions (that runs the docblock generator tool and that generates references for the docs) can also be triggered manually.

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
This commit is contained in:
Shahed Nasser
2024-01-29 10:05:14 +02:00
committed by GitHub
parent 8f9a12c895
commit 96629f1916
10 changed files with 698 additions and 119 deletions

View File

@@ -0,0 +1,82 @@
name: Generate References for Docblocks [Automated]
on:
pull_request:
branches:
- develop
types:
- closed
workflow_dispatch:
inputs:
referenceName:
description: 'Reference to Generate. Use either `all` or a name of a config file in `docs-util/packages/typedoc-config` such as `product`.'
required: false
default: 'all'
jobs:
references:
runs-on: ubuntu-latest
if: github.event_name == 'workflow_dispatch' || (startsWith(github.head_ref, 'chore/generate-tsdocs') && github.event.pull_request.merged == true)
steps:
- name: Cancel Previous Runs
uses: styfle/cancel-workflow-action@0.11.0
with:
access_token: ${{ github.token }}
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Setup Node.js environment
uses: actions/setup-node@v3
with:
node-version: "16.10.0"
cache: "yarn"
- name: Install dependencies
uses: ./.github/actions/cache-deps
with:
extension: reference
- name: Build Packages
run: yarn build
- name: Install Docs dependencies
working-directory: www
run: yarn install
- name: Install Workspace dependencies
run: yarn install
working-directory: docs-util
- name: Build Workspace dependencies
run: yarn build
working-directory: docs-util
- name: Generate References
if: ${{ github.event_name == 'workflow_dispatch' }}
run: "yarn generate:reference ${{ github.event.inputs.referenceName }}"
working-directory: docs-util/packages/scripts
- name: Generate References
if: ${{ github.event_name != 'workflow_dispatch' }}
run: "yarn generate:reference all"
working-directory: docs-util/packages/scripts
- name: Get PR Message
id: pr-message
run: yarn generate:message
working-directory: docs-util/packages/scripts
- name: Create Pull Request
uses: peter-evans/create-pull-request@v4
with:
commit-message: "chore(docs): Generated References (automated)"
base: "develop"
title: "chore(docs): Generated References"
labels: "type: chore"
add-paths: www/apps/docs/content/references/**
branch: "docs/generate-reference"
branch-suffix: "timestamp"
body: ${{ steps.pr-message.outputs.body }}

View File

@@ -0,0 +1,53 @@
name: Generate Docblocks [Automated]
on:
pull_request:
branches:
- develop
types:
- closed
workflow_dispatch:
jobs:
generate:
if: github.event_name == 'workflow_dispatch' || (startsWith(github.head_ref, 'changeset-release/develop') && github.event.pull_request.merged == true)
name: Generated TSDoc PRs
runs-on: ubuntu-latest
steps:
- name: Checkout Repo
uses: actions/checkout@v3
- name: Setup Node.js 18
uses: actions/setup-node@v3
with:
node-version: 18
- name: Install Dependencies
run: yarn
- name: Install docs-util Dependencies
run: yarn
working-directory: docs-util
- name: Build packages
run: yarn build
working-directory: docs-util
- name: Run docblock generator
run: "yarn start run:release"
working-directory: docs-util/packages/docblock-generator
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GIT_OWNER: ${{ github.repository_owner }}
GIT_REPO: medusa
- name: Create Pull Request
uses: peter-evans/create-pull-request@v5
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
title: "Generated TSDocs"
body: "This PR holds all generated TSDocs for the upcoming release."
branch: "chore/generate-tsdocs"
team-reviewers: "@medusajs/docs"
add-paths: packages/**

View File

@@ -3,78 +3,13 @@ on:
workflow_dispatch:
inputs:
referenceName:
description: 'Reference to Generate. Use either `all` to generate all references, `api` to generate the API reference, or a name of a config file in `docs-util/packages/typedoc-config` such as `product`'
description: 'Reference to Generate. Use either `all` to generate all references, `api` to generate the API reference, or `ui` to generate UI reference.'
required: false
default: 'all'
release:
types: [published]
jobs:
references:
runs-on: ubuntu-latest
steps:
- name: Cancel Previous Runs
uses: styfle/cancel-workflow-action@0.11.0
with:
access_token: ${{ github.token }}
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Setup Node.js environment
uses: actions/setup-node@v3
with:
node-version: "16.10.0"
cache: "yarn"
- name: Install dependencies
uses: ./.github/actions/cache-deps
with:
extension: reference
- name: Build Packages
run: yarn build
- name: Install Docs dependencies
working-directory: www
run: yarn install
- name: Install Workspace dependencies
run: yarn install
working-directory: docs-util
- name: Build Workspace dependencies
run: yarn build
working-directory: docs-util
- name: Generate References
if: ${{ github.event_name == 'workflow_dispatch' }}
run: "yarn generate:reference ${{ github.event.inputs.referenceName }}"
working-directory: docs-util/packages/scripts
- name: Generate References
if: ${{ github.event_name != 'workflow_dispatch' }}
run: "yarn generate:reference all"
working-directory: docs-util/packages/scripts
- name: Get PR Message
id: pr-message
run: yarn generate:message
working-directory: docs-util/packages/scripts
- name: Create Pull Request
uses: peter-evans/create-pull-request@v4
with:
commit-message: "chore(docs): Generated References (automated)"
base: "develop"
title: "chore(docs): Generated References"
labels: "type: chore"
add-paths: www/apps/docs/content/references/**
branch: "docs/generate-reference"
branch-suffix: "timestamp"
body: ${{ steps.pr-message.outputs.body }}
api:
runs-on: ubuntu-latest
if: ${{ github.event_name == 'release' || github.event.inputs.referenceName == 'all' || github.event.inputs.referenceName == 'api' }}

View File

@@ -37,44 +37,4 @@ jobs:
- name: Create Release Pull Request
uses: changesets/action@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
tsdoc-pr:
name: Generated TSDoc PRs
runs-on: ubuntu-latest
steps:
- name: Checkout Repo
uses: actions/checkout@v3
- name: Setup Node.js 18
uses: actions/setup-node@v3
with:
node-version: 18
- name: Install Dependencies
run: yarn
- name: Build packages
run: yarn build
- name: Install docs-util Dependencies
run: yarn
working-directory: docs-util
- name: Build packages
run: yarn build
working-directory: docs-util
- name: Run docblock generator
run: "yarn start run:commit ${{ github.sha }}"
working-directory: docs-util/packages/docblock-generator
- name: Create Pull Request
uses: peter-evans/create-pull-request@v5
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
title: "Generated TSDocs"
body: "This PR holds all generated TSDocs for the upcoming release."
branch: "chore/generate-tsdocs"
team-reviewers: "@medusajs/docs"
add-paths: packages/**
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}