-
Notifications
You must be signed in to change notification settings - Fork 3.1k
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
Update/Add Ninja #741
Comments
The ninja tool is already included in the Windows hosts via Visual Studio. It would be nice to include it on the macOS and Ubuntu VMs. For Ubuntu, |
Hi @compnerd! As I know ninja is installed along with vcpkg, here is the vcpkg installation log:
I wonder if it could be used for your purposes? |
@miketimofeev interesting,
|
Add ninja-build to the Linux images. It is already present on the Windows builders and is very often used with CMake. Issue: actions#741
@compnerd Unfortunately, I'm not so familiar with CMake builds, but is it possible to use vcpkg for them? |
@miketimofeev no, it is not possible to use |
@miketimofeev actually, thinking more about this - isn't this actually better? Adding ninja to the base image allows CMake to use it and vcpkg could use the host provided ninja builder as well. |
Oh, I see. Can that ninja from vcpkg be used directly from |
Hardcoding random paths doesn't work very well for the azure pipelines if you are using different builders. Can you not use Alternatively, you could symlink the path from |
If this path works |
Where the tool resides is not a big deal, if ninja can be added to the path for all the builders, that is perfectly acceptable (though beyond my ability to help with). |
Can you confirm that |
@miketimofeev nope, that still fails. I can verify that |
@miketimofeev also can verify that |
Hi @compnerd . We had very similar request for ninja tool. Unfortunately, we can't add it at the moment. I would like to suggest you to install ninja tool in runtime using the following steps:
So, currently, it's easy to install ninja in runtime on demand, since installation takes about 10 seconds and there are no issues with it. |
it is on windows that it is difficult to install ninja |
@abique , You can use choco to install ninja tool on Windows.
|
It is required to install ninja manually due to it not being included in the virtual env provided by Github Actions runner. See actions/runner-images#741 Fixes: 216535050 Test: Github CI Change-Id: I1a741b1765822f0004adc3985b7babc8022046a5
It is required to install ninja manually due to it not being included in the virtual env provided by Github Actions runner. See actions/runner-images#741 Fixes: 216535050 Test: Github CI Change-Id: I1a741b1765822f0004adc3985b7babc8022046a5
It is required to install ninja manually due to it not being included in the virtual env provided by Github Actions runner. See actions/runner-images#741 Fixes: 216535050 Test: Github CI Change-Id: I1a741b1765822f0004adc3985b7babc8022046a5
It is required to install ninja manually due to it not being included in the virtual env provided by Github Actions runner. See actions/runner-images#741 Fixes: 216535050 Test: Github CI Change-Id: I1a741b1765822f0004adc3985b7babc8022046a5
It is required to install ninja manually due to it not being included in the virtual env provided by Github Actions runner. See actions/runner-images#741 In order for Ninja to be visible to CMake during NDK builds, it must be installed in the same subdirectory, so for now it is symlinked on Linux builds. See b/206099937 Fixes: 216535050 Test: Github CI Change-Id: I1a741b1765822f0004adc3985b7babc8022046a5
It is required to install ninja manually due to it not being included in the virtual env provided by Github Actions runner. See actions/runner-images#741 In order for Ninja to be visible to CMake during NDK builds, it must be installed in the same subdirectory, so for now it is symlinked on Linux builds. See b/206099937 Fixes: 216535050 Test: Github CI Change-Id: I1a741b1765822f0004adc3985b7babc8022046a5
It is required to install ninja manually due to it not being included in the virtual env provided by Github Actions runner. See actions/runner-images#741 In order for Ninja to be visible to CMake during NDK builds, it must be installed in the same subdirectory, so for now it is symlinked on Linux builds. See b/206099937 Fixes: 216535050 Test: Github CI Change-Id: I1a741b1765822f0004adc3985b7babc8022046a5
It is required to install ninja manually due to it not being included in the virtual env provided by Github Actions runner. See actions/runner-images#741 In order for Ninja to be visible to CMake during NDK builds, it must be installed in the same subdirectory, so for now it is symlinked on Linux builds. See b/206099937 Fixes: 216535050 Test: Github CI Change-Id: I1a741b1765822f0004adc3985b7babc8022046a5
It is required to install ninja manually due to it not being included in the virtual env provided by Github Actions runner. See actions/runner-images#741 In order for Ninja to be visible to CMake during NDK builds, it must be installed in the same subdirectory, so for now it is symlinked on Linux builds. See b/206099937 Fixes: 216535050 Test: Github CI Change-Id: I1a741b1765822f0004adc3985b7babc8022046a5
It is required to install ninja manually due to it not being included in the virtual env provided by Github Actions runner. See actions/runner-images#741 In order for Ninja to be visible to CMake during NDK builds, it must be installed in the same subdirectory, so for now it is symlinked on Linux builds. See b/206099937 Fixes: 216535050 Test: Github CI Change-Id: I1a741b1765822f0004adc3985b7babc8022046a5
It is required to install ninja manually due to it not being included in the virtual env provided by Github Actions runner. See actions/runner-images#741 In order for Ninja to be visible to CMake during NDK builds, it must be installed in the same subdirectory, so for now it is symlinked on Linux builds. See b/206099937 Fixes: 216535050 Test: Github CI Change-Id: I1a741b1765822f0004adc3985b7babc8022046a5
It is required to install ninja manually due to it not being included in the virtual env provided by Github Actions runner. See actions/runner-images#741 In order for Ninja to be visible to CMake during NDK builds, it must be installed in the same subdirectory, so for now it is symlinked on Linux builds. See b/206099937 Fixes: 216535050 Test: Github CI Change-Id: I1a741b1765822f0004adc3985b7babc8022046a5
It is required to install ninja manually due to it not being included in the virtual env provided by Github Actions runner. See actions/runner-images#741 In order for Ninja to be visible to CMake during NDK builds, it must be installed in the same subdirectory, so for now it is symlinked on Linux builds. See b/206099937 Fixes: 216535050 Test: Github CI Change-Id: I1a741b1765822f0004adc3985b7babc8022046a5
It is required to install ninja manually due to it not being included in the virtual env provided by Github Actions runner. See actions/runner-images#741 In order for Ninja to be visible to CMake during NDK builds, it must be installed in the same subdirectory, so for now it is symlinked on Linux builds. See b/206099937 Fixes: 216535050 Test: Github CI Change-Id: I1a741b1765822f0004adc3985b7babc8022046a5
It is required to install ninja manually due to it not being included in the virtual env provided by Github Actions runner. See actions/runner-images#741 In order for Ninja to be visible to CMake during NDK builds, it must be installed in the same subdirectory, so for now it is symlinked on Linux builds. See b/206099937 Fixes: 216535050 Test: Github CI Change-Id: I1a741b1765822f0004adc3985b7babc8022046a5
It is required to install ninja manually due to it not being included in the virtual env provided by Github Actions runner. See actions/runner-images#741 In order for Ninja to be visible to CMake during NDK builds, it must be installed in the same subdirectory, so for now it is symlinked on Linux builds. See b/206099937 This doesn't fully fix work-inspection due to missing the dexter/slicer import. Bug: 216535050 Test: Github CI Change-Id: I1a741b1765822f0004adc3985b7babc8022046a5 This is an imported pull request from #315. Resolves #315 Github-Pr-Head-Sha: 26c4156 GitOrigin-RevId: 63fff83 Change-Id: Id4b017d8748ce797beef76e5068211f6c31a492c
FWIW to CMake/Ninja users get-cmake has been amazing at work for grabbing the exact version of CMake/Ninja you want. It also implements GitHub caching 👍🏽 so you don't have to worry about sporadic network failures. |
I'm confused: is it available by default on Windows Server or not? ninja just started |
Looks like ninja was dropped from Windows image 20230918.1. Either dropped or it's not in the PATH anymore. |
You can get it back on the path by adding https://github.com/marketplace/actions/enable-developer-command-prompt before calling CMake. |
This |
Gosh this really annoying:
To confuse users even more, the same run gets a mix of versions with some builds passing and others not. Who's having fun with this back and forth?
BTW this worked for us, thanks! Now we just need to use it on all our branches. |
For now, using seanmiddleditch/gha-setup-ninja is fast and easy cross-platform way to use ninja.
It takes ~1sec to setup ninja. |
This looks great but security-conscious projects should not have to all perform duplicate audits of some 3rd party action for a build tool as fundamental as ninja. |
I just asked runtime installation to be officially documented, please upvote: Ever growing list of duplicates gathered at: |
Tool information
ninja
is a build tool focused on speedArea for Triage:
Packages
Question, Bug, or Feature?:
Feature
Virtual environments affected
Can this tool be installed during the build?
Yes, the install is bound by download time (usually ~1m)
Are you willing to submit a PR?
Yes
The text was updated successfully, but these errors were encountered: