Skip to content

Do not install playwright in CI #12607

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
May 8, 2025
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@
"yargs": "^17.0.1"
},
"scripts": {
"prepare": "gulp prepare && husky && playwright install --with-deps",
"prepare": "gulp prepare && husky && node scripts/isCI.js || playwright install --with-deps",
"start": "node server.js",
"start-public": "node server.js --public",
"build": "gulp build",
Expand Down
21 changes: 21 additions & 0 deletions scripts/isCI.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
// Logic and values based on is-ci https://github.com/watson/is-ci/blob/master/bin.js
// which uses ci-info under the hood https://github.com/watson/ci-info/blob/master/index.js
// This just extracts the specific parts we need without adding more dependencies

const { env } = process;

const isCI = !!(
env.CI !== "false" && // Bypass all checks if CI env is explicitly set to 'false'
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

While I do appreciate the robust approach, why did we decide to cover all possible types of CI providers? Just remember that we'd need to maintain this script going forward, and I could see it becoming out of date quickly.

Copy link
Contributor Author

@jjspace jjspace May 8, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@ggetz it was simply because the library I was copying from already had them all and it was the same amount of effort (right now) to copy all of them vs copying one. I can remove them if you think it's better for us long term to focus on our use case, can re-add if we ever need to

(env.BUILD_ID || // Jenkins, Cloudbees
env.BUILD_NUMBER || // Jenkins, TeamCity
env.CI || // Travis CI, CircleCI, Cirrus CI, Gitlab CI, Appveyor, CodeShip, dsari, Cloudflare Pages
env.CI_APP_ID || // Appflow
env.CI_BUILD_ID || // Appflow
env.CI_BUILD_NUMBER || // Appflow
env.CI_NAME || // Codeship and others
env.CONTINUOUS_INTEGRATION || // Travis CI, Cirrus CI
env.RUN_ID || // TaskCluster, dsari
false)
);

process.exit(isCI ? 0 : 1);