2021年10月10日
slug
2021-10-10
date
Oct 10, 2021
summary
心理士、写真の編集、CloudBuild
status
Published
tags
テック
写真
ゲーム
type
Post
Property
公認心理師・臨床心理士というのにすごく興味が出てきた。
帰ったらじっくり調べてみよう。
今日は昨日撮った写真の編集とダークソウル3の攻略動画をずっと観てた。
未だに、あ、そこでそっち行けるのか!のような新発見がわんさかある。
夜、ちょっと仕事したら、やってみるか。
週末が一瞬で溶けてしまうな。
NotionAPIで400が出てた
dialy.hisasann.dev の vercel のビルドがコケていた。
そして、 ISR も実行されていなくて、10/5ぐらいから日記を書いていないような状態になっていた。
なんでだろう。
また明日ビルドしてみるか。
こうゆうのはテンションがすごく下がるな。
23:53:45.074 NotionAPI collectionQuery error Response code 400 (Bad Request)
23:53:45.076 > Build error occurred
23:53:45.078 TypeError: Cannot convert undefined or null to object
23:53:45.079 at Function.values (<anonymous>)
23:53:45.079 at getAllPageIds (/vercel/path0/.next/server/chunks/272.js:37:12)
23:53:45.079 at getAllPosts (/vercel/path0/.next/server/chunks/272.js:186:21)
23:53:45.082 at processTicksAndRejections (internal/process/task_queues.js:95:5)
23:53:45.082 at async getStaticPaths (/vercel/path0/.next/server/pages/tag/[tag].js:54:17)
23:53:45.082 at async buildStaticPaths (/vercel/path0/node_modules/next/dist/build/utils.js:472:31)
23:53:45.083 at async /vercel/path0/node_modules/next/dist/build/utils.js:615:119
23:53:45.083 at async Span.traceAsyncFn (/vercel/path0/node_modules/next/dist/telemetry/trace/trace.js:60:20) {
23:53:45.083 type: 'TypeError'
23:53:45.083 }
他にも困ってる人がいそうだったので、原因つきとめてプルリクエスト出した。
Cloud Build + Cypressつづき
前回 Cloud Build でビルドしようとしたら、依存しているモジュールが node:14 の docker image に入ってないというエラーが出たので、今日はそれの解消。
gcloud cli のアップデートが来ていたのでアップデートからはじめた
$ gcloud auth list
$ gcloud components update
$ gcloud config configurations list
NAME IS_ACTIVE ACCOUNT PROJECT COMPUTE_DEFAULT_ZONE COMPUTE_DEFAULT_REGION
default True hisasann25@gmail.com cloudbuild-sample
再度 GCP 上でトリガーから実行を選んで実行したら想定してたエラーが出た
Step #3: Error: spawn Xvfb ENOENT
Step #3:
Step #3: ----------
Step #3:
Step #3: Platform: linux (Debian - 9.13)
Step #3: Cypress Version: 8.4.1
Step #3: npm ERR! code ELIFECYCLE
OKOK、だいじょうぶだ。
$ gcloud builds submit --config cloudbuild.yaml
以下のように
cloudbuild.yaml
を作ってみたが、エラーが出た。steps:
# lint and test
- name: node:14
entrypoint: yarn
args: ['install']
- name: node:14
entrypoint: yarn
args: ['run', 'lint']
- name: node:14
entrypoint: yarn
args: ['test']
# install dependencies
- id: install-dependencies
name: node:14
entrypoint: yarn
args: ['install']
# run cypress
- name: cypress/included:8.5.0
entrypoint: 'yarn'
args: ['run', 'ci']
The cypress npm package is installed, but the Cypress binary is missing.
We expected the binary to be installed here: /root/.cache/Cypress/4.8.0/Cypress/Cypress
Reasons it may be missing:
- You're caching 'node_modules' but are not caching this path: /root/.cache/Cypress
- You ran 'npm install' at an earlier build step but did not persist: /root/.cache/Cypress
Properly caching the binary will fix this error and avoid downloading and unzipping Cypress.
Alternatively, you can run 'cypress install' to download the binary again.
で、キャッシュを意識してみる。
steps:
# install dependencies
- id: install-dependencies
name: node:14
entrypoint: npm
args: ['install']
env:
- 'CYPRESS_CACHE_FOLDER=/workspace/.tmp/Cypress'
# lint and test
- name: node:14
entrypoint: npm
args: ['run', 'lint']
- name: node:14
entrypoint: npm
args: ['test']
# run cypress
- name: cypress/included:8.5.0
entrypoint: 'npm'
args: ['run', 'ci']
env:
- 'CYPRESS_CACHE_FOLDER=/workspace/.tmp/Cypress'
options:
machineType: 'E2_HIGHCPU_8'
なぜか、 example を実行してて、そんなファイルを作業ディレクトリにはないのでどうやら root のキャッシュのところに勝手に配置しているっぽい。
Summary of all failing tests
Step #2: FAIL .tmp/Cypress/8.5.0/Cypress/resources/app/packages/example/cypress/integration/2-advanced-examples/traversal.spec.js
Step #2: ● Test suite failed to run
Step #2:
Step #2: ReferenceError: context is not defined
Step #2:
Step #2: 1 | /// <reference types="cypress" />
Step #2: 2 |
Step #2: > 3 | context('Traversal', () => {
Step #2: | ^
Step #2: 4 | beforeEach(() => {
Step #2: 5 | cy.visit('https://example.cypress.io/commands/traversal')
Step #2: 6 | })
Step #2:
Step #2: at Object.<anonymous> (.tmp/Cypress/8.5.0/Cypress/resources/app/packages/example/cypress/integration/2-advanced-examples/traversal.spec.js:3:1)
Step #2:
で、キャッシュの指定をなくした版でやってみた。
steps:
# install dependencies
- id: install-dependencies
name: node:14
entrypoint: npm
args: ['install']
# lint and test
- name: node:14
entrypoint: npm
args: ['run', 'lint']
- name: node:14
entrypoint: npm
args: ['test']
# run cypress
- name: cypress/included:8.5.0
entrypoint: 'npm'
args: ['run', 'ci']
options:
machineType: 'E2_HIGHCPU_8'
エラーがでないで e2e が通った!
余計なことは書かないほうが良かったのだろうか。
こちらを参考にしてた。
GCP 上で実行するために git push。
やったー!成功した。
次は、わざとコケさせてみる。
ちゃんとコケた!
戻してちゃんとコケないことを確認。
.gcloudignore
というのがあるようだが、今回はいいや。