@sk8metal/michi-cli 0.8.1 → 0.8.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/dist/scripts/confluence-sync.js +2 -2
  3. package/dist/scripts/confluence-sync.js.map +1 -1
  4. package/dist/scripts/jira-sync.js +2 -2
  5. package/dist/scripts/jira-sync.js.map +1 -1
  6. package/dist/scripts/multi-project-estimate.js +2 -2
  7. package/dist/scripts/multi-project-estimate.js.map +1 -1
  8. package/dist/scripts/pr-automation.js +2 -2
  9. package/dist/scripts/pr-automation.js.map +1 -1
  10. package/dist/scripts/pre-flight-check.js +2 -2
  11. package/dist/scripts/pre-flight-check.js.map +1 -1
  12. package/dist/scripts/resource-dashboard.js +2 -2
  13. package/dist/scripts/resource-dashboard.js.map +1 -1
  14. package/dist/scripts/spec-impl-workflow.js +2 -2
  15. package/dist/scripts/spec-impl-workflow.js.map +1 -1
  16. package/dist/scripts/template/multi-repo-renderer.d.ts +1 -1
  17. package/dist/scripts/template/multi-repo-renderer.d.ts.map +1 -1
  18. package/dist/scripts/template/multi-repo-renderer.js +8 -3
  19. package/dist/scripts/template/multi-repo-renderer.js.map +1 -1
  20. package/dist/scripts/test-workflow-stages.js +2 -2
  21. package/dist/scripts/test-workflow-stages.js.map +1 -1
  22. package/dist/scripts/utils/config-loader.d.ts.map +1 -1
  23. package/dist/scripts/utils/config-loader.js +3 -2
  24. package/dist/scripts/utils/config-loader.js.map +1 -1
  25. package/dist/scripts/utils/env-loader.d.ts +11 -0
  26. package/dist/scripts/utils/env-loader.d.ts.map +1 -0
  27. package/dist/scripts/utils/env-loader.js +23 -0
  28. package/dist/scripts/utils/env-loader.js.map +1 -0
  29. package/dist/scripts/workflow-orchestrator.js +2 -2
  30. package/dist/scripts/workflow-orchestrator.js.map +1 -1
  31. package/dist/src/cli.js +3 -3
  32. package/dist/src/cli.js.map +1 -1
  33. package/docs/michi-development/design/config-unification.md +38 -4094
  34. package/docs/michi-development/design/design-config-current-state.md +330 -0
  35. package/docs/michi-development/design/design-config-implementation.md +628 -0
  36. package/docs/michi-development/design/design-config-migration.md +952 -0
  37. package/docs/michi-development/design/design-config-security.md +771 -0
  38. package/docs/michi-development/design/design-config-solution.md +583 -0
  39. package/docs/michi-development/design/design-config-testing.md +892 -0
  40. package/docs/michi-development/testing/manual-verification-flow.md +6 -1377
  41. package/docs/michi-development/testing/manual-verification-other-tools.md +1277 -0
  42. package/docs/michi-development/testing/manual-verification-troubleshooting.md +122 -0
  43. package/docs/user-guide/getting-started/setup.md +14 -32
  44. package/docs/user-guide/guides/multi-repo-guide.md +367 -44
  45. package/docs/user-guide/reference/config.md +1 -1
  46. package/docs/user-guide/reference/security-test-payloads.md +50 -0
  47. package/docs/user-guide/release/ci-setup-java.md +114 -0
  48. package/docs/user-guide/release/ci-setup-nodejs.md +94 -0
  49. package/docs/user-guide/release/ci-setup-php.md +102 -0
  50. package/docs/user-guide/release/ci-setup-troubleshooting.md +94 -0
  51. package/docs/user-guide/release/ci-setup.md +17 -370
  52. package/docs/user-guide/templates/test-specs/e2e-test-spec-template.md +9 -3
  53. package/docs/user-guide/templates/test-specs/security-test-spec-template.md +4 -43
  54. package/package.json +2 -3
  55. package/scripts/confluence-sync.ts +2 -2
  56. package/scripts/jira-sync.ts +2 -2
  57. package/scripts/multi-project-estimate.ts +2 -2
  58. package/scripts/pr-automation.ts +2 -2
  59. package/scripts/pre-flight-check.ts +2 -2
  60. package/scripts/resource-dashboard.ts +2 -2
  61. package/scripts/spec-impl-workflow.ts +2 -2
  62. package/scripts/template/__tests__/multi-repo-renderer.test.ts +15 -10
  63. package/scripts/template/multi-repo-renderer.ts +9 -3
  64. package/scripts/test-workflow-stages.ts +2 -2
  65. package/scripts/utils/__tests__/env-loader.test.ts +145 -0
  66. package/scripts/utils/config-loader.ts +3 -2
  67. package/scripts/utils/env-loader.ts +25 -0
  68. package/scripts/workflow-orchestrator.ts +2 -2
  69. package/docs/design-issue-55.md +0 -240
  70. package/docs/design-issue-56.md +0 -181
  71. package/docs/user-guide/guides/multi-repo-migration-guide.md +0 -516
