Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
117 commits
Select commit Hold shift + click to select a range
dc7ad93
feat: AsyncOperationQueue supports remote executing
chengcyber Feb 2, 2023
7b8a521
feat: cobuildlock & cobuildconfiguration
chengcyber Feb 9, 2023
2382a94
chore
chengcyber Feb 10, 2023
fedf61a
fix: async queue
chengcyber Feb 10, 2023
1678c2c
feat: registry of cobuild lock provider & redis cobuild plugin
chengcyber Feb 10, 2023
c2bb3e3
chore
chengcyber Feb 10, 2023
e3839da
feat: rush-redis-cobuild-plugin-integration-test
chengcyber Feb 15, 2023
dbf758f
fix: rush redis cobuild
chengcyber Feb 16, 2023
fe0a50c
fix: changes after rebase
chengcyber Feb 16, 2023
44a1e80
fix: cobuild integration test
chengcyber Feb 17, 2023
662b5ef
:memo: update readme
chengcyber Feb 17, 2023
1a5085f
chore: rush change
chengcyber Feb 17, 2023
d0871f4
chore: tasks.json
chengcyber Feb 17, 2023
c40bfc9
feat: allow failing build to be cached when cobuilding
chengcyber Feb 17, 2023
17754b4
feat: cobuild context id
chengcyber Feb 17, 2023
7c2ec9e
feat: add RUSH_COBUILD_CONTEXT_ID environment variable
chengcyber Feb 17, 2023
64fd7a4
:memo:
chengcyber Feb 17, 2023
e4cfabc
fix: test
chengcyber Feb 17, 2023
e2353fc
chore
chengcyber Feb 20, 2023
27f78f0
chore
chengcyber Feb 22, 2023
afd26fc
refact(ShellOperationRunner): extract build cache related logic to pl…
chengcyber Feb 28, 2023
1daf2bb
chore: improve onComplete in AsyncOperationQueue
chengcyber Mar 14, 2023
6d250a4
chore: use setInterval in PeriodicCallback
chengcyber Mar 14, 2023
00b87cb
refact: CacheableOperationPlugin
chengcyber Mar 14, 2023
67b3c45
chore: store executionQueue in OperationExecutionManager
chengcyber Mar 14, 2023
3649b52
feat: add an unassigned operation in AsyncOperationQueue
chengcyber Mar 14, 2023
c62b646
feat: expand redis-cobuild-plugin configuration with env vars
chengcyber Mar 14, 2023
6f29910
feat: RUSH_COBUILD_CONTEXT_ID is required to opt into running with co…
chengcyber Mar 14, 2023
8b2933a
:memo:
chengcyber Mar 14, 2023
bb6c51a
chore
chengcyber Mar 15, 2023
48cd671
Merge remote-tracking branch 'origin/main' into feat-cobuild
chengcyber Mar 15, 2023
6014f5d
chore: update snapshots
chengcyber Mar 15, 2023
e3ce661
Apply suggestions from code review
chengcyber Mar 17, 2023
7e8d793
chore: add catch and reanble no-floating-promise rule
chengcyber Mar 17, 2023
3f40c36
chore: remove DOM lib in tsconfig.json
chengcyber Mar 17, 2023
1cdf9a5
chore: remove context id pattern property in Schema
chengcyber Mar 17, 2023
130bb55
chore: comments the usage of unassigned operation
chengcyber Mar 17, 2023
796aa5d
chore: get projectChangeAnalyzer and selectedPhases from createContext
chengcyber Mar 20, 2023
e0781cd
feat(rush-redis-cobuild-plugin): passwordEnvrionmentVariable
chengcyber Mar 20, 2023
0903eff
feat: always define build cache context, whether shell operation or not
chengcyber Mar 20, 2023
cce3342
refact: before/afterExecuteOperaiton hook
chengcyber Mar 20, 2023
2e99bbf
Merge remote-tracking branch 'origin/main' into feat-cobuild
chengcyber Mar 21, 2023
1045680
fix: async operation queue in non cobuild
chengcyber Mar 23, 2023
b2c2e6c
:memo:
chengcyber Mar 27, 2023
51bef48
chore: fix missing exports
chengcyber Apr 3, 2023
4eadd4b
chore: code changes according to code review
chengcyber Apr 3, 2023
30bcc9e
Merge remote-tracking branch 'origin/main' into feat-cobuild
chengcyber Apr 3, 2023
a8950a0
feat: cobuild leaf project log only allowed
chengcyber Apr 8, 2023
1c2cae9
Merge remote-tracking branch 'origin/main' into feat-cobuild
chengcyber Apr 11, 2023
082f350
chore
chengcyber Apr 11, 2023
c2446d2
Merge remote-tracking branch 'remotes/origin/main' into feat-cobuild
octogonz Apr 22, 2023
820aa3c
Fix merge conflict
octogonz Apr 22, 2023
9c32bf8
chore: connect/disconnect lock provider only cobuild enabled
chengcyber Apr 22, 2023
33182ed
Merge remote-tracking branch 'origin/main' into feat-cobuild
chengcyber May 15, 2023
6358549
feat: cobuild lock provider factory can return promise
chengcyber May 15, 2023
98aeff3
feat: only create cobuild lock provider if needed
chengcyber May 15, 2023
d7a5062
Merge remote-tracking branch 'origin/main' into feat-cobuild
chengcyber May 26, 2023
b0f9700
feat: cobuild runner id
chengcyber May 26, 2023
6f16f27
fix: test
chengcyber May 26, 2023
b1178be
feat: disjoint-set
chengcyber Jun 28, 2023
62930b2
Merge remote-tracking branch 'origin/main' into feat-cobuild
chengcyber Jun 28, 2023
9a8fc06
feat: disjointSet getAllSets
chengcyber Jul 10, 2023
e3f116c
refact: clustering operations in cobuilds
chengcyber Jul 11, 2023
b08da17
chore: migrate redis cobuild test repo to use phases
chengcyber Jul 12, 2023
76e968b
:memo:
chengcyber Jul 12, 2023
0b1bb90
chore: comment
chengcyber Jul 19, 2023
e46502c
chore: count on cobuild context id when calculating log only build cache
chengcyber Jul 24, 2023
966b146
Merge remote-tracking branch 'origin/main' into feat-cobuild
chengcyber Aug 2, 2023
8392121
Merge remote-tracking branch 'origin/main' into feat-cobuild
chengcyber Aug 8, 2023
adac6eb
Apply suggestions from code review
chengcyber Aug 8, 2023
ab678c8
chore: lower the build time of build in the cobuild sandbox repo
chengcyber Aug 8, 2023
7c152ee
chore: housekeeping after suggestion commit
chengcyber Aug 8, 2023
017d01a
chore: remove change json for rush-redis-cobuild-plugin
chengcyber Aug 8, 2023
9b057d0
chore: add a feature note link to change json
chengcyber Aug 8, 2023
a1f232a
chore: remove useless eslint-disable comment
chengcyber Aug 8, 2023
da224ff
chore: set exitCode to 1 before running the logic
chengcyber Aug 8, 2023
c8537a0
chore: merge the assignment
chengcyber Aug 8, 2023
80e39f5
chore: move destroyLockProviderAsync in finally block
chengcyber Aug 8, 2023
70c1add
chore: wrap the lifetime of project writable object between beforeExe…
chengcyber Aug 8, 2023
32b397b
chore: cacheable logic taps to beforeExecuteOperations instead of cre…
chengcyber Aug 8, 2023
4ea76ae
chore: sort grouped operations of each disjoin set
chengcyber Aug 8, 2023
629d864
chore: update comment for isSkipAllowed
chengcyber Aug 8, 2023
c1e8adb
chore: refactor beforeExecute hook of runner to bail hook
chengcyber Aug 8, 2023
80a7990
chore: revert back context.stopWatch to IStopwatchResult
chengcyber Aug 8, 2023
9a5b35e
chore: hoist function definition of beforeExecuteCallback function
chengcyber Aug 8, 2023
d200883
Merge remote-tracking branch 'origin/main' into feat-cobuild
chengcyber Aug 8, 2023
6886fb9
Merge remote-tracking branch 'remotes/origin/main' into feat-cobuild
octogonz Aug 8, 2023
eda3e8e
rush update
octogonz Aug 8, 2023
d7ac5f1
refactor: use the operation-level to handle cache interaction
chengcyber Aug 10, 2023
1890144
fix: missing export
chengcyber Aug 10, 2023
fceb88b
fix: Noop command
chengcyber Aug 10, 2023
3c1978b
fix: Noop command
chengcyber Aug 10, 2023
b61235b
feat: throw clear error when writing in the closed project log writer
chengcyber Aug 11, 2023
ba58307
chore: use runner.name to sort operation execution records
chengcyber Aug 11, 2023
19206d2
fix: cache execution logic
chengcyber Aug 11, 2023
a052457
Merge remote-tracking branch 'origin/main' into feat-cobuild
chengcyber Aug 14, 2023
6ad5627
Merge remote-tracking branch 'remotes/origin/main' into feat-cobuild
octogonz Aug 16, 2023
9b6b275
Fix build failure
octogonz Aug 16, 2023
c3f9565
rush change
octogonz Aug 16, 2023
32b01df
Regenerate README.md
octogonz Aug 16, 2023
42345f1
TEMPORARY - attempt to highlight a regression.
iclanton Aug 17, 2023
616dee2
fix: log cache/restore in Windows OS
chengcyber Aug 24, 2023
219bc4d
feat: report unhandled exception from afterExecutionOperation
chengcyber Aug 24, 2023
f2539ac
feat: clean up the logReadStream
chengcyber Aug 24, 2023
a4fc098
Merge remote-tracking branch 'origin/main' into feat-cobuild
chengcyber Aug 24, 2023
1df42dd
chore: rush change
chengcyber Aug 24, 2023
5cd047c
Revert "TEMPORARY - attempt to highlight a regression."
octogonz Aug 24, 2023
f5573d2
[rush] Separate Skip and Build Cache, add flag
dmichon-msft Aug 30, 2023
d0a40f1
Merge pull request #7 from dmichon-msft/build-cache-opt-in
chengcyber Aug 30, 2023
eb9a21e
fix: skip cacheable beforeExecution when runner is not cacheable
chengcyber Aug 30, 2023
e65207c
feat: try restore cache once when missing cobuild completed state
chengcyber Aug 30, 2023
996a6b0
Handle async queue being empty
dmichon-msft Aug 30, 2023
655d49c
Merge branch 'main' into feat-cobuild
iclanton Sep 1, 2023
5c659f6
Update changefile.
iclanton Sep 1, 2023
d96b30b
Rename "cobuildEnabled" to "cobuildFeatureEnabled" in "cobuild.json"
iclanton Sep 1, 2023
ff62859
Remove the RUSH_COBUILD_ENABLED env var for now.
iclanton Sep 1, 2023
fac1898
Update the workspace test pnpm-lock.yaml.
iclanton Sep 1, 2023
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
8 changes: 8 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,14 @@ jspm_packages/
.idea/
*.iml

