Skip to content

Commit 85ec874

Browse files
authored
v22.2508.7 release (#130)
* chore: 자동 HeadVer 버저닝 태깅과 stage 환경 배포 (#126) * chore: Github Action을 이용한 수동 vercel 배포 * chore: headver-tagging 워크플로우 추가 * chore: build 워크플로우에 버저닝 생성 추가 * fix: 워크플로우 이름 오타 수정 * chore: headver.json 추가 * chore: 태그 생성 워크플로우 변경 * fix: 태그 생성 워크플로우 수정 * chore: 태그 생성 워크플로우 변경 * fix: 태그 생성 로직 권한 수정 * chore: 태그 추가 로직 변경 * chore: 권한 추가 * chore: 워크플로우 권한 추가 * chore: vercel git 자동 배포 disable * chore: 워크플로우 최신 빌드 버전 가져오지 못하는 오류 수정 * chore: main 브랜치에서만 빌드 워크플로우 실행으로 변경 * feat: 성적명 표기 변환 추가, 지원시 대학목록 정렬 (#127) * feat: 지원서 제출시 대학목록 정렬 * feat: 성적명 표기 변환 추가 * remove: 미사용 코드 삭제 (#128) * feat: 404페이지 수정 * remove: 미사용 pages router 페이지 삭제 * remove: 미사용 페이지 삭제 * remove: 미사용 로그인 이미지 캐러셀 제거 * chore: react-slick 패키지 제거 * feat: 지원서 중복 제출 막기 (#129) * hotifx: 임시 release 빌드
2 parents 684c023 + 3982837 commit 85ec874

24 files changed

+160
-1015
lines changed

.github/workflows/build.yml

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
name: Build and Vercel Preview Deployment on Main
2+
permissions:
3+
contents: write
4+
5+
env:
6+
VERCEL_ORG_ID: ${{ secrets.VERCEL_ORG_ID }}
7+
VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID }}
8+
VERCEL_ENV: preview
9+
10+
on:
11+
push:
12+
branches:
13+
- main
14+
15+
workflow_dispatch:
16+
17+
jobs:
18+
generate_tag:
19+
uses: ./.github/workflows/headver-tagging.yml
20+
with: {}
21+
22+
Deploy-Preview:
23+
runs-on: ubuntu-latest
24+
needs: generate_tag
25+
env:
26+
VERSION_TAG: ${{ needs.generate_tag.outputs.version }}
27+
steps:
28+
- uses: actions/checkout@v3
29+
30+
- name: Install Vercel CLI
31+
run: npm install --global vercel@latest
32+
33+
- name: Pull Vercel Environment Information
34+
run: vercel pull --yes --environment=${{ env.VERCEL_ENV }} --token=${{ secrets.VERCEL_TOKEN }}
35+
36+
- name: Build Project Artifacts
37+
run: vercel build --yes --target=${{ env.VERCEL_ENV }} --token=${{ secrets.VERCEL_TOKEN }}
38+
39+
- name: Deploy Project Artifacts to Vercel
40+
run: vercel deploy --prebuilt --target=${{ env.VERCEL_ENV }} --token=${{ secrets.VERCEL_TOKEN }}
41+
42+
- name: Output Tag Version
43+
run: echo "Deployment completed for version $VERSION_TAG"
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
name: Generate HeadVer Tag
2+
permissions:
3+
contents: write
4+
5+
on:
6+
workflow_call:
7+
outputs:
8+
version:
9+
description: "Generated HeadVer version"
10+
value: ${{ jobs.generate_tag.outputs.version }}
11+
12+
jobs:
13+
generate_tag:
14+
runs-on: ubuntu-latest
15+
outputs:
16+
version: ${{ steps.compute_version.outputs.version }}
17+
steps:
18+
- uses: actions/checkout@v3
19+
with:
20+
fetch-depth: 0
21+
22+
- name: Compute HeadVer Tag
23+
id: compute_version
24+
run: |
25+
# headver.json에서 head 버전 가져오기
26+
if [ ! -f headver.json ]; then
27+
echo "headver.json 파일이 없습니다. 기본 head=0을 사용합니다."
28+
HEAD=0
29+
else
30+
HEAD=$(jq -r '.head' headver.json)
31+
fi
32+
echo "Head number: $HEAD"
33+
34+
# 현재 연도와 주차(yyww) 가져오기
35+
YYWW=$(date +"%y%V")
36+
echo "YearWeek: $YYWW"
37+
38+
# 최신 태그 검색
39+
LAST_BUILD=$(git tag --list "v*.*.*" | awk -F. '{print $3}' | sort -n | tail -n 1)
40+
41+
if [ -z "$LAST_BUILD" ]; then
42+
BUILD=1
43+
else
44+
BUILD=$((LAST_BUILD + 1))
45+
fi
46+
47+
echo "Build number: $BUILD"
48+
49+
# 최종 태그 생성
50+
VERSION="${HEAD}.${YYWW}.${BUILD}"
51+
echo "Computed version: $VERSION"
52+
53+
# GitHub Actions 환경 변수로 설정
54+
echo "version=$VERSION" >> $GITHUB_ENV
55+
echo "::set-output name=version::$VERSION"
56+
57+
- name: Create Tag
58+
run: |
59+
TAG="v${{ steps.compute_version.outputs.version }}"
60+
echo "Creating tag: $TAG"
61+
62+
git tag $TAG
63+
git push origin $TAG

