よくあるケースとしては、ドキュメントなどを github pages (github.io)に公開したい場合とかでしょうか。
今回は Travis CI の場合を紹介します。
前置き
本当は、Travis CI 以外も含めて GitHub へのデプロイ方法をまとめようと思ってましたが、結局は ssh 鍵やアクセストークンを暗号化してリポジトリに置いておける CI サービスであれば、自分で git command を叩くことで実現可能です。
なので、まとめとしては大体のサービスが「できます」で終わってしまうのでやめました。
(CI サービスによって導入のしやすさは違うと思います。既存のステップがあるとか、管理方法とか、暗号化方法とか)
Travis CI
というわけで、Travis CIの場合です。Travis CI の depoly ステップに Github Pages と Github Releases があります。
GitHub Pages Deployment - Travis CI
GitHub Releases Uploading - Travis CI
Pages が通常の push 、Releases はタグ付けができます。
要点としては以下な感じ
- github へはアクセストークンで認証
- アクセストークンは暗号化して yml に書く
- ローカルマシン作業が必要:travis コマンドインストールしてアクセストークンの暗号化
- master ブランチなど CI 対象ブランチに push する場合はジョブが無限ループするので注意
その場合は自分で git command を yml に書く(コミットコメントに"[ci skip] " をつける)
(Travis CIのテストの中でGitHubのレポジトリへpushする) - 細かいことをしようと思ったら自分でコマンド叩くことになる
検証用リポジトリの設定はこちら
https://github.com/srz-zumix/ci-push/blob/master/.travis.yml
中身はこんな感じです。
dist: trusty sudo: false script: - sh ./build.sh - git checkout master - git add -A - git commit -m "deploy [ci skip]" - git push https://${GITHUB_TOKEN}@github.com/${TRAVIS_REPO_SLUG}.git ${TRAVIS_BRANCH} # TODO: add skip comment... #deploy: # provider: pages # target-branch: master # skip-cleanup: true # github-token: $GITHUB_TOKEN # Set in the settings page of your repository, as a secure variable # keep-history: true # on: # branch: master env: global: - secure: t6d7HusMxzdZCXV5tGWQn0MA7aodeuK6bbKASqUuOyKUe8I+w3E3E+GKL3CyE32pGDuPGxw1NraOvVJ8uuBmJjwumyAHssR0BFGogPnbhQucl9N3eMz9BHU5j5bw/bGkmI2y+9ZsTb+9P7XtBrwC6/AbdcF/Wh0y7y32RLxda4836OvxOuuZDl+2OgPtkqyg+uKVh+6uRY+arUHOBUEjzjBBAN5/eoTqE0/HVu4YEgiq94ke0c2w2Sz+sK1yXUGrOIz5nTcMMSAwJdHaQpnBKs/5EzJCcHx5guH3Wn+XKS3LOqIxioz6wKPnkqqhFHiv83fGy9+lv67mUHcXfMDab5rm+jRJUHgZPX9sd4iAoz7ZQ3jxMW3/PWP7VJsv3SrrDjFvBH8tRzkqtVIFTmS4tGDZ2VzeYhKom4dA3CH/KCxprZJ+nCQ2TizMuNAezR1+GcZGIDc+AGILUxfPK82Z2CZtmhoOBEp8C7JN6bPNxfYYhU5rJo8dI+1HinX3JRdfW2zBlixxuIrfn2RWhuRzT4mZf7tP8EZV33wRa7W/eEKvUUfMGAzk8gEVhLKfGaGZU7IfhrwdmRgRsKX0Y53wfEjqt8tsWW3FFHfuLjO75lEJY381VJREvC76FCOa2AT4B6A6dzz/5376K/08GChfBcN1vHAxj5FxhJ1dwt4iTZE=
まとめ
gh-pages ブランチへのデプロイであれば簡単。アクセストークンを使いたくない…とか、master の docs を更新したいんじゃーとなると自分で書くことになる。ローカル作業は必要ではあるが、ドキュメントもわかりやすく簡単。
0 件のコメント:
コメントを投稿