GitHub 작업 및 릴리스를 사용하여 Vercel에 사이트 배포
일반적으로 Vercel을 GitHub과 함께 사용하는 경우. 코드를 푸시하면 새 배포가 자동으로 트리거됩니다. 필요에 따라 구성할 수 있지만 주요 문제는 GitHub 릴리스로 작업하려는 경우입니다. Vercel은 아직 새 릴리스에 배포할 수 없습니다.
이를 극복하기 위한 몇 가지 방법이 있습니다. 예를 들어 배포 후크로 Vercel을 호출하여 빌드를 시작할 수 있습니다. 이렇게 하면 GitHub Actions 워크플로 내에서 후크를 호출할 수 있습니다.
또 다른 접근 방식은 Vercel CLI와 GitHub Actions의 조합을 활용하는 것입니다. 이 접근 방식은 CI/CD 프로세스 중에 필요한 모든 유연성을 제공했기 때문에 제가 사용한 접근 방식입니다.
전제 조건
시작하기 전에 Vercel에서 프로젝트 ID와 조직 ID를 알아야 합니다. 이것을 얻는 가장 간단한 방법은 프로젝트를 Vercel에 연결하는 것입니다.
npx vercel link
를 사용하여 이를 수행할 수 있습니다.Info: You read more about the CLI here: Vercel CLI. When you have not used it yet, it will first ask you to sign in.
명령을 실행하면 프로젝트에
.vercel
파일이 있는 project.json
폴더가 생성됩니다. 해당 파일에서 나중에 GitHub Actions 워크플로에서 사용할 수 있는 projectId
및 orgId
를 찾을 수 있습니다.구성해야 할 다른 사항은 Vercel에서 프로젝트에 대해 GitHub를 비활성화하는 것입니다. 그렇게 하면 Vercel에 제어 권한을 넘겨받고 싶다고 알릴 수 있으며 코드를 GitHub에 푸시할 때 트리거되지 않습니다.
GitHub를 비활성화하려면 프로젝트의 루트에
vercel.json
파일을 생성하고(아직 존재하지 않는 경우) 다음 콘텐츠를 추가합니다.{
"github": {
"enabled": false,
"silent": true
}
}
한 가지 더, GitHub Actions에서 CLI를 사용하려면 a
token
가 필요합니다.Vercel Tokens 으로 이동하여 새 토큰을 만듭니다. 나중에 필요하므로 이 토큰을 안전하게 보관하십시오.
구성할 GitHub 비밀
GitHub 프로젝트에서 설정으로 이동하여 다음 비밀을 추가합니다.
VERCEL_ORG_ID: 값은
orgId
명령으로 생성된 JSON 파일의 vercel link
입니다. VERCEL_PROJECT_ID: 값은
projectId
명령으로 생성된 JSON 파일의 vercel link
입니다. VERCEL_TOKEN: 값은 이전에 생성한 토큰입니다.
GitHub 워크플로
마지막 단계는 작업을 GitHub 워크플로에 추가하는 것입니다. 다음은 이를 수행할 수 있는 방법의 예입니다.
name: "Deploy"
on:
release:
types:
- published
push:
branches:
- dev
workflow_dispatch:
jobs:
vercel:
runs-on: ubuntu-latest
name: "Deploy front-end"
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v1
with:
node-version: '14'
registry-url: https://registry.npmjs.org/
- name: "Deploy to Vercel"
run: |
prodRun=""
if [[ ${GITHUB_REF} == "refs/heads/main" ]]; then
prodRun="--prod"
fi
npx vercel --token ${VERCEL_TOKEN} $prodRun
env:
VERCEL_TOKEN: ${{ secrets.VERCEL_TOKEN }}
VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID }}
VERCEL_ORG_ID: ${{ secrets.VERCEL_ORG_ID }}
Info: When the action runs for any other branch than my
main
branch, it will not deploy to production.
위 워크플로에서 볼 수 있듯이 GitHub Actions 워크플로는 워크플로에서 릴리스, 푸시
dev
또는 수동 트리거가 있는 경우에만 트리거됩니다.이 워크플로를 배치하면 Vercel에 대한 모든 배포를 제어할 수 있습니다.
eliostruyf.com에 처음 게시된 기사
Reference
이 문제에 관하여(GitHub 작업 및 릴리스를 사용하여 Vercel에 사이트 배포), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/estruyf/deploy-your-site-to-vercel-using-github-actions-and-releases-1l3l텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)