# Visual Studio Code
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
!*.code-workspace

# Rush temporary files
common/deploy/
common/temp/
Expand Down
3 changes: 3 additions & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,9 @@ libraries/rush-lib/assets/rush-init/
# These are intentionally invalid files
libraries/heft-config-file/src/test/errorCases/invalidJson/config.json

# common scripts in sandbox repo
build-tests/rush-redis-cobuild-plugin-integration-test/sandbox/repo/common/scripts/

# We'll consider enabling this later; Prettier reformats code blocks, which affects end-user content
*.md

Expand Down
20 changes: 20 additions & 0 deletions .vscode/redis-cobuild.code-workspace
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"folders": [
{
"name": "rush-redis-cobuild-plugin-integration-test",
"path": "../build-tests/rush-redis-cobuild-plugin-integration-test"
},
{
"name": "rush-redis-cobuild-plugin",
"path": "../rush-plugins/rush-redis-cobuild-plugin"
},
{
"name": "rush-lib",
"path": "../libraries/rush-lib"
},
{
"name": ".vscode",
"path": "../.vscode"
}
]
}
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,7 @@ These GitHub repositories provide supplementary resources for Rush Stack:
| [/rush-plugins/rush-amazon-s3-build-cache-plugin](./rush-plugins/rush-amazon-s3-build-cache-plugin/) | [![npm version](https://badge.fury.io/js/%40rushstack%2Frush-amazon-s3-build-cache-plugin.svg)](https://badge.fury.io/js/%40rushstack%2Frush-amazon-s3-build-cache-plugin) | | [@rushstack/rush-amazon-s3-build-cache-plugin](https://www.npmjs.com/package/@rushstack/rush-amazon-s3-build-cache-plugin) |
| [/rush-plugins/rush-azure-storage-build-cache-plugin](./rush-plugins/rush-azure-storage-build-cache-plugin/) | [![npm version](https://badge.fury.io/js/%40rushstack%2Frush-azure-storage-build-cache-plugin.svg)](https://badge.fury.io/js/%40rushstack%2Frush-azure-storage-build-cache-plugin) | | [@rushstack/rush-azure-storage-build-cache-plugin](https://www.npmjs.com/package/@rushstack/rush-azure-storage-build-cache-plugin) |
| [/rush-plugins/rush-http-build-cache-plugin](./rush-plugins/rush-http-build-cache-plugin/) | [![npm version](https://badge.fury.io/js/%40rushstack%2Frush-http-build-cache-plugin.svg)](https://badge.fury.io/js/%40rushstack%2Frush-http-build-cache-plugin) | | [@rushstack/rush-http-build-cache-plugin](https://www.npmjs.com/package/@rushstack/rush-http-build-cache-plugin) |
| [/rush-plugins/rush-redis-cobuild-plugin](./rush-plugins/rush-redis-cobuild-plugin/) | [![npm version](https://badge.fury.io/js/%40rushstack%2Frush-redis-cobuild-plugin.svg)](https://badge.fury.io/js/%40rushstack%2Frush-redis-cobuild-plugin) | | [@rushstack/rush-redis-cobuild-plugin](https://www.npmjs.com/package/@rushstack/rush-redis-cobuild-plugin) |
| [/rush-plugins/rush-serve-plugin](./rush-plugins/rush-serve-plugin/) | [![npm version](https://badge.fury.io/js/%40rushstack%2Frush-serve-plugin.svg)](https://badge.fury.io/js/%40rushstack%2Frush-serve-plugin) | | [@rushstack/rush-serve-plugin](https://www.npmjs.com/package/@rushstack/rush-serve-plugin) |
| [/webpack/hashed-folder-copy-plugin](./webpack/hashed-folder-copy-plugin/) | [![npm version](https://badge.fury.io/js/%40rushstack%2Fhashed-folder-copy-plugin.svg)](https://badge.fury.io/js/%40rushstack%2Fhashed-folder-copy-plugin) | [changelog](./webpack/hashed-folder-copy-plugin/CHANGELOG.md) | [@rushstack/hashed-folder-copy-plugin](https://www.npmjs.com/package/@rushstack/hashed-folder-copy-plugin) |
| [/webpack/loader-load-themed-styles](./webpack/loader-load-themed-styles/) | [![npm version](https://badge.fury.io/js/%40microsoft%2Floader-load-themed-styles.svg)](https://badge.fury.io/js/%40microsoft%2Floader-load-themed-styles) | [changelog](./webpack/loader-load-themed-styles/CHANGELOG.md) | [@microsoft/loader-load-themed-styles](https://www.npmjs.com/package/@microsoft/loader-load-themed-styles) |
Expand Down Expand Up @@ -169,6 +170,7 @@ These GitHub repositories provide supplementary resources for Rush Stack:
| [/build-tests/rush-amazon-s3-build-cache-plugin-integration-test](./build-tests/rush-amazon-s3-build-cache-plugin-integration-test/) | Tests connecting to an amazon S3 endpoint |
| [/build-tests/rush-lib-declaration-paths-test](./build-tests/rush-lib-declaration-paths-test/) | This project ensures all of the paths in rush-lib/lib/... have imports that resolve correctly. If this project builds, all `lib/**/*.d.ts` files in the `@microsoft/rush-lib` package are valid. |
| [/build-tests/rush-project-change-analyzer-test](./build-tests/rush-project-change-analyzer-test/) | This is an example project that uses rush-lib's ProjectChangeAnalyzer to |
| [/build-tests/rush-redis-cobuild-plugin-integration-test](./build-tests/rush-redis-cobuild-plugin-integration-test/) | Tests connecting to an redis server |
| [/build-tests/set-webpack-public-path-plugin-webpack4-test](./build-tests/set-webpack-public-path-plugin-webpack4-test/) | Building this project tests the set-webpack-public-path-plugin using Webpack 4 |
| [/build-tests/ts-command-line-test](./build-tests/ts-command-line-test/) | Building this project is a regression test for ts-command-line |
| [/libraries/rush-themed-ui](./libraries/rush-themed-ui/) | Rush Component Library: a set of themed components for rush projects |
Expand Down

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
// This is a workaround for https://github.com/eslint/eslint/issues/3458
require('@rushstack/eslint-config/patch/modern-module-resolution');

module.exports = {
extends: ['@rushstack/eslint-config/profile/node'],
parserOptions: { tsconfigRootDir: __dirname }
};
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
redis-data/dump.rdb
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
{
"version": "2.0.0",
"tasks": [
{
"type": "shell",
"label": "cobuild",
"dependsOrder": "sequence",
"dependsOn": ["update", "_cobuild"],
"problemMatcher": []
},
{
"type": "shell",
"label": "_cobuild",
"dependsOn": ["build 1", "build 2"],
"problemMatcher": []
},
{
"type": "shell",
"label": "update",
"command": "node ../../lib/runRush.js update",
"problemMatcher": [],
"presentation": {
"echo": true,
"reveal": "always",
"focus": false,
"panel": "dedicated",
"showReuseMessage": true,
"clear": false
},
"options": {
"cwd": "${workspaceFolder}/sandbox/repo"
}
},
{
"type": "shell",
"label": "build 1",
"command": "node ../../lib/runRush.js --debug cobuild --timeline --parallelism 1 --verbose",
"problemMatcher": [],
"options": {
"cwd": "${workspaceFolder}/sandbox/repo",
"env": {
"RUSH_COBUILD_CONTEXT_ID": "integration-test",
"RUSH_COBUILD_RUNNER_ID": "runner1",
"RUSH_COBUILD_LEAF_PROJECT_LOG_ONLY_ALLOWED": "1",
"REDIS_PASS": "redis123"
}
},
"presentation": {
"echo": true,
"reveal": "always",
"focus": false,
"panel": "dedicated",
"showReuseMessage": true,
"clear": true
},
"group": "build"
},
{
"type": "shell",
"label": "build 2",
"command": "node ../../lib/runRush.js --debug cobuild --timeline --parallelism 1 --verbose",
"problemMatcher": [],
"options": {
"cwd": "${workspaceFolder}/sandbox/repo",
"env": {
"RUSH_COBUILD_CONTEXT_ID": "integration-test",
"RUSH_COBUILD_RUNNER_ID": "runner2",
"RUSH_COBUILD_LEAF_PROJECT_LOG_ONLY_ALLOWED": "1",
"REDIS_PASS": "redis123"
}
},
"presentation": {
"echo": true,
"reveal": "always",
"focus": false,
"panel": "dedicated",
"showReuseMessage": true,
"clear": true
},
"group": "build"
}
]
}
Loading