Skip to content
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

CI: Set up Azure Pipelines, drop AppVeyor, rededicate Circle #2998

Merged
merged 18 commits into from
Feb 25, 2019

Conversation

kinke
Copy link
Member

@kinke kinke commented Feb 7, 2019

No description provided.

@kinke kinke changed the title Set up CI with Azure Pipelines Experiment with Azure Pipelines CI Feb 7, 2019
@kinke kinke force-pushed the azure-pipelines branch 8 times, most recently from 24e7b1a to b540eea Compare February 8, 2019 12:28
@kinke
Copy link
Member Author

kinke commented Feb 8, 2019

@ZombineDev: For Windows, the performance seems to very roughly match AppVeyor - 2 (logical?) cores, 3.5 GB RAM. But the max configurable time-out seems to be 6h, which should definitely eliminate all time-out issues. :)

@kinke kinke force-pushed the azure-pipelines branch 5 times, most recently from 5a8ff98 to ee790ca Compare February 8, 2019 19:08
@kinke kinke force-pushed the azure-pipelines branch 12 times, most recently from f6c556a to f53abe3 Compare February 10, 2019 14:22
@kinke
Copy link
Member Author

kinke commented Feb 12, 2019

Overall, I'm quite happy with it so far. It's not perfect, e.g., there's no ssh support, and a step's displayName comes after its script (which can be quite long). I also like the GUI. For Windows, all that's still needed is adding a multilib job (yes, one can define a job with dependencies on other jobs - so that it's run after both x64 and x86 jobs have succeeded, in order to create a merged multilib package) and uploading the packages to GitHub (incl. how to figure out if the build is a PR/a commit on the master branch/a tagged commit). Then we don't need AppVeyor anymore (and can switch to LLVM with enabled assertions again). Our LLVM fork can/should be migrated too, as AppVeyor has lately always been too slow to build the LLVM packages in 1h (so that I had to build the 4 packages manually, getting on my nerves).

We could also replace CircleCI (Linux & macOS) with this and use the Azure Pipelines for all x86/x64 packages (and Shippable for the AArch64 one). We'd only use 5 jobs per commit then (Windows x86 & x64 & tiny multilib, Linux multilib, macOS x64), so that 2 commits can be tested in parallel (10 free concurrent jobs).

@kinke kinke force-pushed the azure-pipelines branch 11 times, most recently from b9311b4 to 72bd5b0 Compare February 24, 2019 01:51
@kinke
Copy link
Member Author

kinke commented Feb 24, 2019

Alright, looks like we're pretty much set for LLVM 8 (from yesterday), incl. Khronos SPIRV-LLVM-Translator as git submodule. It just needed some final adaptations, but apparently also introduced a rather strange std.math.cmp() regression on Win32 without optimizations for 64-bit negative NaNs with custom payload...

No self-compilation & packaging anymore, also combining bits from
Semaphore and Travis.

* Linux
  * Ubuntu 18.04: using distro gcc (7.3) + LLVM (6.0) + compiler-rt
    libs, multilib, druntime sanitizers support
  * Ubuntu rolling (latest, currently 18.10): using distro gcc (8.2) +
    LLVM (7.0) + compiler-rt libs, multilib, shared druntime/Phobos libs
    only (=> running lit-tests & DMD testsuite with shared libs,
    previously only tested by Travis)
* macOS: using our prebuilt LLVM 7.0.1 with enabled assertions, x64 only
  * static+shared libs
  * shared libs only
ld: internal error: atom not found in symbolIndex(__D11TypeInfo_xa6__initZ) for architecture x86_64
…able CPU cores

Linux and Windows agents seem to feature 2 cores, Mac 4 (plus higher
single-core performance) - exploit it.
@kinke kinke changed the title [WIP] CI: Set up Azure Pipelines, drop AppVeyor, rededicate Circle CI: Set up Azure Pipelines, drop AppVeyor, rededicate Circle Feb 25, 2019
@kinke kinke merged commit da7f3f0 into master Feb 25, 2019
@kinke kinke deleted the azure-pipelines branch February 25, 2019 22:14
@JohanEngelen
Copy link
Member

nice @kinke

@kinke
Copy link
Member Author

kinke commented Feb 28, 2019

Appreciated. Whoever has an MS account (AFAICT, mandatory) is free to join the Azure ldc-developers organization, we'll figure out how. ;) - It's not absolutely crucial, as anyone can create their own Azure project and automatically use the YAML files, just in case I wouldn't be around anymore.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants