Vite로 빌드한 바닐라 자바스크립트 프로젝트를 Github Pages를 통해 배포할 수 있다.
간단한 프로젝트를 배포하고 싶을 때 Github Pages를 이용하면 편리하게 웹상에 나가 만든 사이트를 올릴 수 있다.
코드 수정 시 변경된 내용을 반영하기 위해 다시 빌드하고 배포하는 과정은 번거로울 수 있다.
Github Actions를 통해 origin에 푸시하면 자동적으로 수정 내용이 반영되도록 한다.
1. Github Pages 세팅
- 배포하려는 repository의 Settings -> Pages -> Build and deployment의 source를 Github Actions로 변경한다.
2. Vite 설정 추가
- Github Pages를 통해 https://<Github User Name>.github.io/<Repository Name>의 형태로 배포하고 싶으면 vite.config.js에 아래와 같은 설정을 추가해야 위의 url로 접근할 수 있다.
import { defineConfig } from "vite";
export default defineConfig({
base: "/repository_name/", // ex) base: "/test_repo/"
});
3. Github Actions 워크 플로우 설정
- Github Actions를 통해 자동적으로 배포를 진행하려면 배포와 관련된 모든 작업 단계를 지정해야 한다.
- 프로젝트 루트에 .github/workflows 폴더를 만들어 vite 문서를 참고해 아래와 같은 내용의 deploy.yml 파일을 생성한다.
# GitHub Pages에 정적 콘텐츠를 배포하기 위한 간단한 워크플로우
name: Deploy static content to Pages
on:
# 기본 브랜치에 대한 푸시 이벤트 발생 시 실행
push:
branches: ["main"]
# Actions 탭에서 수동으로 워크플로우를 실행할 수 있도록 구성
workflow_dispatch:
# GITHUB_TOKEN의 권한을 설정하여 GitHub Pages에 배포할 수 있도록 함
permissions:
contents: read
pages: write
id-token: write
# 동시에 하나의 배포만 허용하도록 구성
concurrency:
group: "pages"
cancel-in-progress: true
jobs:
# 단순히 배포만 수행하기에 하나의 잡으로만 구성
deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Node
uses: actions/setup-node@v4
with:
node-version: 20
cache: "npm"
- name: Install dependencies
run: npm ci
- name: Build
run: npm run build
- name: Setup Pages
uses: actions/configure-pages@v4
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
# dist 디렉터리 업로드
path: "./dist"
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
4. origin main 브랜치에 푸시 시 Actions 탭 확인
- origin main 브랜치에 커밋한 내용을 푸시하면 자동적으로 배포가 진행된다.
이 과정은 Actions 탭에서 확인할 수 있다. 성공적으로 배포되면 초록색 체크 마크를 확인할 수 있다.
- 만약 배포에 실패하면 어떤 부분에서 실패했는지 내역을 확인할 수 있으므로 이를 수정해 다시 반영하면 된다.
5. 확인
- Actions 탭에서 오류 없이 배포가 완료되면 사진과 같이 url이 생성된 사이트를 확인할 수 있다.
'기타 개발' 카테고리의 다른 글
Xcode 시뮬레이터로 iOS 환경 웹페이지 디버깅 (0) | 2024.12.27 |
---|---|
[홍정모 연구소] 알고리듬 압축코스 Part.1 완강 후기 (4) | 2024.09.30 |
[홍정모 연구소] 자료구조 압축코스 완강 후기 (2) | 2024.09.30 |
[홍정모 연구소] 파이썬 추월 코스 완강 후기 (2) | 2024.07.04 |