[Python]Travis CI에서 Pelican 빌드 자동화
Pelican + GitHub Pages에서 운영하는 사이트가 있지만
master
에 기사를 push 하면 자동적으로 pelican
커멘드로 HTML 을 생성해, gh-pages
브랜치에 push 하고 사이트가 갱신되도록(듯이) Travis CI 를 설정해 보았다.사이트 : htp://자키야마. 기주 b. 이오/사ㅇs후ぉr세-ゔぇぺぺrs. 인후
전제 조건
내가 시도한 것은 GitHub Pages 가운데 Project Pages라는 유형의 분.
GitHub Pages에는 User/Organization Pages와 Project Pages라는 두 가지 유형이 있습니다.
User/Organization Pages
[**GitHubのアカウント名**].github.io
http:[**GitHubのアカウント名**].github.io
master
프로젝트 페이지
http:[**GitHubのアカウント名**].github.io/[**リポジトリ名**]
gh-pages
TL;DR
영어 읽을 수 있는 사람은 이 기사대로 진행하면 OK.
htp : // bg. 테마메 r ぃん g. 에 / 아우토 마치 c ぺ ぃ かん ぷ b ぃ シン g ー ー ー ー ー ー ー ー ぱ げ s ゔ ぃ 아 t 라 ゔ ぃ s 해. HTML
절차
travis 명령 사용 가능
$ gem install travis
GitHub의 Personal Access Token 얻기
참고 : Creating an access token for command-line use - User Documentation
Travis CI에서 GitHub 리포지토리로 푸시하려면 token이 필요합니다.
GitHub Settings > Personal access tokens을 열고 [Generate new token]에서 새 토큰을 발행합니다.
표시되는 문자열을 복사합니다.

token 암호화
처음 설치한 travis
명령을 사용합니다.
$ travis encrypt GH_TOKEN=[コピーした token]
Shell completion not installed. Would you like to install it now? |y| y
Detected repository as zaki-yama/salesforce-developers.info, is this correct? |yes| yes
Please add the following to your .travis.yml file:
secure: "FLEqynRypa3B4S9qzcj0OTCwXrHUjEvsiXTI0r7qhZMzt11JUJUSzpVce/q5ZSENuBe9LR+c7MHl0pq9+1fka7bnYpbqWSybbIT5hLUVpIxB2ZvapogHmf9L/1n0vcODGhFwMUOfI1MuDN47wGCHS+qabNkIlzGGQPZYpri1ns1sp5rM7VFmVW6p3grAnhkaVWJIvW7GZORIPH11uBWtWsO2vhymrzM1J/PAgbJcSCjhtEZ79ntiG9DkAGqG27mVKPMNN8NDeIFGlbz2YyPgAqursSjZEPgmnzcQhzqyGz9D9Z5vAONki5vZ9CamEPfFa9llbQlwceM/7DJS+8FsBmiHH59i5rxW40iNK2otl6rSapXp1CLoWptXKVcyl9EjKcBUrRpWZ0Xzj94Ili80RbXiFJBW3B4qtrx7KCweUPURlY94a7n+P+pjbnx/jsdXFyvW4yR9R4+we82TxMPn49kq9Qf0cKnuEkVBOK1QyntdIDcW/L6heWqJAjWJMMGch4lSi0cN/8UGZxqq0b+OoHBp3FHWrnvOnLFB4mEgzp1/sa5jAFr6uq9mIS/TZ37XWrUX39YzAp6IL9Xq5Gmwof8nhKfnX7xm/yb3bglOt9HgrxArEKWoc/w/Gt4uxjGMQ2B9YjJsOdnxBHPpUgUXXxHj0FaD6K0pHLpJRQ+v78A="
Pro Tip: You can add it automatically by running with --add.
secure:
뒤의 문자열이 암호화 된 token이므로 복사하십시오.
.travis.yml 만들기
리포지토리의 루트에 .travis.yml
파일을 만들고 다음과 같이 설명합니다.
.travis.ymllanguage: python
branches:
only:
- master
install:
- pip install pelican
- pip install ghp-import
- pip install markdown
script:
- make publish
- make github
env:
global:
- secure: [travis encrypt コマンドで暗号化した token]
Makefile 편집
Pelican의 Makefile 중 make github
부분을 편집합니다.
제 경우에는 원래 이렇게 되어 있었다.
MakefilePY?=python
PELICAN?=pelican
PELICANOPTS=
BASEDIR=$(CURDIR)
INPUTDIR=$(BASEDIR)/content
OUTPUTDIR=$(BASEDIR)/output
...(中略)...
GITHUB_PAGES_BRANCH=master
...(中略)...
github: publish
ghp-import -m "Generate Pelican site" -b $(GITHUB_PAGES_BRANCH) $(OUTPUTDIR)
git push origin $(GITHUB_PAGES_BRANCH)
.PHONY: html help clean regenerate serve serve-global devserver publish ssh_upload rsync_upload dropbox_upload ftp_upload s3_upload cf_upload github
마지막 github: publish
부분을 이렇게 수정한다.
Makefile (수정 후)github: publish
ghp-import $(OUTPUTDIR)
@git push -fq https://${GH_TOKEN}@github.com/$(TRAVIS_REPO_SLUG).git gh-pages > /dev/null
※ 수정 전의 ghp-import
의 작성 방법은 아마 User/Organization Pages용으로 되어 있어,
이렇게 하면 ghp-import
로 생성한 HTML 파일이 master
브랜치에 push 되어 버린다.ghp-import
는 -b
를 생략하면 gh-pages
가 된다.
.travis.yml을 master로 푸시
.travis.yml
로 수정 된 Makefile을 커밋하고 master
브랜치로 푸시합니다.
설정에 문제가 없으면 Travis CI 빌드가 실행되고 자동으로 Pelican 빌드와 gh-pages
분기에 push가 실행됩니다.
(덤) Pull Request 작성시에 빌드가 실행되지 않게 한다
게시 전의 기사를 다른 브랜치로 해.
PR 만든 순간에 빌드가 달려 초조했지만, Travis CI의 Settings에 있었다.

