前回とGitLab Runnerの構築までは同じなので省略します。
.gitlab-ci.yml image: python:2.7
stages:
- pages
- deploy
pages:
stage: pages
script:
- pip install sphinx
- pip install sphinxcontrib-blockdiag sphinxcontrib-nwdiag sphinx_rtd_theme
- make html
- mv build/html/ public/
artifacts:
paths:
- public
only:
- master
before_script:
- echo "deb http://packages.cloud.google.com/apt cloud-sdk-jessie main" | tee /etc/apt/sources.list.d/google-cloud-sdk.list
- curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
- apt-get update && apt-get install -y google-cloud-sdk
deploy_production:
stage: deploy
environment: Production
only:
- master
script:
- echo $DEPLOY_KEY_FILE_PRODUCTION > /tmp/$CI_PIPELINE_ID.json
- gcloud auth activate-service-account --key-file /tmp/$CI_PIPELINE_ID.json
- gcloud config set project プロジェクトID
- gsutil -m rsync -d -r build/html gs://バケット名/dir
- gsutil -m acl -ar set public-read gs://バケット名/dir
※プロジェクトIDはPROJECT_ID_PRODUCTIONに入力したものと同じものを
※バケット名には保存したいバケット名を(なければGCP→Storage→ブラウザから作成)
以上でmasterに変更が反映されるたびに
・sphinxのHTML化・ビルド
・Cloud Storageへのデプロイ
が自動で行われるようになりました。
パイプライン実行が成功していれば、Cloud Storage上にファイルが保存されているはずです。
終わり