Github Pages 배포 에러

Github Pages 배포 에러

Github Pages를 구축하던 중 발생한 이해 안되는 에러

 

티스토리는 분명 좋은 블로그다.

하지만 티스토리 블로그에 100여개의 글을 작성하며 항상 불편한 점이 한가지 있었다.

바로 마크다운(Markdown)에 친화적이지 않다는 것.

그래서 이참에 조금 더 개발자스럽게(?) Github Pages로 블로그를 만들어보려는 시도를 했다.

주말 2일 동안 Github Pages에 대한 문서를 보면서 작업을 진행했다.


하지만 누가 그랬을까?

배포에 성공하기 전까진 성공한게 아니라고 😂

수많은 에러를 해결하면서 모든 작업을 끝내고 마침내 블로그를 배포하려니 또 요상한 에러가 발생했다. (마지막 관문)

Github Actions Build는 성공했는데 Page Build는 실패했다는 이상한 에러였다.

처음에 아예 이해가 안된게, 빌드가 됐다는 것은 정적파일들이 정상적으로 생성됐다는 뜻과 일맥상통하는데

생성된 정적파일들을 뿌려주기만 하면 되는데 이게 안된다? 말이 안된다는 생각이 먼저 들었다.

image


메일로 날아온 빌드 알람은 하기와 같았다.

The page build failed for the `main` branch with the following error:

A file was included in `/_layouts/post.html` that is a symlink or does not exist in your `_includes` directory. For more information,
 
see https://docs.github.com/github/working-with-github-pages/troubleshooting-jekyll-build-errors-for-github-pages-sites#file-is-a-symlink.

/_layouts/post.html에서 _includes에 존재하지 않는 파일을 참조하고 있거나

심볼릭 링크를 사용하고 있다는 에러 메세지와

해당 메세지에 대한 Github Document 주소였다.

하지만 이 메세지는 무시했다.

왜냐하면 이미 로컬에서 빌드가 성공했었기 때문.

굉장히 이해가 안되는 상황이라 이 문제에 대해 한참동안 구글링을 했다.


한참의 구글링 끝에 Github Pages는 페이지를 보여주는 브랜치를 독립적으로 설정해야 한다는 내용을 찾았다.

문제의 원인은 간단했다.

전체적인 플로우는 하기와 같다.

image

Github에서 사용을 금지한 jekyll plugin들을 우회사용하기 위해

Github ActionsGithub Workflows를 사용했고

main 브랜치에 push가 발생하면 Github Workflows

main 브랜치의 소스를 빌드하여 생성되는 정적파일들을 ph-pages 브랜치로 생성되게 만들었다.

여기서 ph-pages는 사용자들에게 보여줄 페이지를 담당하는 브랜치라는 문서상의 내용을 보고 이렇게 작업을 한 것인데,

자동으로 되는 줄 알고있다가 알고보니 추가 작업이 더 필요했던 것.

image

Repository - Settings - Pages로 진입하여

Sourcegh-pages 브랜치로 설정해주니 잘 동작하였다.


© 2022. All rights reserved.