This change enables CLI build for Alpine 3.6 and also adds CI job for
it. It is mostly based on changes that were necessary to
enable building of rhel.6 CLI
- Changes in netci.groovy to delete post-merge builds. We are suign VSO
for that.
- Also add RHEL and Windows x86 to PR CI jobs. Instead of doing 'debug'
and 'release' for all platforms we are only selectively have a mixture
of debug and release builds. (For ubuntu we are doing debug and release
but that will change when we have 'Debian 8.2' support. Ubuntu:Debug
will be replaced by Debian8.2:Debug)
- Minor change in install.sh to maintain uniformity in OS names.
This configuration switches CLI to the new branch model. The branch is specified primarily in the repo list on dotnet-ci, then passed along to various utility functions. The configuration itself is read from the specified branch in the repo, and any PR's generated are branch specific.
This means that changing the configuration in rel/1.0.0 will only affect the jobs that run against that branch
I had to patch up a redhat dnx package which supports NETStandard.Library package. It is currently uploaded to dotnet-cli blob storage. This hack will no longer be required when we move to xplat nuget to do 'dotnet restore'. Apart from this there are three issues that are tracked for centos.
- compile-native not yet supported - https://github.com/dotnet/cli/issues/453
- dnu restore crashes intermittently on centos. I need to investigate this a little bit more and file issues on dnx or coreclr. This will make our CI builds very flaky.
- Dotnet restore does not restore native shims when using “centos.7-x64” - https://github.com/dotnet/corefx/issues/5066
These changes will use docker's new Dockerfile Arguments to
pass the Host User ID to the docker container at build time.
This allows the docker container to set it's internal user
to match that of the host. When using shared volumes between
the host and container, this prevents files created in the
container from being owned by root.
This will solve our problem of needing a cleanup step after
every ubuntu CI run.
These changes fix many of the issues blocking our Ubuntu CI Build.
Notably, it adds a postbuild step to the CI which cleans up file
permissions on files created in Docker. This lets the next job
delete those files successfully. It also accounts for docker instances
which are left running after an aborted job.