
그냥 하나 템플릿 뽑아 놓고 복사해다 쓰자.
이번 프로젝트에서는 어차피 fe가 나 하나라 pr을 일일이 만드는 것도 좀 웃기긴 하지만..
범용적으로 만드려고 쓰는 거니까 넣어두자.
다른 프로젝트에서 이 설정을 꽤 후반에 넣었는데, 진작 넣을걸 후회했다.
build하고 나서야 확인되는 에러가 간혹 있는데 그런 걸 잡을 때 유용했음.
배포한 레포지토리하고 테스트할 레포지토리가 다르면 버셀 환경을 못 가져온다고 한다..
vercel.json만들어서 매칭해주는 방법도 있지만, 수정사항이 있을 때마다 수동으로 매칭해줘야 하니 오히려 에러 위험이 있을 것 같음.
-> 그냥 로컬빌드 해주자.
삽질할 때 했던 건데, 허스키 설정을 깃허브 액션에서 제대로 못 잡는 경우가 많고.. 허스키 버전에 따라 또 다르게 설정을 해줘야 해서 정말.. 귀찮았다.
결론적으로, 어차피 커밋할 때 허스키 다 통과했을테니 깃허브 액션에서는 허스키를 비활성화해서 해결했다.
가뜩이나 빌드 돌리느라 느리니 과감하게 비활성화해주자.
다만 프로젝트마다 허스키를 쓸 수도, 안 쓸 수도 있으니 분기처리를 추가하기.
오가니제이션에서는 버셀 배포가 유료라 개인 레포로 포크떠와서 배포하는 꼼수를 자동화했던 적이 있다.
이건 문서가 구글하면 많이 나와서 몇 개 참조함.
name: PR CHECK
on:
push:
branches:
- develop
pull_request:
branches:
- develop
jobs:
build:
runs-on: ubuntu-latest
env:
HUSKY: 0
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
- name: Install dependencies
run: npm install
- name: Run Next.js Build
run: npm run build
- name: Check Build Success
if: success()
run: echo "✅ Build successful!"
- name: Fail on Build Error
if: failure()
run: |
echo "❌ Build failed!"
exit 1
//pr시 더 테스트할게 생기면 여기 계속 추가..
커밋 메시지는 배포 시간으로 넣어줬다.
-> 시간이 뭔가 이상하다 했더니 깃허브 서버시간대로 들어간다.. 서울로 바꿔줌.
name: git push into another repo to deploy to vercel
on:
push:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest
container: pandoc/latex
steps:
- uses: actions/checkout@v4
- name: Install mustache (to update the date)
run: apk add ruby && gem install mustache
- name: creates output
run: sh ./build.sh
- name: Get current date and time
id: get_date
run: |
export TZ="Asia/Seoul" # 서울 시간대로 설정
DATE=$(date '+%Y-%m-%d %H:%M:%S')
echo "date=$DATE" >> $GITHUB_ENV
echo "::set-output name=date::$DATE"
- name: Pushes to another repository
id: push_directory
uses: cpina/github-action-push-to-another-repository@main
env:
API_TOKEN_GITHUB: ${{ secrets.GIT_TOKEN }}
with:
source-directory: "output"
destination-github-username: ${{ secrets.USER_NAME}}
destination-repository-name: ${{ secrets.REPO_NAME}}
user-email: ${{ secrets.GIT_EMAIL }}
commit-message: ${{ steps.get_date.outputs.date }}
target-branch: main
- name: Vercel Deploy
run: echo $DESTINATION_CLONED_DIRECTORY
굳이 커밋 안넣고 메인 업데이트될 때마다 포크싱크만 해줘도 되지 않나?
-> 10번쯤 실패하고 성공.🙃