-
Notifications
You must be signed in to change notification settings - Fork 720
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 native Windows build script #1540
Conversation
Signed-off-by: Ana Hobden <operator@hoverbear.org>
I don't think I can review this sorry, I don't know the powershell syntax, nor PD. |
Ok, sorry. :) |
@disksing I don't really understand how this PR is causing the CI to be red. Could you PTAL? |
@Hoverbear Tests are not stable. Not your fault :) |
Codecov Report
@@ Coverage Diff @@
## master #1540 +/- ##
==========================================
+ Coverage 67.82% 67.83% +0.01%
==========================================
Files 159 159
Lines 15777 15777
==========================================
+ Hits 10701 10703 +2
+ Misses 4117 4106 -11
- Partials 959 968 +9
Continue to review full report at Codecov.
|
* tiny clean up code (#1526) Signed-off-by: Ryan Leung <rleungx@gmail.com> * config: enable use region storage by default (#1524) * config: default enable use region storage * schedulers: let hot region balance not affect by balance-region-scheduler-limit (#1522) Signed-off-by: nolouch <nolouch@gmail.com> * log: do not add stack to error log (#1532) * *: replace gofail with pingcap/failpoint (#1534) * *: replace gofail with pingcap/failpoint Signed-off-by: disksing <i@disksing.com> * fix typo Signed-off-by: disksing <i@disksing.com> * fix typo Signed-off-by: disksing <i@disksing.com> * Update server/cluster_test.go Co-Authored-By: Lonng <chris@lonng.org> * Update server/tso.go Co-Authored-By: Lonng <chris@lonng.org> * Update server/tso.go Co-Authored-By: Lonng <chris@lonng.org> * check enable failpoint result Signed-off-by: disksing <i@disksing.com> * Update server/cluster.go Co-Authored-By: Lonng <chris@lonng.org> * server: set timeout for MoveLeader (#1533) * server: set timeout for MoveLeader Signed-off-by: disksing <i@disksing.com> * client, server: add ScanRegions gRPC protocol support (#1535) * client, server: support ScanRegions gRPC protocol Signed-off-by: disksing <i@disksing.com> * schedule: actively push operator (#1536) * schedule: actively push operator Signed-off-by: nolouch <nolouch@gmail.com> * *: update some dead links (#1543) * update links Signed-off-by: Ryan Leung <rleungx@gmail.com> * Add windows build script (#1540) Signed-off-by: Ana Hobden <operator@hoverbear.org> * fix operator timeout metrics (#1541) Signed-off-by: Ryan Leung <rleungx@gmail.com> * *:Rollback config in store when kv.persist failed (#1476) * tests: independent region sync test (#1545) * tests: independent syncer region test Signed-off-by: nolouch <nolouch@gmail.com> * schedule: operator limit for stores (#1474) * add store limit for scheduling Signed-off-by: Ryan Leung <rleungx@gmail.com> * statistic: add the statistic of flow (#1548) * store_statistic: add the statistic of flow Signed-off-by: nolouch <nolouch@gmail.com>
Interestingly the |
Indeed! You can run it directly in wsl2 too. :) You could also launch it from CMD. |
I believe etcd-io/bbolt#144 is already fixed in WSL 2 so we could keep using the Linux version there 😅 |
Sure! |
What problem does this PR solve?
Adds native Windows build script for developer usage.
It's possible to build
pd
in the WSL (Linux for Windows) but it's not possible to run it due to memmap differences that are known and reported. (etcd-io/bbolt#144)This script requires only Go, Git, and powershell to be available on the machine as far as I can tell. (I'm using a pretty basic windows machine)
Here's a demo running
pd
on native Windows powershell,tikv
on wsl, and theclient-rust
on wsl as well:Here's the
--version
output:We shouldn't announce/advertise this though because we haven't done any serious benchmarking or support testing. This is simply to enable Windows users to develop on pd/tikv without needing Docker.
What is changed and how it works?
A
build.ps1
file was added since a minimal windows environment does not includemake
(nmake
is available if you use the C++ dev tools but it's not fully compatible, we might try to use it and have errors later).A Windows user using Powershell can invoke this with
./build
and will find familiar binaries atbin/*
. They'll see from the script when they run it that these are created:Check List
Tests
Code changes
Side effects
Related changes