platform
주요 제공자용 플랫폼 설정과 CI/CD 워크플로 파일을 생성합니다. config.toml과 콘텐츠 별칭을 읽어 바로 쓸 수 있는 배포 설정을 만듭니다.
# 호스팅 플랫폼
hwaro tool platform netlify
hwaro tool platform vercel
hwaro tool platform cloudflare
# CI/CD 워크플로
hwaro tool platform github-pages
hwaro tool platform gitlab-ci
hwaro tool platform codeberg-pages
# 사용자 지정 경로로 출력
hwaro tool platform netlify -o deploy/netlify.toml
# 파일 대신 stdout으로 출력
hwaro tool platform vercel --stdout
참고:
hwaro tool ci는 사용 중단되었습니다. 대신hwaro tool platform github-pages를 사용합니다.
지원 플랫폼
| 플랫폼 | 출력 파일 | 설명 |
|---|---|---|
| netlify | netlify.toml |
빌드 설정, 리다이렉트, 헤더 |
| vercel | vercel.json |
빌드 명령, 라우팅, 캐시 헤더 |
| cloudflare | wrangler.toml |
Cloudflare Pages 설정 (pages_build_output_dir) |
| github-pages | .github/workflows/deploy.yml |
GitHub Actions 빌드 + 배포 워크플로 |
| gitlab-ci | .gitlab-ci.yml |
GitLab CI/CD 파이프라인 |
| codeberg-pages | .forgejo/workflows/deploy.yml |
Codeberg Pages(Forgejo Actions) 배포 워크플로 |
옵션
| 플래그 | 설명 |
|---|---|
| -o, --output PATH | 출력 파일 경로 (기본값: 자동 감지) |
| --stdout | 파일 대신 stdout으로 출력 |
| -f, --force | 기존 파일을 경고 없이 덮어쓰기 |
| -h, --help | 도움말 표시 |
출력 파일이 이미 있으면 --force로 덮어씁니다. 프로젝트 안의 대상 경로가
프로젝트 밖으로 이어지는 심볼릭 링크이거나 그런 링크 디렉터리 아래에 있으면
--force 여부와 관계없이 거부합니다. 의도적으로 그곳에 쓰려면 -o로 실제
경로를 지정하세요.
생성되는 설정
각 설정에는 다음이 포함됩니다.
- 빌드 명령:
hwaro build - 출력 디렉터리: 설정한
[build] output_dir(기본값public/). 값을 바꾸면 생성되는 모든 설정 파일에 그대로 반영되므로, 호스팅 서비스가hwaro build가 실제로 쓰는 디렉터리를 배포합니다.gitlab-ci는 기본값이 아닐 때pages잡에publish:도 함께 추가합니다. - 리다이렉트: 프론트 매터에 정의한 페이지
aliases에서 만든 301 리다이렉트 (예:aliases: ["/old-url/"]) - 캐시 헤더:
[assets]출력 디렉터리에 1년짜리immutable규칙. 그 안의 모든 파일 이름이 내용 해시를 포함할 때만 생성됩니다. 즉 에셋 파이프라인이fingerprint = true와 하나 이상의[[assets.bundles]]로 활성화되어 있고, 같은 URL로 해시 없이 복사되는static/<output_dir>/디렉터리가 없어야 합니다
Netlify 출력
[build]
command = "hwaro build"
publish = "public"
[build.environment]
# Add environment variables here
# HWARO_VERSION = "0.21.0"
[[redirects]]
from = "/old-url/"
to = "/posts/new-post/"
status = 301
force = true
[[headers]]
for = "/assets/*"
[headers.values]
Cache-Control = "public, max-age=31536000, immutable"
Vercel 출력
{
"buildCommand": "hwaro build",
"outputDirectory": "public",
"redirects": [
{
"source": "/old-url/",
"destination": "/posts/new-post/",
"statusCode": 301
}
],
"headers": [
{
"source": "/assets/(.*)",
"headers": [
{
"key": "Cache-Control",
"value": "public, max-age=31536000, immutable"
}
]
}
]
}
함께 보기
- GitHub Pages | GitLab CI | Netlify | Vercel | Cloudflare Pages | Codeberg Pages — 플랫폼별 배포 가이드
- CLI — 전체 tool 명령