Hugo에서 시작한 블로그 기사를 멋지게 관리합니다.
요약
배경
요 전날 Hugo을 사용하여 포트폴리오 사이트를 만들고 그 안에 블로그를 병설했습니다.
Fairy Select - My Portfolio
소스 코드를 관리할 때 Git을 사용하는 것이지만, 그렇게 하면 블로그 기사를 추가하기 위해서만 커밋 로그를 쌓아야 하고 커밋 로그가 매우 더러워져 버립니다.
기사를 3 번 가필 수정 한 것만으로 이렇게 커밋 로그가 쌓입니다.
거기서 생각한 것이 ...
블로그 기사만 다른 리포지토리로 하면 좋지 않아?
입니다.
생각한 방법
「블로그 기사만 다른 리포지토리에」한 후를 생각합니다.
서브 모듈화
Git에는 서브 모듈이라는 편리한 기능이 있으며, 이것을 사용하면 적어도 블로그 기사의 커밋 로그는 별도로 관리할 수 있습니다.
그런데, 서브 모듈에 관한 한 기사을 읽은 바, 서브 모듈의 갱신이 있었을 경우에 스스로 갱신을 읽어야 하는 것 같습니다.
결국은
Update submodule: posts
와 같은 커밋 로그를 쌓지 않으면 안 되기 때문에, 번거롭기 보다는 블로그 기사와 같이 갱신 빈도가 높은 컨텐츠를 서브 모듈화하는 것은 그다지 적합하지 않다고 느꼈습니다.그런 이렇게 채용한 것이 다음 방법입니다.
블로그 기사를 복제하고 빌드하는 파이프라인 구축
.gitlab-ci.yml
를 아래와 같이 써서 CI/CD 를 설정했습니다. (실제로는 좀더 다양한 처리를 쓰고 있습니다만, 개략은 이런 느낌입니다)image: registry.gitlab.com/pages/hugo:latest
variables:
GIT_SUBMODULE_STRATEGY: recursive
pages:
script:
- apk update && apk --no-cache add git
- git clone ${ブログ記事の URL}
- git clone ${ブログ記事画像の URL}
- hugo
artifacts:
paths:
- public
only:
- master
이제
master
브랜치에 무언가를 푸시하면 파이프 라인이 실행되고 기사를 업데이트 할 수 있습니다! git clone
하므로 빌드 아티팩트에 .git
가 포함되지 않도록 주의합시다. GitLab의 환경 변수는 리포지토리 페이지에서 Settings → CI/CD → Variables로 이동하여 설정할 수 있습니다.
자세한 내용은 여기
정기 실행도 설정
GitLab에는 파이프라인을 정기적으로 실행하는 편리한 기능이 있습니다.
모처럼이므로 설정해 보려고합니다.
리포지토리 페이지에서 CI/CD → Schedules → New schedule로 이동하여 일본 시간 매일 아침 4시에 파이프라인을 실행하도록 설정해 봅니다.
이것으로 정기 실행도 완성입니다.
제대로 실행할 수 있는지 걱정되는 경우 목록 화면에서 수동으로 실행할 수도 있습니다.
끝까지 읽어 주셔서 감사합니다!
Reference
이 문제에 관하여(Hugo에서 시작한 블로그 기사를 멋지게 관리합니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/noritakaIzumi/items/305b4e80639c985d2208텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)