headver.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"head": 22
3+
}

package-lock.json

Lines changed: 1 addition & 51 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
"react": "^18",
2121
"react-dom": "^18",
2222
"react-linkify": "^1.0.0-alpha",
23-
"react-slick": "^0.30.1",
2423
"slick-carousel": "^1.8.1"
2524
},
2625
"devDependencies": {

src/app/application/apply/LanguageStep.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import BlockBtn from "@/components/button/BlockBtn";
22
import Tab from "@/components/ui/Tab";
33

4-
import { LanguageTestScore } from "@/types/score";
4+
import { LanguageTestScore, languageTestMapping } from "@/types/score";
55

66
import ScoreCard from "@/app/score/ScoreCard";
77

@@ -31,7 +31,7 @@ const LanguageStep = ({
3131
>
3232
<ScoreCard
3333
key={score.id}
34-
name={score.languageTest.languageTestType}
34+
name={languageTestMapping[score.languageTest.languageTestType]}
3535
score={score.languageTest.languageTestScore}
3636
status={score.verifyStatus}
3737
// date={new Date(score.issueDate).toISOString()}

src/app/application/apply/page.tsx

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ const ApplyPage = () => {
2929
const [curGpaScore, setCurGpaScore] = useState<number | null>(null);
3030
const [curUniversityList, setCurUniversityList] = useState<number[]>([]);
3131

32+
const [isSubmitting, setIsSubmitting] = useState<boolean>(false);
33+
3234
useEffect(() => {
3335
const fetchAll = async () => {
3436
try {
@@ -43,7 +45,21 @@ const ApplyPage = () => {
4345
(score: LanguageTestScore) => score.verifyStatus === "APPROVED",
4446
),
4547
);
46-
setUniversityList(universityRes.data);
48+
49+
// 대학명을 지역/나라, 대학명 가나다 순으로 정렬합니다
50+
const sortedUniversityList = [...universityRes.data].sort((a, b) => {
51+
// 1) region 비교
52+
const regionCompare = a.region.localeCompare(b.region);
53+
if (regionCompare !== 0) return regionCompare;
54+
55+
// 2) country 비교
56+
const countryCompare = a.country.localeCompare(b.country);
57+
if (countryCompare !== 0) return countryCompare;
58+
59+
// 3) 같은 region, country라면 대학명을 비교(가나다 순)
60+
return a.koreanName.localeCompare(b.koreanName);
61+
});
62+
setUniversityList(sortedUniversityList);
4763
} catch (err) {
4864
if (err.response) {
4965
console.error("Axios response error", err.response);
@@ -83,6 +99,7 @@ const ApplyPage = () => {
8399
return;
84100
}
85101

102+
setIsSubmitting(true); // TODO: 현재 임시 submit 처리, 이후에 통합 처리 추가
86103
try {
87104
await postApplicationApi({
88105
gpaScoreId: curGpaScore,
@@ -96,6 +113,8 @@ const ApplyPage = () => {
96113
setStep(99);
97114
} catch (err) {
98115
alert(err.response.data.message);
116+
} finally {
117+
setIsSubmitting(false);
99118
}
100119
};
101120

src/app/login/ImageCarousel.tsx

Lines changed: 0 additions & 70 deletions
This file was deleted.

0 commit comments

Comments
 (0)