以前から Static website 使ってポートフォリオサイト を動かしている。
Travic CI で AzCopy on Linux を使って適当なコンテナにデプロイし、そこから $web
に手動コピーしてリリースするという手順を取っていた。
AzCopy がいつの間にか $web
に対応していたので完全に自動化した。
AzCopy 、$web に対応してたようだ。 https://t.co/R9XkHus4e7
— kheiakiyama (@kheiakiyama) 2018年11月18日
Travic CI
サイトでは jekyll
を使っているが、_site
の部分を読み替えれば他のコンテンツ作成手段でも利用できるはず。
# Require Environment Variables # - BLOB_CONTAINER_URL # - STORAGE_KEY language: ruby rvm: - 2.5 before_script: - chmod +x ./scripts/cibuild script: ./scripts/cibuild after_success: - sudo apt-get update - sudo apt-get install apt-transport-https -y - sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main" - sudo add-apt-repository "deb http://cz.archive.ubuntu.com/ubuntu xenial main" - sudo apt-get update - sudo apt-get install libicu55 -y - sudo apt-get install libunwind-dev -y - wget -O azcopy.tar.gz https://aka.ms/downloadazcopylinux64 - tar -xf azcopy.tar.gz - sudo ./install.sh - ls -la ./_site - azcopy --version - azcopy --source ./_site --destination "$BLOB_CONTAINER_URL" --dest-key $STORAGE_KEY --recursive --quiet --set-content-type branches: only: - master env: global: - NOKOGIRI_USE_SYSTEM_LIBRARIES=true # speeds up installation of html-proofer
環境変数
$BLOB_CONTAINER_URL
は https://xxx.blob.core.windows.net/$web
のような指定になるが、Travis CI では特殊文字のエスケープが必要なため、 https://xxx.blob.core.windows.net/\$web
とする必要がある。
Environment Variables - Travis CI
デバッグ
最新の AzCopy on Linux を動かすために、Travis CI のデバッグで少し苦労した。
Travis CI で動くエージェントは Docker イメージが用意されているので下のリンクから該当イメージを探して手元で試すと早い。
ただし ruby のイメージは3GB超。。
Common Build Problems - Travis CI
Travis CI のデバッグ用イメージ、サイズがでかすぎてPullしてる間にSaaSでデバッグ完了する疑惑。 https://t.co/O62VgdfG4w
— kheiakiyama (@kheiakiyama) 2018年11月18日
Azure CDN への反映
コンテンツ更新するため、キャッシュを一旦削除した。