Skip to content
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

chore: use Nx affected tasks in CI #5110

Merged
merged 18 commits into from
Apr 30, 2024
Merged

Conversation

thaisguigon
Copy link
Contributor

@thaisguigon thaisguigon commented Apr 22, 2024

Closes #5097

  • Uses "nx affected" to detect what projects need to be checked in the current PR (for now, ci-front and ci-server workflows only).
  • Caches results of certain tasks (lint, typecheck, test, storybook:build) when a PR pipeline runs. The next runs of the same PR's pipeline will then be able to reuse the PR's task cache to execute tasks faster.
  • Caches Yarn's cache folder to install dependencies faster in CI jobs.
  • Rewrites the node modules cache/install steps as a custom, reusable Github action.
  • Distributes ci-front jobs with a "matrix" strategy.
  • Sets common tasks config at the root nx.json. For instance, to activate the typecheck task in a project, add typecheck: {} to its project.json and it'll use the default config set in nx.json for the typecheck task. Options can be overridden in each individual project.json if needed.
  • Adds "scope" tags to some projects: scope:frontend, scope:backend, scope:shared. An eslint rule ensures that scope:frontend only depends on scope:frontent or scope:shared projects, same for scope:backend. These tags are used by nx affected to filter projects by scope and generates different task cache keys according to the requested scope.
  • Enables checks for twenty-emails in the ci-server workflow.

@thaisguigon thaisguigon marked this pull request as ready for review April 22, 2024 19:10
Copy link

github-actions bot commented Apr 22, 2024

Warnings
⚠️

Changes were made to package.json, but not to yarn.lock - Perhaps you need to run yarn install?

Generated by 🚫 dangerJS against 4e32463

@thaisguigon thaisguigon force-pushed the chore/use-nx-affected-in-ci branch 26 times, most recently from 10d834d to b7424ca Compare April 23, 2024 18:05
@Freebios
Copy link
Contributor

Workflow part LGTM :)

@thaisguigon thaisguigon force-pushed the chore/use-nx-affected-in-ci branch from 008652b to 93bcaa8 Compare April 25, 2024 10:04
@charlesBochet charlesBochet self-assigned this Apr 25, 2024
@charlesBochet charlesBochet merged commit c193663 into main Apr 30, 2024
15 checks passed
@charlesBochet charlesBochet deleted the chore/use-nx-affected-in-ci branch April 30, 2024 14:28
arnavsaxena17 pushed a commit to arnavsaxena17/twenty that referenced this pull request Oct 6, 2024
Closes twentyhq#5097

- Uses "nx affected" to detect what projects need to be checked in the
current PR (for now, `ci-front` and `ci-server` workflows only).
- Caches results of certain tasks (`lint`, `typecheck`, `test`,
`storybook:build`) when a PR pipeline runs. The next runs of the same
PR's pipeline will then be able to reuse the PR's task cache to execute
tasks faster.
- Caches Yarn's cache folder to install dependencies faster in CI jobs.
- Rewrites the node modules cache/install steps as a custom, reusable
Github action.
- Distributes `ci-front` jobs with a "matrix" strategy.
- Sets common tasks config at the root `nx.json`. For instance, to
activate the `typecheck` task in a project, add `typecheck: {}` to its
`project.json` and it'll use the default config set in `nx.json` for the
`typecheck` task. Options can be overridden in each individual
`project.json` if needed.
- Adds "scope" tags to some projects: `scope:frontend`, `scope:backend`,
`scope:shared`. An eslint rule ensures that `scope:frontend` only
depends on `scope:frontent` or `scope:shared` projects, same for
`scope:backend`. These tags are used by `nx affected` to filter projects
by scope and generates different task cache keys according to the
requested scope.
- Enables checks for twenty-emails in the `ci-server` workflow.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Timebox] Use Nx affected feature in CI
3 participants