(덤 2) README에 배지 표시
참고 : Travis CI를 사용해 보았습니다 : GitHub의 저장소에 배지를 붙이고 싶었기 때문에
Travis CI 관리 콘솔의 build unknown이라는 배지 부분을 클릭하고 Markdown을 선택하여 표시되는 텍스트를 복사합니다.

README.md에 붙여 넣고 푸시하면 배지가 표시됩니다.
Reference
이 문제에 관하여([Python]Travis CI에서 Pelican 빌드 자동화), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/zaki-yama/items/0d86a18f424f5d4f83a6
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
travis 명령 사용 가능
$ gem install travis
GitHub의 Personal Access Token 얻기
참고 : Creating an access token for command-line use - User Documentation
Travis CI에서 GitHub 리포지토리로 푸시하려면 token이 필요합니다.
GitHub Settings > Personal access tokens을 열고 [Generate new token]에서 새 토큰을 발행합니다.
표시되는 문자열을 복사합니다.

token 암호화
처음 설치한
travis
명령을 사용합니다.$ travis encrypt GH_TOKEN=[コピーした token]
Shell completion not installed. Would you like to install it now? |y| y
Detected repository as zaki-yama/salesforce-developers.info, is this correct? |yes| yes
Please add the following to your .travis.yml file:
secure: "FLEqynRypa3B4S9qzcj0OTCwXrHUjEvsiXTI0r7qhZMzt11JUJUSzpVce/q5ZSENuBe9LR+c7MHl0pq9+1fka7bnYpbqWSybbIT5hLUVpIxB2ZvapogHmf9L/1n0vcODGhFwMUOfI1MuDN47wGCHS+qabNkIlzGGQPZYpri1ns1sp5rM7VFmVW6p3grAnhkaVWJIvW7GZORIPH11uBWtWsO2vhymrzM1J/PAgbJcSCjhtEZ79ntiG9DkAGqG27mVKPMNN8NDeIFGlbz2YyPgAqursSjZEPgmnzcQhzqyGz9D9Z5vAONki5vZ9CamEPfFa9llbQlwceM/7DJS+8FsBmiHH59i5rxW40iNK2otl6rSapXp1CLoWptXKVcyl9EjKcBUrRpWZ0Xzj94Ili80RbXiFJBW3B4qtrx7KCweUPURlY94a7n+P+pjbnx/jsdXFyvW4yR9R4+we82TxMPn49kq9Qf0cKnuEkVBOK1QyntdIDcW/L6heWqJAjWJMMGch4lSi0cN/8UGZxqq0b+OoHBp3FHWrnvOnLFB4mEgzp1/sa5jAFr6uq9mIS/TZ37XWrUX39YzAp6IL9Xq5Gmwof8nhKfnX7xm/yb3bglOt9HgrxArEKWoc/w/Gt4uxjGMQ2B9YjJsOdnxBHPpUgUXXxHj0FaD6K0pHLpJRQ+v78A="
Pro Tip: You can add it automatically by running with --add.
secure:
뒤의 문자열이 암호화 된 token이므로 복사하십시오..travis.yml 만들기
리포지토리의 루트에
.travis.yml
파일을 만들고 다음과 같이 설명합니다..travis.yml
language: python
branches:
only:
- master
install:
- pip install pelican
- pip install ghp-import
- pip install markdown
script:
- make publish
- make github
env:
global:
- secure: [travis encrypt コマンドで暗号化した token]
Makefile 편집
Pelican의 Makefile 중
make github
부분을 편집합니다.제 경우에는 원래 이렇게 되어 있었다.
Makefile
PY?=python
PELICAN?=pelican
PELICANOPTS=
BASEDIR=$(CURDIR)
INPUTDIR=$(BASEDIR)/content
OUTPUTDIR=$(BASEDIR)/output
...(中略)...
GITHUB_PAGES_BRANCH=master
...(中略)...
github: publish
ghp-import -m "Generate Pelican site" -b $(GITHUB_PAGES_BRANCH) $(OUTPUTDIR)
git push origin $(GITHUB_PAGES_BRANCH)
.PHONY: html help clean regenerate serve serve-global devserver publish ssh_upload rsync_upload dropbox_upload ftp_upload s3_upload cf_upload github
마지막
github: publish
부분을 이렇게 수정한다.Makefile (수정 후)
github: publish
ghp-import $(OUTPUTDIR)
@git push -fq https://${GH_TOKEN}@github.com/$(TRAVIS_REPO_SLUG).git gh-pages > /dev/null
※ 수정 전의
ghp-import
의 작성 방법은 아마 User/Organization Pages용으로 되어 있어,이렇게 하면
ghp-import
로 생성한 HTML 파일이 master
브랜치에 push 되어 버린다.ghp-import
는 -b
를 생략하면 gh-pages
가 된다..travis.yml을 master로 푸시
.travis.yml
로 수정 된 Makefile을 커밋하고 master
브랜치로 푸시합니다.설정에 문제가 없으면 Travis CI 빌드가 실행되고 자동으로 Pelican 빌드와
gh-pages
분기에 push가 실행됩니다.(덤) Pull Request 작성시에 빌드가 실행되지 않게 한다
게시 전의 기사를 다른 브랜치로 해.
PR 만든 순간에 빌드가 달려 초조했지만, Travis CI의 Settings에 있었다.

(덤 2) README에 배지 표시
참고 : Travis CI를 사용해 보았습니다 : GitHub의 저장소에 배지를 붙이고 싶었기 때문에
Travis CI 관리 콘솔의 build unknown이라는 배지 부분을 클릭하고 Markdown을 선택하여 표시되는 텍스트를 복사합니다.

README.md에 붙여 넣고 푸시하면 배지가 표시됩니다.

Reference
이 문제에 관하여([Python]Travis CI에서 Pelican 빌드 자동화), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/zaki-yama/items/0d86a18f424f5d4f83a6텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)