2021年9月29日

slug
2021-09-29
date
Sep 29, 2021
summary
CloudBuild、感謝、カセットプレイヤー
status
Published
tags
テック
音楽
type
Post
Property
notion image
notion image

Cloud Buildの素振り

 
サンプルコードを実行してみた。
がプロジェクトが選択されてないというエラーがでた。
GCP 何もわからないマンなので、仕組みがよくわかっていない。
 
gcloud をアップデートした。
$ ./google-cloud-sdk/install.sh
$ ./google-cloud-sdk/bin/gcloud init
 
$ git clone https://github.com/GoogleCloudBuild/cloud-console-sample-build && \
  cd cloud-console-sample-build && \
  gcloud builds submit --config cloudbuild.yaml
$ gcloud auth list
$ gcloud config set project プロジェクト名(aliasではない)
$ gcloud config configurations list
 
プロジェクトを GCP の画面から作って、その名前を指定して、
$ gcloud builds submit --config cloudbuild.yaml
をしたらうまくいった。
 
調子に乗って、 hisasann/nuxt-lint-ts-msw で実行してみたら
$ gcloud builds submit --config ./cloudbuild/lint_and_test.yaml
こんなエラーが出た。
Step #1: Oops! Something went wrong! :(
Step #1:
Step #1: ESLint: 7.32.0
Step #1:
Step #1: Error: Cannot read .eslintignore file: /workspace/.gitignore
Step #1: Error: ENOENT: no such file or directory, open '/workspace/.gitignore'
Step #1:     at Object.openSync (fs.js:497:3)
Step #1:     at Object.readFileSync (fs.js:393:35)
Step #1:     at readFile (/workspace/node_modules/@eslint/eslintrc/lib/config-array-factory.js:142:15)
Step #1:     at loadESLintIgnoreFile (/workspace/node_modules/@eslint/eslintrc/lib/config-array-factory.js:270:16)
Step #1:     at ConfigArrayFactory.loadESLintIgnore (/workspace/node_modules/@eslint/eslintrc/lib/config-array-factory.js:559:32)
Step #1:     at createCLIConfigArray (/workspace/node_modules/@eslint/eslintrc/lib/cascading-config-array-factory.js:165:34)
Step #1:     at new CascadingConfigArrayFactory (/workspace/node_modules/@eslint/eslintrc/lib/cascading-config-array-factory.js:243:29)
Step #1:     at new CLIEngine (/workspace/node_modules/eslint/lib/cli-engine/cli-engine.js:569:36)
Step #1:     at new ESLint (/workspace/node_modules/eslint/lib/eslint/eslint.js:432:27)
Step #1:     at Object.execute (/workspace/node_modules/eslint/lib/cli.js:292:24)
Step #1: npm ERR! code ELIFECYCLE
Step #1: npm ERR! errno 2
Step #1: npm ERR! nuxt-lint-ts-msw@1.0.0 lint:js: `eslint --ext .js,.ts,.vue --ignore-path .gitignore .`
Step #1: npm ERR! Exit status 2
S
このあたりを読んでいたが、 --ignore-path .gitignore するのやめて .eslintignore を配置してみよう。
 
$ gcloud builds submit --config ./cloudbuild/lint_and_test.yaml
 
エラーが解消されたぞ!
 
Cloud Build 上で yaml ファイルを 自動検出 ではなく指定で /cloudbuild としていたらどうやらパス指定は Invalid Argument のようだ。
なので cloudbuild.yaml にリネームした。
こうしたらビルドが走るようになった。
 

server起動しつつe2eの実行をコマンド一発でやる

これだった。
 

cypress:run でコケた

> nuxt-lint-ts-msw@1.0.0 cypress:run /workspace
> cypress run

It looks like this is your first time using Cypress: 8.4.1

[STARTED] Task without title.
[FAILED] Your system is missing the dependency: Xvfb
[FAILED] 
[FAILED] Install Xvfb and run Cypress again.
[FAILED] 
[FAILED] Read our documentation on dependencies for more information:
[FAILED] 
[FAILED] https://on.cypress.io/required-dependencies
[FAILED] 
[FAILED] If you are using Docker, we provide containers with all required dependencies installed.
[FAILED] 
[FAILED] ----------
[FAILED] 
[FAILED] Error: spawn Xvfb ENOENT
[FAILED] 
[FAILED] ----------
[FAILED] 
[FAILED] Platform: linux (Debian - 9.13)
[FAILED] Cypress Version: 8.4.1
Your system is missing the dependency: Xvfb

Install Xvfb and run Cypress again.

Read our documentation on dependencies for more information:

https://on.cypress.io/required-dependencies

If you are using Docker, we provide containers with all required dependencies installed.
どうやら結構依存してるモジュールがあるようだ。
 
$ docker pull cypress/included:8.5.0
 
 
 
便利だ。
 
今日はここまで。
node:14 のイメージだと Cypress が依存しているモジュールが入っていないので動かないので、何かしら別のイメージ、または docker images を自作するのか cloudbuild.yaml が動くようにしたい。
ググってもあまり情報はなさそうなので zenn に書くか。
 
 

© Yoshiyuki Hisamatsu 2021 - 2022