Github Actions のCIでphp-class-diagramでクラス図を生成することができるようになりました
Github Actions の CI で、php-class-diagramを使ってクラス図を生成することができるようになりました。
具体的には、Github Actions のアクションのリポジトリを作成しました。 smeghead/php-class-diagram-gh-action
このアクションを使うことで、workflowのymlファイルに数行記述するだけで、CI中にリポジトリ内のPHPソースコードからクラス図を生成することができるようになります。
この対応は、郡山さん(@koriym)にIssuesで提案いただいたのをきっかけに対応を開始しました。ありがとうございます。
以下は、smeghead/php-class-diagram-gh-action のREADMEの日本語訳です。
php-class-diagram-gh-action
これは、Github Actions php-class-diagram の CI アクションです。
A CLI tool that parses the PHP source directory and generates PlantUML class diagram scripts as output. [php-class-diagram](https://github.com/smeghead/php-class-diagram)
これは、php-class-diagram を使用して PHP ソース コードからクラス図を生成する Github Actions アクションです。 このアクションにより、指定されたファイル名のクラス図がランナーのデフォルトの作業ディレクトリ (GITHUB_WORKSPACE) に配置されます。
Accessing files created by a container action | Creating a Docker container action – GitHub Docs
このアクションで作業ディレクトリに図を生成した後、別のアクションを使用してそれをアーティファクトにアップロードするか、Github Pages にデプロイするか、リポジトリにコミットします。
Inputs
`target-path`
**必須** クラス図を生成するリポジトリ内のターゲットソースコードディレクトリを指定します。デフォルト src
`output-path`
出力する画像のファイルパスを指定します。デフォルト php-class-diagram.png
`options`
必要に応じて、php-class-diagram
に追加するオプションを指定します。デフォルト ""
使用例
チェックアウトしたワークスペース内のクラス図を作成したいディレクトリからクラス図を作成し、アーティファクトとしてアップロードする例です。
- .github/workflows/php-class-diagram.yml
name: PHP Class Diagram
on: [push]
jobs:
create-class-diagram:
runs-on: ubuntu-latest
name: Create class diagram
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Create class diagram
id: create-class-diagram
uses: smeghead/php-class-diagram-gh-action@v0
with:
target-path: src
output-path: diagram.png
- name: Upload Artifact
uses: actions/upload-artifact@v4
with:
name: Class_Diagram
path: diagram.png
retention-days: 5
php-class-diagram のCIでもpush時にクラス図を作成するよう設定しました。
CIの結果は、以下のような形で確認できます。
Create class diagram というのが追加したjobです。
同じページの下の方で、保存されたArtifactsを確認できます。
このファイルをダウンロードして展開すると、生成したクラス図を確認できます。
実質、php-class-diagramのリポジトリでは、workflowファイルに20行追加しただけでクラス図を生成できましたので、PHPのソースコードが入っているGithubリポジトリを持ってる人は試してみて下さい。
1件のピンバック
PlantUML – メモ