cypress-io/[email protected] -> cypress-io/cypress@3 orb へバージョンアップにあげてみました
けっこう手こずりました
.circleci/config.yml
が
version: 2.1
orbs:
cypress: cypress-io/[email protected]
executors:
node_executor:
docker:
- image: 'cypress/base:18.14.1'
workflows:
build:
jobs:
- cypress/run:
start: npm start
wait-on: 'http://localhost:8000'
executor: node_executor
から変更していきます
新しめの Gatsby を動かすのに使っていたため、Node 18 以降が必要で、executor を変えてました
npm start
してから立ち上がるまで時間がかかるため、wait-on
で立ち上がるのを待つようにしてました
公式ドキュメント https://circleci.com/developer/orbs/orb/cypress-io/cypress
を眺めるところから始めました
wait-on
をするところがないので、自分で変えていかないと、ということで
wait-on
で npm start
が立ち上がりきるのを待つhttps://docs.cypress.io/guides/continuous-integration/introduction#Boot-your-server
の公式ドキュメントの通り、
start-server-and-test を使うことにしました
package.json
に script を追加
{
"scripts": {
"start": "gatsby develop -H 0.0.0.0",
"test": "cypress run",
"ci": "start-server-and-test start http://localhost:8000 test"
}
}
npm run ci
を CI で動かすようにして解決
公式ドキュメント https://circleci.com/developer/orbs/orb/cypress-io/cypress
commands のところのサンプル
version: '2.1'
orbs:
cypress: cypress-io/cypress@3
jobs:
install-and-persist:
executor: cypress/default
steps:
- cypress/install
- persist_to_workspace:
paths:
- .cache/Cypress
- project
root: ~/
run-tests-in-parallel:
executor: cypress/default
parallelism: 8
steps:
- attach_workspace:
at: ~/
- cypress/run-tests:
cypress-command: npx cypress run --component --parallel --record
workflows:
use-my-orb:
jobs:
- install-and-persist:
name: Install & Persist To Workspace
- run-tests-in-parallel:
name: Run Tests in Parallel
requires:
- Install & Persist To Workspace
を参考に executor を変えていきました
結果、こんな感じです
version: 2.1
orbs:
cypress: cypress-io/cypress@3
executors:
docker:
description: |
Single Docker container used to run Cypress Tests
docker:
- image: cimg/node:<< parameters.node-version >>-browsers
parameters:
node-version:
default: '18.14.1'
description: |
The version of Node to run your tests with.
type: string
jobs:
install:
executor: docker
steps:
- cypress/install
- persist_to_workspace:
paths:
- .cache/Cypress
- project
root: ~/
run-tests:
executor: docker
steps:
- attach_workspace:
at: ~/
- cypress/run-tests:
cypress-command: npm run ci
workflows:
workflow:
jobs:
- install:
name: Install
- run-tests:
name: Run Tests
requires:
- Install
これで無事動くようになりました
Orb は Cypress のコマンドをいい感じにまとめたものなので Orb Source を読み解いていくしかないですね