Skip to content

Instantly share code, notes, and snippets.

@Na0ki
Created February 19, 2025 00:02
Show Gist options
  • Save Na0ki/f5a59c6a43581283018e6cd91c4c26f1 to your computer and use it in GitHub Desktop.
Save Na0ki/f5a59c6a43581283018e6cd91c4c26f1 to your computer and use it in GitHub Desktop.
precompile結果もアップ可能にしたやつ。最後のビルドがレイヤーキャッシュ使ってないので効率は悪い。
steps:
- id: install-deps
name: node:22.14.0
entrypoint: npm
args:
- ci
- id: build-bundle
name: node:22.14.0
entrypoint: npm
args:
- run
- build:prod
# Cloud Storageにアップロードする
# cloudbuild.ymlにおけるartifacts/objectsでの指定だとgsutilが使われる上にrecursiveに対応できないため、
# recursiveも使えてgsutilよりもパフォーマンスが高いとされる `gcloud storage cp -R` を使うためにcloud-sdkを使ったステップで対応
# https://cloud.google.com/blog/products/storage-data-transfer/new-gcloud-storage-cli-for-your-data-transfers?hl=en
- id: upload-bundle
name: gcr.io/google.com/cloudsdktool/cloud-sdk:slim
entrypoint: gcloud
args:
- storage
- cp
- -R
- ./dist/webpack
- gs://[BUCKET_NAME]
- id: builder
name: gcr.io/cloud-builders/docker
args:
- build
- --target
- build
- -t
- asia-northeast1-docker.pkg.dev/$PROJECT_ID/builder-local-middle-layer:local
- -f
- Dockerfile.default
- '.'
- id: precompile-assets
name: 'gcr.io/cloud-builders/docker'
args:
- run
- -e
- SECRET_KEY_BASE=precompile_placeholder
- -v
- /workspace/assets-output:/rails/public/assets
- asia-northeast1-docker.pkg.dev/$PROJECT_ID/builder-local-middle-layer:local
- bundle
- exec
- rake
- assets:precompile
- id: upload-assets
name: gcr.io/google.com/cloudsdktool/cloud-sdk:slim
entrypoint: gcloud
args:
- storage
- cp
- -R
- /workspace/assets-output/*
- gs://[BUCKET_NAME]/assets
- id: build-container
name: gcr.io/cloud-builders/docker
args:
- build
- -t
- asia-northeast1-docker.pkg.dev/$PROJECT_ID/[IMAGE_NAME]/sample-image:$SHORT_SHA
- -f
- Dockerfile.default
- '.'
images: ['asia-northeast1-docker.pkg.dev/$PROJECT_ID/[IMAGE_NAME]/sample-image:$SHORT_SHA']
options:
# https://cloud.google.com/build/docs/securing-builds/store-manage-build-logs?hl=ja
logging: CLOUD_LOGGING_ONLY
machineType: E2_HIGHCPU_32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment