-
Notifications
You must be signed in to change notification settings - Fork 279
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
Add integration tests to the CICD pipeline #1854
Conversation
|
.github/workflows/checks.yml
Outdated
pull_request: | ||
branches: [ main, master ] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Note: some of these are intentionally left as-is for testing purposes and will be removed before merging.
*/ | ||
export const createLongRunningApps = () => { | ||
const configs = [ | ||
{ id: 'react.vite.withEmailCodes', config: react.vite, env: envs.withEmailCodes }, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
❓ Is this id
just a string, or is it matching something?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just a string identifier you can use to boot a group of apps or a specific app, eg:
E2E_APP_ID=react.vite.* npm run test:integration:base -- --grep @generic
export const constants = { | ||
TMP_DIR: path.join(process.cwd(), '.temp_integration'), | ||
APPS_STATE_FILE: path.join(process.cwd(), '.temp_integration', 'state.json'), | ||
E2E_APP_URL: process.env.E2E_APP_URL, | ||
E2E_APP_ID: process.env.E2E_APP_ID, | ||
CLEANUP: !(process.env.CLEANUP === '0' || process.env.CLEANUP === 'false'), | ||
DEBUG: process.env.DEBUG === 'true' || process.env.DEBUG === '1', | ||
E2E_APP_PK: process.env.E2E_APP_PK, | ||
E2E_APP_SK: process.env.E2E_APP_SK, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
❓ Can we add an explanation for each of these constants?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Amazing job @nikosdouvlis!
This helpers allows the user to pick which applications they want to use to run the current test against. If no params are provided, the helper will iterate and run the test against all currently running applications. Example: - Start the e2e suite and use two React applications with different environments by running `APP_ID=react.vite.withEmailCodes,react.vite.withEmailLinks npm run test:integration -- sign-in-smoke` - Then pick the correct app by using `testAgainstRunningApps({ withEnv: [appConfigs.envs.withEmailCodes] })('sign in smoke test @Generic', ({ app }) => { ...` chore(repo): Bump dependencies chore(repo): Introduce appConfigs.longRunningApps.getById chore(repo): Rename `instances` to `envs` chore(repo): Rename `allEnabled` env to `withEmailCodes` chore(repo): Rename /adapters to /models chore(repo): Remove unused bundlewatch action We are using the bundlewatch github integration as outlined here: https://bundlewatch.io/#/getting-started/using-bundlewatch?id=setup-ci-auth-variables-needed-by-bundlewatch chore(repo): Rename integration/utils to integration/scripts To avoid confusing with the testUtils helpers chore(repo): Include /integration to eslint config chore(repo): Split index.ts into multiple files
publint lints npm packages to ensure widest compatibility across environments, such as Vite, Webpack, Rollup, Node.js, et. All supported lint rules can be found here: https://publint.dev/rules
The arethetypeswrong/cli analyzes npm package contents for issues with their TypeScript types, particularly ESM-related module resolution issues. For more details, visit https://github.com/arethetypeswrong/arethetypeswrong.github.io
Example: Running `APP_ID=react.vite.* npm run test:integration` will start all apps with a matching id chore(repo): Cleanup older tests
chore(repo): Build and upload all packages as artifacts chore(repo): Introduce integration workflow with cached dependencies
chore(repo): Improve concurrency checks to stop running workflows chore(repo): Use secrets: inherit to avoid duplication https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idsecretsinherit chore(repo): Fix depends-on chore(repo): Prefix integration-related env variables with E2E_ chore(repo): Extract reusable workflows into build-base and registry-base chore(repo): Add placeholder remix and nextjs integration scripts chore(repo): Add placeholder verdaccio step chore(repo): Re-introduce react.vite lockfile fix(repo): Correctly propagate repo secrets to reusable workflow chore(repo): Remove explicit Clerk dependencies from vite template chore(repo): Extract e2e-base as a reusable workflow chore(repo): Configure action runners using repo env chore(repo): Move unit tests into checks.yml
If we're spawning a detached process, we must completely ingore the cp's stdio, otherwise the cp will exit when the parent process exits. If we want to log the output of a detached process, we must do it manually by streaming the output to the file and reading the file from the parent process.
…tically control dependency versions instead of hard coding them
chore(repo): Run e2e suites but do not fail on error temporarily
chore(repo): Add --sig to yalc:all script chore(repo): Rename all-enabled to with-email-codes to be aligned with the codebase
chore(repo): Only runs workflows in clerkinc/javascript chore(repo): Combine build and Verdaccio publishing
This PR has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs. |
Description
See
integration/README.md
Note: Not to be merged yet as we need to add the required env variables to the
clerkinc/javascript
repo.Checklist
npm test
runs as expected.npm run build
runs as expected.Type of change
Packages affected
@clerk/clerk-js
@clerk/clerk-react
@clerk/nextjs
@clerk/remix
@clerk/types
@clerk/themes
@clerk/localizations
@clerk/clerk-expo
@clerk/backend
@clerk/clerk-sdk-node
@clerk/shared
@clerk/fastify
@clerk/chrome-extension
gatsby-plugin-clerk
build/tooling/chore