-
Notifications
You must be signed in to change notification settings - Fork 1
Lc 320 #23
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Lc 320 #23
Changes from all commits
8e5bede
6b7a419
0301aa9
05114f8
8421ab2
b3f3f02
9a5734f
c3abb10
c5cca22
894c5ed
409d8f7
385a8d5
0314472
ac98302
5d527d1
b40d25c
be3a897
157ebeb
c27f91b
7f52109
fe3a7a9
bcecc15
3157a8f
eaba11a
143a0ec
838160d
abae8d9
16499a2
c509dbe
9fad011
d84356d
a2d255e
2e5822c
5c19cd5
f57b793
2e8a0a5
a78a5c5
6efd716
bb37857
f9bc857
cc40639
282aa4c
f8ba829
d899f9b
21613cb
b49dce7
940fe02
55ddcfa
a3c4448
d8d88c1
1b93ca5
26698b0
984c48e
c6fa97b
60950da
b802081
01c685e
3e80430
4e55dd4
e0479b9
dbd6134
41bf168
1baad08
f0d6c1a
fcea7e4
51be9e6
28ef7b8
49f6c1b
c934177
0faacb9
c5e4f2d
2caf8f7
97a0cad
f19fc53
039faf8
e611d5d
b134a05
7f97070
396e6b6
95ffbd3
f1553dd
d509c68
48a867e
64aed2c
277914b
8645072
1e70808
3d35d8d
f7725f6
6e1dbb6
29e6bba
2ff3a26
ecbdcc1
fb3c266
4b5f535
3fb7285
aa7d09f
9c68a2f
e6ea510
befb8d6
e051f8f
97e9435
b8cfb00
e974596
b3dee78
3b6a99d
433c7fd
27b9e4a
7ce3aa4
4bf62b3
13b8dbe
2eafb23
a7a4355
2e42854
3009ae3
54f9f4d
00d0b71
a1969a2
60c0881
37a5cc8
e47015a
06f5a48
924b4cb
07e7f81
1af2359
e9538ca
b6ce6ac
e2a7740
70d77d9
34f68a6
6871980
ea8e07e
0280342
50f8871
1c3d114
7c3f380
9421440
3f0d3f0
4de5fa3
9fbb2db
568c757
f683020
f23c3f1
9ed2364
95c4eb4
27f02e6
df1db61
7b6070d
b08bb2e
3f93643
2916114
17c3975
f5d8e8b
ceab1e0
0d26488
adf92ae
c7a7fb3
3f5b657
5bafead
7e8c990
29e14aa
5e79916
276e2ed
45effbd
97d4982
38f03d4
272b820
8401a80
9e2b914
f1e51ee
be1d790
ca5ffbc
a1f3439
090939e
82d91ab
d926372
ef622a3
960419c
bcbb8fa
8748d24
caaef0e
bdfcd97
8b8ad11
78388b9
438a6a4
18cb4e1
b0c8e6a
7605617
dba5e73
fd62a9d
b6604cd
8c83ef1
9da800d
bdb13a4
f1bfcf7
2d4bbe2
2058b7f
2e81a04
2735b72
69237a5
d8798c2
a5bd0a7
7dbb465
489861f
9de4139
c3a7cca
392744d
57168b7
b10c134
96ec5e6
2c2e797
5a83c41
47a2005
6959dff
5e20206
d7413e7
bc6310b
01d475b
751a3f6
e668a50
40e6353
4df1c1c
4d238ae
87309f8
f92a133
045e7bf
fae0a43
5c79e90
e85364a
88849ca
6446941
4c94c0c
65cffd6
2b1162f
583476a
84f0897
f0cdbb5
2cb2867
1314475
6cbf91a
ba42bcb
a9a0866
9ee6789
c4456c8
6082f46
a4657ea
6154bfe
9d78ab4
a94288e
29df1bc
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,2 @@ | ||
| public/models/*.glb filter=lfs diff=lfs merge=lfs -text | ||
| *.glb filter=lfs diff=lfs merge=lfs -text | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,100 @@ | ||
| name: Deploy FE to S3 + CloudFront (OIDC) | ||
|
|
||
| on: | ||
| push: | ||
| branches: [ "develop" ] # ← develop에서만 배포 | ||
| workflow_dispatch: # ← 수동 실행 버튼 | ||
|
|
||
| permissions: | ||
| id-token: write # ← OIDC 필수 | ||
| contents: read | ||
|
|
||
| concurrency: | ||
| group: deploy-frontend | ||
| cancel-in-progress: true | ||
|
|
||
| env: | ||
| BUILD_DIR: dist # Vite 기본; Next static이면 out 등으로 변경 | ||
| AWS_REGION: ${{ vars.AWS_REGION }} | ||
| S3_BUCKET: ${{ vars.S3_BUCKET }} | ||
| CF_DISTRIBUTION_ID: ${{ vars.CF_DISTRIBUTION_ID }} | ||
|
|
||
| jobs: | ||
| deploy: | ||
| runs-on: ubuntu-latest | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| with: | ||
| lfs: false | ||
| fetch-depth: 0 | ||
|
|
||
| # 혹시 모를 누락 방지용(이중 안전장치) | ||
| # - name: Ensure LFS files are downloaded | ||
| # run: | | ||
| # git lfs install | ||
| # git lfs pull | ||
|
|
||
| - uses: actions/setup-node@v4 | ||
| with: | ||
| node-version: '20' | ||
|
|
||
| - run: npm ci | ||
| - run: npm run build | ||
|
|
||
| # 🔐 GitHub OIDC로 AWS 임시 자격 발급 | ||
| - name: Configure AWS credentials (OIDC) | ||
| uses: aws-actions/configure-aws-credentials@v4 | ||
| with: | ||
| role-to-assume: arn:aws:iam::957143340841:role/deefacto-github-assumerole | ||
| aws-region: ${{ env.AWS_REGION }} | ||
|
|
||
| # (선택) 현재 연결 확인 | ||
| - run: aws sts get-caller-identity | ||
|
|
||
| # 📦 해시된 정적 자산: 1년 캐시 + immutable | ||
| - name: Sync hashed assets | ||
| run: | | ||
| aws s3 sync "./$BUILD_DIR" "s3://$S3_BUCKET/" \ | ||
| --exclude "index.html" \ | ||
| --exclude "models/*" \ | ||
| --cache-control "public,max-age=31536000,immutable" | ||
|
|
||
|
|
||
| # 🎯 3D 모델/관련 에셋의 Content-Type 교정 | ||
| # sync는 개별 Content-Type 주기 어렵기 때문에 cp로 다시 덮어쓰기(REPLACE) | ||
| # - name: Fix Content-Type for 3D assets (.glb/.gltf/.bin) | ||
| # run: | | ||
| # # GLB (바이너리) | ||
| # aws s3 cp "./$BUILD_DIR" "s3://$S3_BUCKET/" \ | ||
| # --recursive --exclude "*" --include "*.glb" \ | ||
| # --content-type "model/gltf-binary" \ | ||
| # --metadata-directive REPLACE \ | ||
| # --cache-control "public,max-age=31536000,immutable" | ||
|
|
||
| # # GLTF (JSON) | ||
| # aws s3 cp "./$BUILD_DIR" "s3://$S3_BUCKET/" \ | ||
| # --recursive --exclude "*" --include "*.gltf" \ | ||
| # --content-type "model/gltf+json" \ | ||
| # --metadata-directive REPLACE \ | ||
| # --cache-control "public,max-age=31536000,immutable" | ||
|
|
||
| # # BIN (버퍼) | ||
| # aws s3 cp "./$BUILD_DIR" "s3://$S3_BUCKET/" \ | ||
| # --recursive --exclude "*" --include "*.bin" \ | ||
| # --content-type "application/octet-stream" \ | ||
| # --metadata-directive REPLACE \ | ||
| # --cache-control "public,max-age=31536000,immutable" | ||
|
|
||
| # 🏠 index.html: 즉시 반영을 위해 no-cache | ||
| - name: Upload index.html (no-cache) | ||
| run: | | ||
| aws s3 cp "./$BUILD_DIR/index.html" "s3://$S3_BUCKET/index.html" \ | ||
| --cache-control "no-cache" \ | ||
| --content-type "text/html; charset=utf-8" | ||
|
|
||
| # 🚀 CloudFront 캐시 무효화 | ||
| - name: Invalidate CloudFront | ||
| run: | | ||
| aws cloudfront create-invalidation \ | ||
| --distribution-id "$CF_DISTRIBUTION_ID" \ | ||
| --paths "/*" |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -117,3 +117,43 @@ cursor-talk-to-figma-mcp/ | |
| # playwright-report/ | ||
| # playwright/.cache/ | ||
| node_modules/ | ||
|
|
||
| # 3D Model files (GLB, GLTF) - Too large for Git | ||
| *.glb | ||
| *.gltf | ||
| *.obj | ||
| *.fbx | ||
| *.dae | ||
| *.stl | ||
| *.ply | ||
| *.3ds | ||
| *.max | ||
| *.blend | ||
|
|
||
| # Model directories | ||
| public/models/ | ||
| models/ | ||
|
Comment on lines
+122
to
+135
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
|
||
|
|
||
| # 특정 모델 폴더는 포함 (A01, B01, mainhome) | ||
| # !public/models/A01/ | ||
| # !public/models/B01/ | ||
| # !public/models/mainhome/ | ||
| # !models/A01/ | ||
| # !models/B01/ | ||
| # !models/mainhome/ | ||
|
|
||
| # 특정 폴더 안의 모델링 파일들은 포함 | ||
| # !public/models/A01/** | ||
| # !public/models/B01/** | ||
| # !public/models/mainhome/** | ||
| # !models/A01/** | ||
| # !models/B01/** | ||
| # !models/mainhome/** | ||
|
|
||
| # 특정 모델링 파일들은 포함 | ||
| # !public/models/A01.glb | ||
| # !public/models/B01.glb | ||
| # !public/models/mainhome.glb | ||
| # !models/A01.glb | ||
| # !models/B01.glb | ||
| # !models/mainhome.glb | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Git LFS 설정이 중복으로 정의되어 있습니다.
*.glb규칙은public/models/*.glb규칙을 포함하므로, 첫 번째 줄은 불필요합니다. 코드를 간결하게 유지하기 위해 중복되는 첫 번째 줄을 삭제하는 것을 권장합니다.