@@ -4,14 +4,17 @@ mainブランチにpushされた際にGitHub Actionが --write 引数をつけ
44現在のパス、md5ハッシュ、コミットIDなどを ./public/docs/revisions.yml に追記
55セクションIDとページパスの対応関係をデータベースに反映
66
7+ ローカルで --write 引数をつけて実行した場合(npm run db-docs でもok)、
8+ ./public/docs/revisions-dev.yml に書き込む。これは開発環境で使われ、pushされない。
9+
710過去に存在したページが削除されている場合、エラーになります。
811その場合は手動でrevisions.ymlを編集し、古いページ名の記述を新しいページ名に置き換える必要がある
912(できれば自動化したいが、いい方法が思いつかない)
1013
1114Dockerfile内で --check-diff 引数をつけて実行され、
1215revisions.ymlが最新の状態でないならexit(1)をし、dockerのビルドを停止します
1316
14- なにも引数をつけずに実行した場合(npm run checkDocs) 、
17+ なにも引数をつけずに実行した場合、
1518変更があってもなにもせず正常終了します
1619エラーなく全ドキュメントを取得できるかどうかの確認に使います
1720*/
@@ -43,6 +46,11 @@ if (process.argv[2] === "--write") {
4346
4447const docsDir = join ( process . cwd ( ) , "public" , "docs" ) ;
4548
49+ const useDevFiles = doWrite && ! process . env . GITHUB_ACTIONS ;
50+ const revisionsFilename = useDevFiles ? "revisions-dev.yml" : "revisions.yml" ;
51+ const commitsFilename = useDevFiles ? "commits-dev.yml" : "commits.yml" ;
52+ console . log ( `Using ${ revisionsFilename } and ${ commitsFilename } ` ) ;
53+
4654let commit = "" ;
4755if ( doWrite ) {
4856 commit = execFileSync ( "git" , [ "rev-parse" , "--short" , "HEAD" ] , {
@@ -54,9 +62,12 @@ let hasNewRevision = false;
5462
5563const langEntries = await getPagesList ( ) ;
5664
57- const revisionsPrevYml = existsSync ( join ( docsDir , "revisions.yml" ) )
58- ? await readFile ( join ( docsDir , "revisions.yml" ) , "utf-8" )
59- : "{}" ;
65+ let revisionsPrevYml = "{}" ;
66+ if ( existsSync ( join ( docsDir , revisionsFilename ) ) ) {
67+ revisionsPrevYml = await readFile ( join ( docsDir , revisionsFilename ) , "utf-8" ) ;
68+ } else if ( existsSync ( join ( docsDir , "revisions.yml" ) ) ) {
69+ revisionsPrevYml = await readFile ( join ( docsDir , "revisions.yml" ) , "utf-8" ) ;
70+ }
6071const revisions = yaml . load ( revisionsPrevYml ) as Record <
6172 string ,
6273 RevisionYmlEntry
@@ -142,28 +153,32 @@ if (doWrite) {
142153 noArrayIndent : true ,
143154 } ) ;
144155 await writeFile (
145- join ( docsDir , "revisions.yml" ) ,
156+ join ( docsDir , revisionsFilename ) ,
146157 "# This file will be updated by CI. Do not edit manually, unless CI failed.\n" +
147158 revisionsYml ,
148159 "utf-8"
149160 ) ;
150161
162+ let commitsPrevYml = "{}" ;
163+ if ( existsSync ( join ( docsDir , commitsFilename ) ) ) {
164+ commitsPrevYml = await readFile ( join ( docsDir , commitsFilename ) , "utf-8" ) ;
165+ } else if ( existsSync ( join ( docsDir , "commits.yml" ) ) ) {
166+ commitsPrevYml = await readFile ( join ( docsDir , "commits.yml" ) , "utf-8" ) ;
167+ }
168+ const commitsYml = yaml . load ( commitsPrevYml ) as Record < string , string > ;
151169 if ( hasNewRevision ) {
152- const commitsYml = yaml . load (
153- await readFile ( join ( docsDir , "commits.yml" ) , "utf-8" )
154- ) as Record < string , string > ;
155170 commitsYml [ commit ] = execFileSync (
156171 "git" ,
157172 [ "show" , "-s" , "--format=%cI" , commit ] ,
158173 {
159174 encoding : "utf8" ,
160175 }
161176 ) . trim ( ) ;
162- await writeFile (
163- join ( docsDir , "commits.yml" ) ,
164- "# This file will be updated by CI. Do not edit manually.\n" +
165- yaml . dump ( commitsYml , { sortKeys : true } ) ,
166- "utf-8"
167- ) ;
168177 }
178+ await writeFile (
179+ join ( docsDir , commitsFilename ) ,
180+ "# This file will be updated by CI. Do not edit manually.\n" +
181+ yaml . dump ( commitsYml , { sortKeys : true } ) ,
182+ "utf-8"
183+ ) ;
169184}
0 commit comments