@@ -0,0 +1,114 @@
1
+ # Michi CI/CD設定ガイド - Java/Gradle
2
+
3
+ **親ドキュメント**: [ci-setup.md](./ci-setup.md)
4
+
5
+ ---
6
+
7
+ ## Java(Gradle)プロジェクトのCI/CD設定
8
+
9
+ ### GitHub Actions設定例
10
+
11
+ **設定ファイル例**: `.github/workflows/test.yml`
12
+
13
+ ```yaml
14
+ name: Test
15
+
16
+ on:
17
+ push:
18
+ branches:
19
+ - main
20
+ pull_request:
21
+
22
+ jobs:
23
+ test:
24
+ runs-on: ubuntu-latest
25
+
26
+ strategy:
27
+ matrix:
28
+ java-version: [17, 21]
29
+
30
+ steps:
31
+ - uses: actions/checkout@v4
32
+
33
+ - name: Setup JDK
34
+ uses: actions/setup-java@v4
35
+ with:
36
+ distribution: 'temurin'
37
+ java-version: ${{ matrix.java-version }}
38
+ cache: 'gradle'
39
+
40
+ - name: Grant execute permission for gradlew
41
+ run: chmod +x gradlew
42
+
43
+ - name: Run checkstyle
44
+ run: ./gradlew checkstyleMain checkstyleTest
45
+
46
+ - name: Run tests
47
+ run: ./gradlew test
48
+
49
+ - name: Build
50
+ run: ./gradlew build
51
+
52
+ - name: Upload test results
53
+ uses: actions/upload-artifact@v3
54
+ if: failure()
55
+ with:
56
+ name: test-results
57
+ path: build/reports/tests/test/
58
+ ```
59
+
60
+ ### Screwdriver設定例
61
+
62
+ **設定ファイル例**: `screwdriver.yaml`
63
+
64
+ ```yaml
65
+ shared:
66
+ image: openjdk:17
67
+
68
+ jobs:
69
+ main:
70
+ requires: [~pr, ~commit]
71
+ steps:
72
+ - setup: chmod +x gradlew
73
+ - checkstyle: ./gradlew checkstyleMain checkstyleTest
74
+ - test: ./gradlew test
75
+ - build: ./gradlew build
76
+ - report: |
77
+ if [ -d "build/reports" ]; then
78
+ echo "Test reports generated"
79
+ fi
80
+ ```
81
+
82
+ ### build.gradle設定
83
+
84
+ ```gradle
85
+ plugins {
86
+ id 'java'
87
+ id 'checkstyle'
88
+ id 'jacoco'
89
+ }
90
+
91
+ test {
92
+ useJUnitPlatform()
93
+ testLogging {
94
+ events "passed", "skipped", "failed"
95
+ }
96
+ }
97
+
98
+ jacoco {
99
+ toolVersion = "0.8.10"
100
+ }
101
+
102
+ jacocoTestReport {
103
+ reports {
104
+ xml.required = true
105
+ html.required = true
106
+ }
107
+ }
108
+
109
+ checkstyle {
110
+ toolVersion = '10.12.0'
111
+ configFile = file("${rootDir}/config/checkstyle/checkstyle.xml")
112
+ }
113
+ ```
114
+
@@ -0,0 +1,94 @@
1
+ # Michi CI/CD設定ガイド - Node.js/TypeScript
2
+
3
+ **親ドキュメント**: [ci-setup.md](./ci-setup.md)
4
+
5
+ ---
6
+
7
+ ## Node.js/TypeScript プロジェクトのCI/CD設定
8
+
9
+ ### GitHub Actions設定例
10
+
11
+ **設定ファイル例**: `.github/workflows/test.yml`
12
+
13
+ ```yaml
14
+ name: Test
15
+
16
+ on:
17
+ push:
18
+ branches:
19
+ - main
20
+ pull_request:
21
+
22
+ jobs:
23
+ test:
24
+ runs-on: ubuntu-latest
25
+
26
+ strategy:
27
+ matrix:
28
+ node-version: [18.x, 20.x]
29
+
30
+ steps:
31
+ - uses: actions/checkout@v4
32
+
33
+ - name: Setup Node.js
34
+ uses: actions/setup-node@v4
35
+ with:
36
+ node-version: ${{ matrix.node-version }}
37
+ cache: 'npm'
38
+
39
+ - name: Install dependencies
40
+ run: npm ci
41
+
42
+ - name: Run lint
43
+ run: npm run lint
44
+
45
+ - name: Run tests
46
+ run: npm test
47
+
48
+ - name: Build
49
+ run: npm run build
50
+
51
+ - name: Upload coverage
52
+ uses: codecov/codecov-action@v5.5.1
53
+ if: matrix.node-version == '20.x'
54
+ with:
55
+ files: ./coverage/coverage-final.json
56
+ ```
57
+
58
+ ### Screwdriver設定例
59
+
60
+ **設定ファイル例**: `screwdriver.yaml`
61
+
62
+ ```yaml
63
+ shared:
64
+ image: node:20
65
+
66
+ jobs:
67
+ main:
68
+ requires: [~pr, ~commit]
69
+ steps:
70
+ - install: npm ci
71
+ - lint: npm run lint
72
+ - test: npm test
73
+ - build: npm run build
74
+ - coverage: |
75
+ if [ -d "coverage" ]; then
76
+ echo "Coverage report generated"
77
+ fi
78
+ ```
79
+
80
+ ### package.jsonスクリプト設定
81
+
82
+ ```json
83
+ {
84
+ "scripts": {
85
+ "test": "vitest run --coverage",
86
+ "test:watch": "vitest",
87
+ "lint": "eslint src/**/*.ts",
88
+ "lint:fix": "eslint src/**/*.ts --fix",
89
+ "build": "tsc",
90
+ "type-check": "tsc --noEmit"
91
+ }
92
+ }
93
+ ```
94
+
@@ -0,0 +1,102 @@
1
+ # Michi CI/CD設定ガイド - PHP
2
+
3
+ **親ドキュメント**: [ci-setup.md](./ci-setup.md)
4
+
5
+ ---
6
+
7
+ ## PHP プロジェクトのCI/CD設定
8
+
9
+ ### GitHub Actions設定例
10
+
11
+ **設定ファイル例**: `.github/workflows/test.yml`
12
+
13
+ ```yaml
14
+ name: Test
15
+
16
+ on:
17
+ push:
18
+ branches:
19
+ - main
20
+ pull_request:
21
+
22
+ jobs:
23
+ test:
24
+ runs-on: ubuntu-latest
25
+
26
+ strategy:
27
+ matrix:
28
+ php-version: ['8.1', '8.2', '8.3']
29
+
30
+ steps:
31
+ - uses: actions/checkout@v4
32
+
33
+ - name: Setup PHP
34
+ uses: shivammathur/setup-php@v2
35
+ with:
36
+ php-version: ${{ matrix.php-version }}
37
+ coverage: xdebug
38
+ tools: composer:v2
39
+
40
+ - name: Cache Composer packages
41
+ uses: actions/cache@v3
42
+ with:
43
+ path: vendor
44
+ key: ${{ runner.os }}-php-${{ hashFiles('**/composer.lock') }}
45
+ restore-keys: |
46
+ ${{ runner.os }}-php-
47
+
48
+ - name: Install dependencies
49
+ run: composer install --prefer-dist --no-progress
50
+
51
+ - name: Run PHPStan
52
+ run: composer phpstan
53
+
54
+ - name: Run tests
55
+ run: composer test
56
+
57
+ - name: Upload coverage
58
+ uses: codecov/codecov-action@v5.5.1
59
+ if: matrix.php-version == '8.3'
60
+ with:
61
+ files: ./coverage.xml
62
+ ```
63
+
64
+ ### Screwdriver設定例
65
+
66
+ **設定ファイル例**: `screwdriver.yaml`
67
+
68
+ ```yaml
69
+ shared:
70
+ image: php:8.3
71
+
72
+ jobs:
73
+ main:
74
+ requires: [~pr, ~commit]
75
+ steps:
76
+ - install-composer: |
77
+ php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
78
+ php composer-setup.php
79
+ php -r "unlink('composer-setup.php');"
80
+ - install: php composer.phar install --prefer-dist --no-progress
81
+ - phpstan: php composer.phar phpstan
82
+ - test: php composer.phar test
83
+ ```
84
+
85
+ ### composer.json設定
86
+
87
+ ```json
88
+ {
89
+ "scripts": {
90
+ "test": "phpunit --coverage-clover coverage.xml",
91
+ "test:unit": "phpunit --testsuite Unit",
92
+ "phpstan": "phpstan analyse src tests --level=8",
93
+ "cs-fix": "php-cs-fixer fix"
94
+ },
95
+ "require-dev": {
96
+ "phpunit/phpunit": "^10.0",
97
+ "phpstan/phpstan": "^1.10",
98
+ "friendsofphp/php-cs-fixer": "^3.0"
99
+ }
100
+ }
101
+ ```
102
+
@@ -0,0 +1,94 @@
1
+ # Michi CI/CD - トラブルシューティング
2
+
3
+ **親ドキュメント**: [ci-setup.md](./ci-setup.md)
4
+
5
+ ---
6
+
7
+ ## トラブルシューティング
8
+
9
+ ### Node.js関連
10
+
11
+ #### 問題: `npm ci` が失敗する
12
+
13
+ **原因**: package-lock.jsonが古い
14
+
15
+ **解決方法**:
16
+ ```bash
17
+ # ローカルで再生成
18
+ rm -rf node_modules package-lock.json
19
+ npm install
20
+ git add package-lock.json
21
+ git commit -m "fix: update package-lock.json"
22
+ ```
23
+
24
+ #### 問題: テストがローカルでは成功するがCI/CDで失敗
25
+
26
+ **原因**: 環境依存の問題(タイムゾーン、ファイルパス等)
27
+
28
+ **解決方法**:
29
+ ```javascript
30
+ // タイムゾーンを固定
31
+ process.env.TZ = 'UTC';
32
+
33
+ // ファイルパスは絶対パスではなく相対パス
34
+ const configPath = path.join(__dirname, '../config.json');
35
+ ```
36
+
37
+ ### Java(Gradle)関連
38
+
39
+ #### 問題: Gradleビルドが遅い
40
+
41
+ **原因**: キャッシュが効いていない
42
+
43
+ **解決方法**:
44
+ ```yaml
45
+ # GitHub Actionsでキャッシュを有効化
46
+ - uses: actions/setup-java@v4
47
+ with:
48
+ cache: 'gradle'
49
+
50
+ # または手動でキャッシュ
51
+ - uses: actions/cache@v3
52
+ with:
53
+ path: |
54
+ ~/.gradle/caches
55
+ ~/.gradle/wrapper
56
+ key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
57
+ ```
58
+
59
+ #### 問題: `./gradlew: Permission denied`
60
+
61
+ **原因**: 実行権限がない
62
+
63
+ **解決方法**:
64
+ ```yaml
65
+ - name: Grant execute permission
66
+ run: chmod +x gradlew
67
+ ```
68
+
69
+ ### PHP関連
70
+
71
+ #### 問題: Composer installが失敗
72
+
73
+ **原因**: メモリ不足
74
+
75
+ **解決方法**:
76
+ ```yaml
77
+ - name: Install dependencies
78
+ run: composer install --prefer-dist --no-progress
79
+ env:
80
+ COMPOSER_MEMORY_LIMIT: -1
81
+ ```
82
+
83
+ #### 問題: PHPStanがCI/CDで異なる結果を返す
84
+
85
+ **原因**: PHPバージョンの違い
86
+
87
+ **解決方法**:
88
+ ```yaml
89
+ # 特定のPHPバージョンを指定
90
+ - uses: shivammathur/setup-php@v2
91
+ with:
92
+ php-version: '8.3' # プロジェクトと同じバージョン
93
+ ```
94
+