forked from team-mirai-volunteer/action-board
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcloudbuild.yaml
More file actions
132 lines (120 loc) · 4.56 KB
/
Copy pathcloudbuild.yaml
File metadata and controls
132 lines (120 loc) · 4.56 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
steps:
- name: 'node:22'
entrypoint: "bash"
args:
- '-c'
- |
npx supabase link --project-ref ${_SUPABASE_PROJECT_ID} -p $$SUPABASE_DB_PASSWORD
npx supabase db push --include-all
npx supabase config push
env:
- 'CI=true'
- 'SMTP_ENABLED=true'
- 'SMTP_HOST=${_SUPABASE_SMTP_HOST}'
- 'SMTP_USER=${_SUPABASE_SMTP_USER}'
- 'SMTP_ADMIN_EMAIL=${_SUPABASE_SMTP_ADMIN_EMAIL}'
- 'SMTP_SENDER_NAME=${_SUPABASE_SMTP_SENDER_NAME}'
- 'SITE_URL=${_SUPABASE_SITE_URL}'
- 'ADDITIONAL_REDIRECT_URLS=${_SUPABASE_ADDITIONAL_REDIRECT_URLS}'
- 'ENABLE_CONFIRMATIONS=true'
secretEnv:
- SUPABASE_ACCESS_TOKEN
- SUPABASE_DB_PASSWORD
- BQ_USER_PASSWORD
- SMTP_PASS
# ミッションデータの同期
- name: 'node:22'
entrypoint: "bash"
args:
- '-c'
- |
npm ci
npm run mission:sync
env:
- 'NEXT_PUBLIC_SUPABASE_URL=${_NEXT_PUBLIC_SUPABASE_URL}'
- 'NEXT_PUBLIC_SUPABASE_ANON_KEY=${_NEXT_PUBLIC_SUPABASE_ANON_KEY}'
secretEnv:
- SUPABASE_SERVICE_ROLE_KEY
# ポスターデータの読み込み
- name: 'node:22'
entrypoint: "bash"
args:
- '-c'
- |
npm ci
npm run poster:load-csv
env:
- 'NEXT_PUBLIC_SUPABASE_URL=${_NEXT_PUBLIC_SUPABASE_URL}'
- 'NEXT_PUBLIC_SUPABASE_ANON_KEY=${_NEXT_PUBLIC_SUPABASE_ANON_KEY}'
secretEnv:
- SUPABASE_DB_PASSWORD
# Dockerイメージのビルド
- name: 'gcr.io/cloud-builders/docker'
entrypoint: 'bash'
args:
- '-c'
- |
docker build \
-t ${_REGION}-docker.pkg.dev/${PROJECT_ID}/${_REPOSITORY_NAME}/${_SERVICE_NAME}:${COMMIT_SHA} \
-t ${_REGION}-docker.pkg.dev/${PROJECT_ID}/${_REPOSITORY_NAME}/${_SERVICE_NAME}:latest \
--build-arg NEXT_PUBLIC_SUPABASE_URL=${_NEXT_PUBLIC_SUPABASE_URL} \
--build-arg NEXT_PUBLIC_SUPABASE_ANON_KEY=${_NEXT_PUBLIC_SUPABASE_ANON_KEY} \
--build-arg NEXT_PUBLIC_GA_ID=${_NEXT_PUBLIC_GA_ID} \
--build-arg NEXT_PUBLIC_SENTRY_DSN=${_NEXT_PUBLIC_SENTRY_DSN} \
--build-arg NEXT_PUBLIC_SENTRY_ENVIRONMENT=${_NEXT_PUBLIC_SENTRY_ENVIRONMENT} \
--build-arg NEXT_PUBLIC_APP_ORIGIN=${_NEXT_PUBLIC_APP_ORIGIN} \
--build-arg NEXT_PUBLIC_LINE_CLIENT_ID=${_NEXT_PUBLIC_LINE_CLIENT_ID} \
--build-arg SENTRY_RELEASE=${COMMIT_SHA} \
--build-arg SENTRY_AUTH_TOKEN="$$SENTRY_AUTH_TOKEN" \
.
secretEnv:
- SENTRY_AUTH_TOKEN
# Artifact Registryへのプッシュ
- name: 'gcr.io/cloud-builders/docker'
args:
- 'push'
- '${_REGION}-docker.pkg.dev/${PROJECT_ID}/${_REPOSITORY_NAME}/${_SERVICE_NAME}:${COMMIT_SHA}'
- name: 'gcr.io/cloud-builders/docker'
args:
- 'push'
- '${_REGION}-docker.pkg.dev/${PROJECT_ID}/${_REPOSITORY_NAME}/${_SERVICE_NAME}:latest'
# Cloud Runへのデプロイ
- name: 'gcr.io/google.com/cloudsdktool/cloud-sdk'
entrypoint: 'gcloud'
args: [
'run',
'deploy',
'${_SERVICE_NAME}',
'--image', '${_REGION}-docker.pkg.dev/${PROJECT_ID}/${_REPOSITORY_NAME}/${_SERVICE_NAME}:${COMMIT_SHA}',
'--region', '${_REGION}',
'--platform', 'managed',
'--allow-unauthenticated'
]
# オプション設定
options:
# ビルドマシンのスペック
machineType: 'E2_HIGHCPU_8'
# ディスクサイズ
diskSizeGb: 100
# ログ設定
logging: CLOUD_LOGGING_ONLY
# タイムアウト設定(30分)
timeout: 1800s
# 成果物として保存するイメージ
images:
- '${_REGION}-docker.pkg.dev/${PROJECT_ID}/${_REPOSITORY_NAME}/${_SERVICE_NAME}:${COMMIT_SHA}'
- '${_REGION}-docker.pkg.dev/${PROJECT_ID}/${_REPOSITORY_NAME}/${_SERVICE_NAME}:latest'
availableSecrets:
secretManager:
- versionName: 'projects/${PROJECT_ID}/secrets/${_SERVICE_NAME}-supabase-access-token/versions/latest'
env: SUPABASE_ACCESS_TOKEN
- versionName: 'projects/${PROJECT_ID}/secrets/${_SERVICE_NAME}-supabase-db-password/versions/latest'
env: SUPABASE_DB_PASSWORD
- versionName: 'projects/${PROJECT_ID}/secrets/${_SERVICE_NAME}-supabase-service-role-key/versions/latest'
env: SUPABASE_SERVICE_ROLE_KEY
- versionName: 'projects/${PROJECT_ID}/secrets/${_SERVICE_NAME}-supabase-smtp-password/versions/latest'
env: SMTP_PASS
- versionName: 'projects/${PROJECT_ID}/secrets/${_SERVICE_NAME}-bq-user-password/versions/latest'
env: BQ_USER_PASSWORD
- versionName: 'projects/${PROJECT_ID}/secrets/${_SERVICE_NAME}-sentry-auth-token/versions/latest'
env: SENTRY_AUTH_TOKEN