Enable test builds with --bootstrap#127909
Conversation
|
For community platforms, this is the cross-build workflow for runtime development/testing: os=linux
arch=riscv64
# ROOTFS_DIR is set
# cross-build product, --bootstrap
./build.sh clr+libs --cross --arch $arch --os $os --bootstrap
# for rebuild (e.g. after editing code), --use-bootstrap
./build.sh clr+libs --cross --arch $arch --os $os --use-bootstrap
# runtime tests cross-build, --use-bootstrap
src/tests/build.sh -cross -$arch -$os -p:LibrariesConfiguration=Debug --use-bootstrap
# libraries tests cross-build, --use-bootstrap
./build.sh libs.tests --cross --arch $arch --os $os --use-bootstrapcc: |
|
Update PR title to match the content? |
Ah, it somehow used cached title from my previous PR. |
f6b1128 to
f6b70d2
Compare
|
So if I am reading this correctly, after this PR, I can:
This is pretty awesome. I gave up trying to do nightly runtime builds / tests more than a year ago because it was such a hassle natively. |
Yes, it exists, e.g. in the build container: $ docker run --rm -v$(pwd):/runtime -w /runtime -e ROOTFS_DIR=/crossrootfs/<xxx> -it <container-urn>
$ os=<yyy>; arch=<xxx>;
$ ./build.sh clr+libs --cross --arch $arch --os $os --bootstrap
$ ./build.sh libs.tests --cross --arch $arch --os $os --use-bootstrap -p:ArchiveTests=truefrom host: # pack and upload testhost to the machine
$ tar -czf testhost_net11.0-<yyy>-Debug-<xxx>.tar.gz artifacts/bin/testhost/net11.0-<yyy>-Debug-<xxx>
$ scp testhost_net11.0-<yyy>-Debug-<xxx>.tar.gz $TargetMachine:/tmp
# copy tests to the machine
$ scp artifacts/helix/tests/linux.AnyCPU.Debug/System.Text.RegularExpressions.Unit.Tests.zip $TargetMachine:/tmp
# usage
$ ssh $TargetMachine
$ mkdir testhost
$ tar -xzf /tmp/testhost_net11.0-<yyy>-Debug-<xxx>.tar.gz -C testhost
$ mkdir regex-tests
$ cd $_
$ unzip System.Text.RegularExpressions.Unit.Tests.zip
$ ./RunTests.sh --runtime-path ~/testhost/artifacts/bin/testhost/net11.0-<yyy>-Debug-<xxx>For runtime tests, after the build, just pack and upload The only thing which doesn't work in general (unrelated to bootstrap) is building / packing individual library tests. e.g. the zip file generated by |
src/tests/build.sh --use-bootstrap --cross --riscv64 ...)Fixes #115622