Travis CIのジョブからgithubリポジトリへプッシュする
Travis CIのジョブで生成された差分を元のgithubリポジトリへプッシュしたい。
.travis.yml
は以下のように設定する。
language: java
deploy:
provider: script
script: bash scripts/deploy.sh
skip_cleanup: true
on:
branch: master
skip_cleanup: true
の設定は必須。クリーンアップが実行されると差分ファイルがスタッシュされてしまう。
scripts/deploy.sh
は以下のように設定する。
#!/bin/bash
git checkout master
git add -A
git commit -m "some comment"
git push https://${GITHUB_ACCESS_TOKEN}@github.com/${TRAVIS_REPO_SLUG}.git ${TRAVIS_BRANCH}
ジョブが開始する際、ローカルリポジトリの状態はdetached HEAD
状態となっているため、master
ブランチのチェックアウトを再度行う必要があることに注意。
GITHUB_ACCESS_TOKEN
は、対象のリポジトリへのプッシュ権限を付与したAPIトークンを予め取得しておき、ジョブの環境変数として予め設定する。