-
Notifications
You must be signed in to change notification settings - Fork 0
154 lines (130 loc) · 5.35 KB
/
samples-azure-ad-b2c-ci.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
# cspell:ignore mikepenz dorny
name: azure-ad-b2c-sample CI
on:
pull_request:
branches: [main]
paths:
- 'samples/azure-ad-b2c-sample/**'
- '.github/workflows/samples-azure-ad-b2c-ci.yml'
workflow_dispatch:
env:
BACKEND_WORKING_DIRECTORY: samples/azure-ad-b2c-sample/auth-backend
FRONTEND_WORKING_DIRECTORY: samples/azure-ad-b2c-sample/auth-frontend
jobs:
build-frontend:
name: 'フロントエンドアプリケーションのビルド'
runs-on: ubuntu-latest
permissions:
contents: read
env:
NO_COLOR: "1" # 文字化け防止のためカラーコードを出力しない
strategy:
matrix:
node-version: [20.x]
defaults:
run:
working-directory: ${{ env.FRONTEND_WORKING_DIRECTORY }}
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 1
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
- uses: actions/cache@v4
id: node_modules_cache_id
env:
cache-name: cache-node-modules-azure-ad-b2c-auth-frontend
with:
path: '**/node_modules'
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
- name: node パッケージのキャッシュ確認
run: echo '${{ toJSON(steps.node_modules_cache_id.outputs) }}'
- name: node パッケージのインストール
if: ${{ steps.node_modules_cache_id.outputs.cache-hit != 'true' }}
run: npm ci
- id: run-lint
name: lintの実行
run: npm run lint:ci:app >> /var/tmp/lint-result.txt 2>&1
- id: run-type-check
name: TypeScript の型チェック
run: npm run type-check:app >> /var/tmp/type-check-result.txt 2>&1
- id: application-build
name: アプリケーションのビルド
run: npm run build-only:dev:app >> /var/tmp/build-result.txt 2>&1
- name: lintの結果出力
if: ${{ success() || (failure() && steps.run-lint.conclusion == 'failure') }}
uses: ./.github/workflows/file-to-summary
with:
body: /var/tmp/lint-result.txt
header: 'lintの結果 :pen:'
- name: 型チェックの結果出力
if: ${{ success() || (failure() && steps.run-type-check.conclusion == 'failure') }}
uses: ./.github/workflows/file-to-summary
with:
body: /var/tmp/type-check-result.txt
header: '型チェックの結果 :pencil2:'
- name: ビルドの結果出力
if: ${{ success() || (failure() && steps.application-build.conclusion == 'failure') }}
uses: ./.github/workflows/file-to-summary
with:
body: /var/tmp/build-result.txt
header: 'ビルドの結果 :gear:'
build-backend:
name: 'バックエンドアプリケーションのビルド'
runs-on: ubuntu-latest
permissions:
checks: write
contents: read
pull-requests: write
defaults:
run:
working-directory: ${{ env.BACKEND_WORKING_DIRECTORY }}
steps:
- name: ブランチのチェックアウト
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: JDK21のセットアップ
uses: actions/setup-java@v4
with:
distribution: 'adopt'
java-version: '21'
cache: 'gradle'
- name: gradlewに実行権限付与
run: chmod +x ./gradlew
- id: run-build-and-tests
name: ビルド(コンパイル, 静的テスト, JUnit)実行
run: ./gradlew build > build-result.txt
continue-on-error: true
- name: ビルド(コンパイル, 静的テスト, JUnit)結果の表示
shell: bash
if: ${{ success() || (failure() && steps.run-build-and-tests.outcome == 'failure') }}
run: |
echo '# Build Result :gear:' >> $GITHUB_STEP_SUMMARY
echo '```' >> $GITHUB_STEP_SUMMARY
cat build-result.txt >> $GITHUB_STEP_SUMMARY
echo '```' >> $GITHUB_STEP_SUMMARY
- name: ビルド(コンパイル, 静的テスト, JUnit)成功
if: ${{ steps.run-build-and-tests.outcome == 'success' }}
run: |
echo '## Test Result :memo:' >> $GITHUB_STEP_SUMMARY
echo ':heavy_check_mark: コンパイルと静的テストに成功しました。' >> $GITHUB_STEP_SUMMARY
- name: ビルド(コンパイル, 静的テスト, JUnit)失敗
if: ${{ steps.run-build-and-tests.outcome == 'failure' }}
run: |
echo '## Test Result :memo:' >> $GITHUB_STEP_SUMMARY
echo ':x: コンパイルまたは静的テストに失敗しました。' >> $GITHUB_STEP_SUMMARY
- name: JUnitレポート
uses: mikepenz/action-junit-report@62516aa379bff6370c95fd5894d5a27fb6619d9b # v5.2.0
with:
report_paths: '**/build/test-results/test/TEST-*.xml'
- name: Report
uses: dorny/test-reporter@31a54ee7ebcacc03a09ea97a7e5465a47b84aea5 # v1.9.1
if: always()
with:
name: Maven Tests
path: '**/build/test-results/test/TEST-*.xml'
reporter: java-junit
fail-on-error: true