Commit graph

52 commits

Author SHA1 Message Date
Matt Mitchell
8dc41755cb
Switch repo to use native AzDO container support (#14541)
* Switch repo to use native AzDO container support

This is a major refactor of the YAML used by the installer repo. The goal is to utilize the native container support that AzDO provides, rather than building containers on the fly and issuing commands using custom infrastructure. To do this, the YAML requires a bit of a refactor. The matrix strategy approach used by the repo to build a ton of different OS's does not work with containers, because a matrix strategy only changes the variables available to each build command. It cannot change the AzDO host environment. In order to resolve this, I refactored build.yml to take and use optional container names. In the process of doing this, I discovered a number of other things about the old YAML that just happened to 'accidentally' work and fixed them or did general cleanup. Including:

- This construct, used in build.yml, does not work as you might expect. If the parameter is not declared as a boolean (or not declared at all), this evaluates to "does this parameter exist", not "is it true":

    ```
    ${{ if parameters.pgoInstrument }}:
    ```
- I fully specified all the parameters and their types to avoid issues in the future.
- Build pool selection was moved to build.yml
- Removed some unused parameters.
- There was a **very** subtle indentation change here: 762d2966ee/.vsts-ci.yml (L275-L281). This meant that this leg ran in both PR and official builds. I have no idea whether this was the intention or not, but I kept it this way and reorganized the file.

**One change of note:** One of the upsides of the original matrix based approach is that job dependencies are simple. The jobs generated by the matrix are referred to in `dependsOn` lists only by the original job that contains the matrix. That keeps the dependsOn list small even if the number of jobs generated is large. Installer has a large set of independently addressable jobs now. Normally, we would solve this by using the arcade jobs template. The jobs template takes a set of jobs and automatically adds dependsOn for the publishing jobs. BUT, AzDO does not allow templates to be passed as parameters to other templates. This would mean that you couldn't use the build.yml template in conjunction with the jobs template and would have to list all the installer jobs as dependencies. This list would be hard to keep up to date. To avoid this, I used a new feature of publishing (`publishAssetsImmediately`) which uses the Publish To Build Asset Registry job to do the actual publishing call, and put it in a separate phase, then eliminated the post-build.yml call. This means that the publishing stage depends on all jobs in the build stage, and does not need to address them individually. Eliminating the post-build.yml stage may seem odd, but this is what actually happens when `publishAssetsImmediately` is set to true anyway.
2022-09-27 11:15:12 -07:00
Daniel Plaisted
f8e115fadf Don't set ulimit
1ES pools should now have ulimit set already now
2021-11-29 20:19:30 -08:00
Michael Simons
28afaeb89a
Flow environment variable into run-build (#12637) 2021-11-11 00:14:49 +00:00
Daniel Plaisted
c9aba1c482
Merge branch 'release/6.0.1xx' into update-ulimit 2021-11-03 14:36:04 -07:00
Daniel Plaisted
0b2b3f44d5 Add comments about sudo and ulimit 2021-11-03 14:34:41 -07:00
Daniel Plaisted
500bc39ef4 Run build under sudo so that we can set ulimit 2021-11-03 10:21:12 -07:00
Daniel Plaisted
9e6c445faf Run build under sudo so that we can set ulimit 2021-11-01 14:27:33 -07:00
riarenas
c84ef86d91 Changes for core-sdk to move to yaml stages 2019-09-12 13:19:14 -07:00
Daniel Plaisted
bc6f7937ee Attempt to disable pretty print control codes for CI 2018-11-08 00:36:11 -08:00
Daniel Plaisted
cc776c8b44 Set up docker for arcade 2018-11-07 18:15:34 -08:00
Daniel Plaisted
9bdfb5afac Build script fixes for CI 2018-11-07 17:21:16 -08:00
Daniel Plaisted
8c7f7dc772 Fix build on non-Windows 2018-11-02 14:15:52 -07:00
Daniel Plaisted
37ef87ac97 Add build scripts to root 2018-10-22 18:53:12 -07:00
Daniel Plaisted
3555f34527 Move old infrastructure to subfolder 2018-10-21 20:47:58 -07:00
Jan Vorlicek
277789bf16 Add Dockerfile for RHEL 6 builds
This change enables building CLI for RHEL 6 in docker container.
2017-09-26 11:50:50 -07:00
Livar Cunha
fd077bbf28 Adding a comment about the code that removes empty spaces from the arguments array but also breaks quoted arguments. We are picking the devil we know in this case. 2016-07-12 11:23:34 -07:00
Livar Cunha
cdddc2e432 Addressing code review comments. Fixing issue with compile where we were not copying the msbuild files to the right place. Fixed an issue where we were trying to download installers for OSes that don't have installers. Added init-tools scripts. 2016-07-06 12:03:16 -07:00
Livar Cunha
cc1bb54f1a Removing build scripts from dotnet-cli-build. Moving the stage0 to a run_build scripts and invoking dotnet build3 build.proj for the build. 2016-07-05 15:09:39 -07:00
Bryan
aa01110c33 Remove The host build, consume the host build from core-setup 2016-05-25 14:49:12 -07:00
Bryan
7bf08c5bd5 Bring Host build into separate project 2016-05-16 14:55:15 -05:00
Sridhar Periyasamy
387dc552c4 Fix release builds in docker.
Move the args processing to run-build.sh. Earlier all the args were processed in build.sh and not passed on properly to a docker container.
2016-02-17 16:16:25 -08:00
Andrew Stanton-Nurse
34b0b688f7 patch up some final missing CI build things 2016-02-16 12:46:43 -08:00
Andrew Stanton-Nurse
f57605c4c3 add skip-prereqs switch 2016-02-16 12:38:21 -08:00
Andrew Stanton-Nurse
10772464c7 add help to build.cmd 2016-02-16 12:22:25 -08:00
Andrew Stanton-Nurse
c2f08bd853 remove ci_build.sh 2016-02-16 12:16:45 -08:00
Andrew Stanton-Nurse
57ce370b51 remove ci_build.cmd 2016-02-16 12:06:51 -08:00
Andrew Stanton-Nurse
d524732bbb working on build scripts 2016-02-12 15:26:35 -08:00
Sridhar Periyasamy
d73f15e433 Fix the correct path to package.sh when packaging inside docker. 2016-01-07 19:24:34 -08:00
Sridhar Periyasamy
5155aa61d7 Enable docker support for centos builds
- Added an option '--buildindocker <osname>' to build.sh
- Fixed bug which caused packaging to be skipped by default.
- Fixed bug which caused tarballs to be generated twice.
- Fixed bug to propagate build params(like debug, nopackage) to docker build.
2016-01-07 18:50:00 -08:00
Piotr Puszkiewicz
4b217db9c0 Clean up build scripts
Decompose into self-contained granular components
Provide reasonable defaults for cross cutting concerns, allowing for independent execution of steps
Start unifying Windows/Bash architecture

fix Bash CI scripts

dockerbuild.sh _common.sh path

Add missing restore-packages.sh

Copy/paste issues

Quote $SOURCE
fix .gitignore

PR Feedback

Merge in @SridarMS's work to avoid redownloading DNX

enabling build of dotnet-build

merge in @SridharMS's CentOS changes

Enable building FSC

enable restoring specific subdirectories

Fix dnx version check

Add missed dependency

Fix pathing to tests

Match Linux build version to Windows, fixing linux tests as a side effect.

workaround for coreclr#2215

fix pathing issue

disable building in docker

BUILD_IN_DOCKER was set, somehow...

fix headers
2015-12-29 01:59:02 -08:00
Bryan Thornbury
344d010610 Linux Port of offline build 2015-12-17 18:05:36 -08:00
Krzysztof Wicher
bd6519d665 unify versions on binaries and nupkgs 2015-12-09 14:56:39 -08:00
Sridhar Periyasamy
1e0102778c Change the version numbers to x.x.x.x format for linux and OSX
Earlier I made changes for windows to follow the 'major.minor.build.revision' model for versioning.
This format is enforced by MSI authoring tools. It makes sense to follow the same format for Linux and OSX too, now we have uniform version numbers for all platforms.
2015-11-18 10:21:05 -08:00
PiotrP
e839b4debb Update Copyright headers in all source files. 2015-11-16 19:47:43 -08:00
Andrew Stanton-Nurse
06c66638f3 switch to repo-local stage0
fixes #200
2015-11-16 13:49:29 -08:00
Andrew Stanton-Nurse
4cc15b1246 restructure the output layout
also reorganize the scripts folder
2015-11-16 09:44:00 -08:00
Sridhar Periyasamy
8779fa6c10 Add support to build release binaries in the repo for linux and osx. 2015-11-11 16:11:29 -08:00
Bryan
cdf8b90494 Refactor docker entrypoint to reduce potential for out of sync build and ci_build scripts 2015-11-10 16:22:42 -08:00
Bryan Thornbury
b63af7e649 Match CI build version to Debian Package Build Version.
The Debian Package should have the same version as the rest of the packages
being created as a part of the full build. These changes enable that.

NOTE: The debian package revision is unused but still included in the package
to allow for hyphens in the package version. (https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-Version)
2015-11-03 14:13:25 -08:00
Andrew Stanton-Nurse
e70a169b28 Add a shared runtime aware host
And use it in dotnet-compile
2015-10-30 15:03:29 -07:00
Sridhar Periyasamy
d4fb47ab0f Get the OS name coorectly using $(uname) 2015-10-28 16:36:40 -07:00
Sridhar Periyasamy
8a2dd84340 Fix to get the correct UTC date on OSX 2015-10-28 16:02:14 -07:00
Sridhar Periyasamy
92edf782a2 Merge pull request #105 from Sridhar-MS/ci-publish-to-feeds
Changes to push windows artifacts into the dotnet blob storage
2015-10-28 13:42:26 -07:00
Andrew Stanton-Nurse
1d76b2846c package up DNX in the tar.gz
includes a smoke test for verifying that the output can be used to build
also includes a checked-in CoreCLR in order to work around CoreCLR issue
2015-10-28 10:32:30 -07:00
Sridhar Periyasamy
9751f83c99 Publish tar/deb/pkg files to the dotnet azure blob during CI. 2015-10-27 14:19:04 -07:00
Bryan Thornbury
85d4f888ea fix relative paths in build 2015-10-22 15:56:12 -07:00
Bryan Thornbury
8a94b30100 Only build deb packages on mac, fix windows docker build 2015-10-22 15:12:49 -07:00
Andrew Stanton-Nurse
ca4d160fc3 implement bootstrapping without DNX
* fix up dnvm2 port
* produce packages ready for CI to publish
* remove dependency on DNX for stage0 (still needed for restore)
2015-10-20 17:36:25 -07:00
David Fowler
77d97f66f3 Fixed the *nix build 2015-10-18 23:35:43 -07:00
David Fowler
aaecae7824 Make build.cmd and build.sh work 2015-10-18 23:29:51 -07:00