2019年4月6日
前回と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上にファイルが保存されているはずです。
終わり