Giter VIP home page Giter VIP logo

get-cmake's Introduction

Action Status

Coverage Status


The action restores from local or cloud based cache both CMake and Ninja. If a cache-miss occurs, it downloads and caches the tools right away.

Works for x64 and arm64 hosts on Linux, macOS and Windows.

The desired version can be specified using semantic versioning ranges, and also use install or installrc special tokens to install resp. the latest stable or release candidate.

There are two kind of caches:

  • The cloud based GitHub cache. Enabled by default, it can be disabled using the input useCloudCache:false.
  • The local self-hosted runner cache, stored locally using tool-cache. Disabled by default, it can enabled with the input useLocalCache:true.

Steps of get-cmake:

  1. If a cache-hit occurs (either local or cloud cache), CMake and Ninja are restored from the cache.
    1. if both local and cloud are enabled, the local cache check goes first.
  2. If a cache-miss occurs, i.e. none of the enabled caches hit:
    1. the action downloads and installs the desired versions of CMake and Ninja.

    2. the action stores CMake and Ninja for the enabled caches:

      1. if enabled, on the cloud based GitHub cache. This is beneficial for the next run of the workflow especially on GitHub-hosted runners.
      2. if enabled, on the local GitHub runner cache. This is beneficial for the next run of the workflow on the same self-hosted runner.

      Note: when there is a cache-hit, nothing will be stored in any of the caches.

  3. Adds to the PATH environment variable the binary directories for CMake and Ninja.

Quickstart

If you want to use latest stable you can use this one-liner:

  # Option 1: using 'latest' branch, the most recent CMake and ninja are installed.
    - uses: lukka/get-cmake@latest  # <--= Just this one-liner suffices.

The local and cloud cache can be enabled or disabled, for example:

    # Suited for self-hosted GH runners where the local cache wins over the cloud.
    - uses: lukka/get-cmake@latest  
      with:
        useLocalCache: true         # <--= Use the local cache (default is 'false').
        useCloudCache: false        # <--= Ditch the cloud cache (default is 'true').

And there is a second option:

  # Option 2: specify 'latest' or 'latestrc' in the input version arguments:
    - name: Get latest CMake and Ninja
      uses: lukka/get-cmake@latest
      with:
        cmakeVersion: latestrc      # <--= optional, use the latest release candidate (notice the 'rc' suffix).
        ninjaVersion: latest        # <--= optional, use the latest release (non candidate).

If you want to pin the workflow to specific range of versions of CMake and Ninja:

  # Option 1: specify in a input parameter the desired version using ranges.
  - uses: lukka/get-cmake@latest
    with:
      cmakeVersion: "~3.25.0"  # <--= optional, use most recent 3.25.x version
      ninjaVersion: "^1.11.1"  # <--= optional, use most recent 1.x version

  # or using a specific version (no range)
  - uses: lukka/get-cmake@latest
    with:
      cmakeVersion: 3.25.2     # <--= optional, stick to exactly 3.25.2 version
      ninjaVersion: 1.11.1     # <--= optional, stick to exactly 1.11.1 version

or there is another option:

  # Option 2: or you can use the Git 'tag' to select the version, and you can have a one-liner statement,
  # but note that you can only use one of the existing tags, create a PR to add the tag you need!
  - name: Get specific version CMake, v3.26.0
    uses: lukka/[email protected]     # <- this one-liner is all you need.

Action reference: all input/output parameters

Please read action.yml.


Who is using get-cmake

This graph shows the list of public repositories with more than 25 stars using get-cmake.


Developers information

Prerequisites

gulp 4 globally installed.


Build and lint

Build with tsc running:

npm run build

Launch lint by:

npm run lint


Generate the catalog of CMake releases

To generate the catalog of CMake releases, run a special test with this command:

npm run generate-catalog

Then embed the new catalog by packaging the action.


Packaging

To build, lint validate and package the extension (and embed the release catalog) for release purpose, run:

npm run pack


Testing

To build, pack and run all tests:

npm run test

To run all tests:

npx jest

or

npx jest -- -t "<regex to match the describe clause>"


Contributing

The software is provided as is, there is no warranty of any kind. All users are encouraged to improve the source code with fixes and new features.


License

All the content in this repository is licensed under the MIT License.

Copyright (c) 2020-2021-2022-2023-2024 Luca Cappa

get-cmake's People

Contributors

ahmedalnuaimi avatar chungzh avatar dependabot[bot] avatar garethsb avatar jwillemsen avatar lukka avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

get-cmake's Issues

libidn11 not found

Thx for this action !

In some ubuntu runner I had the error with libidn11 not found (cmake3.3 and cmake 3.5). A hacky fix is to do :

sudo apt-get update ; sudo apt-get install --no-install-recommends -y libidn12; sudo ln -s /usr/lib/x86_64-linux-gnu/libidn.so.12 /usr/lib/x86_64-linux-gnu/libidn.so.11

Maybe this could be done one this action directly

uses: lukka/[email protected] failed

Thanks for project.
I try to install minimum supported version of my project: cmake 3.9.6

cmake_minimum_required (VERSION 3.9)
cmake_policy(VERSION 3.9)
##[warning]Failed to download action 'https://api.github.com/repos/lukka/get-cmake/tarball/v3.9.6'. Error Response status code does not indicate success: 404 (Not Found).
##[warning]Back off 13.968 seconds before retry.
##[warning]Failed to download action 'https://api.github.com/repos/lukka/get-cmake/tarball/v3.9.6'. Error Response status code does not indicate success: 404 (Not Found).

[email protected] fetching ninja fails in ubuntu-14.04

In our project we're keeping one runner with ubuntu-14.04 to represent our current earliest supported platform/toolchain.
Since updating from [email protected] to 3.18.3, this runner fails to download ninja and stops.
Would it be possible to fix this or as a workaround provide an option only to get cmake?
Thanks!

Partial raw log:

2020-11-06T13:15:13.6580864Z ##[group]Run lukka/[email protected]
2020-11-06T13:15:13.6581219Z env:
2020-11-06T13:15:13.9045119Z   BUILD_NAME: ubuntu-14.04
2020-11-06T13:15:13.9047471Z ##[endgroup]
2020-11-06T13:15:13.9052333Z ##[command]/usr/bin/docker exec  49b71954dce6b8b5d086d234fc782bbcaa8e6de8522527e6251245d41b79a38e sh -c "cat /etc/*release | grep ^ID"
2020-11-06T13:15:14.3408647Z ##[group]Restore from cache using key '685782585' into /__w/_temp/685782585
2020-11-06T13:15:14.4099651Z ##[endgroup]
2020-11-06T13:15:14.4114561Z ##[group]Download and extract CMake
2020-11-06T13:15:15.3860863Z [command]/bin/tar xz --warning=no-unknown-keyword -C /__w/_temp/685782585 -f /__w/_temp/0deb54d3-4545-4759-8f44-2002e3119b18
2020-11-06T13:15:16.5998313Z ##[endgroup]
2020-11-06T13:15:16.5999348Z ##[group]Download and extract ninja
2020-11-06T13:15:16.8190005Z ##[endgroup]
2020-11-06T13:15:16.8248952Z Error: Parameter 'commandLine' cannot be null or empty.
2020-11-06T13:15:16.8249843Z     at Object.<anonymous> (/__w/_actions/lukka/get-cmake/v3.18.3/dist/index.js:75:19)
2020-11-06T13:15:16.8250420Z     at Generator.next (<anonymous>)
2020-11-06T13:15:16.8251110Z     at /__w/_actions/lukka/get-cmake/v3.18.3/dist/index.js:56:71
2020-11-06T13:15:16.8251572Z     at new Promise (<anonymous>)
2020-11-06T13:15:16.8252350Z     at module.exports.__awaiter (/__w/_actions/lukka/get-cmake/v3.18.3/dist/index.js:52:12)
2020-11-06T13:15:16.8253230Z     at Object.exec (/__w/_actions/lukka/get-cmake/v3.18.3/dist/index.js:72:12)
2020-11-06T13:15:16.8253995Z     at /__w/_actions/lukka/get-cmake/v3.18.3/dist/index.js:40709:22
2020-11-06T13:15:16.8254517Z     at Generator.next (<anonymous>)
2020-11-06T13:15:16.8255247Z     at fulfilled (/__w/_actions/lukka/get-cmake/v3.18.3/dist/index.js:40426:58)
2020-11-06T13:15:16.8258219Z ##[error]get-cmake action execution failed: 'Error: Parameter 'commandLine' cannot be null or empty.'
2020-11-06T13:15:16.8923879Z Post job cleanup.

Add possibility to ignore the patch version

Thanks for this nice action

I need to test my CMake modules with different CMake version. CMake patch version are mainly fixing features than expanding features. It would be nice to have an option to always download the highest patch version for a given major/minor version :

    # Option 1: specify in a input parameter the desired version (using multiple lines).
    - name: Get specific version CMake and Ninja
      uses: lukka/get-cmake@latest
      with:
        cmakeVersion: 3.24.x             # <--= optional, overrides the _latest_ version of CMake
        ninjaVersion: 1.11.x             # <--= optional, overrides the _latest_ version of Ninja

support for arm64 linux

What I get at the moment using an arm64 self-hosted (well, Buildjet) runner:

Run lukka/get-cmake@latest
  with:
    cmakeVersion: ~3.25.0
  env:
    CMAKE_VERSION: ~3.25.0
user defined cmake version:~3.25.0
user defined ninja version:
cmake version:~3.25.0
ninja version:latest
Compute cache key from the download's URLs
  Cache key: 848249211
Restore from cache using key '848249211' into '/home/runner/actions-runner/_work/_temp/848249211'
  Cache miss.
Download and extract CMake
  /usr/bin/tar xz --warning=no-unknown-keyword --overwrite -C /home/runner/actions-runner/_work/_temp/848249211 -f /home/runner/actions-runner/_work/_temp/eb25e52a-5ebc-4b64-b205-67e5a316cfba
Download and extract Ninja
  /usr/bin/unzip -o -q /home/runner/actions-runner/_work/_temp/1c645e53-b55b-49b5-8ad5-8b37c4c550a8
Add CMake and Ninja to PATH
  CMake path: /home/runner/actions-runner/_work/_temp/848249211/cmake-3.25.1-linux-x86_64/bin/
  Ninja path: /home/runner/actions-runner/_work/_temp/848249211
Validation of the installed CMake and Ninja
  CMake actual path is: '/home/runner/actions-runner/_work/_temp/848249211/cmake-3.25.1-linux-x86_64/bin/cmake'
  Ninja actual path is: '/home/runner/actions-runner/_work/_temp/848249211/ninja'

Save to cache using key '848249211'
  /usr/bin/tar --posix --use-compress-program zstdmt -cf cache.tzst --exclude cache.tzst -P -C /home/runner/actions-runner/_work/kart/kart --files-from manifest.txt
  Cache Size: ~46 MB (47913493 B)
  Cache saved successfully
  Save '/home/runner/actions-runner/_work/_temp/848249211' to the GitHub cache service.
get-cmake action execution succeeded

Then later in a run-vcpkg step:

...
Build vcpkg executable
  Running command 'chmod' with args '+x,/home/runner/actions-runner/_work/kart/kart/vcpkg-vendor/vcpkg/bootstrap-vcpkg.sh' in current directory 'undefined'.
  Running command '/usr/bin/sh' with args '-c,/home/runner/actions-runner/_work/kart/kart/vcpkg-vendor/vcpkg/bootstrap-vcpkg.sh' in current directory '/home/runner/actions-runner/_work/kart/kart/vcpkg-vendor/vcpkg'.
  Unable to determine a binary release of vcpkg; attempting to build from source.
  Downloading vcpkg tool sources
  Building vcpkg-tool...
  CMake Error: Could not find CMAKE_ROOT !!!
  CMake has most likely not been installed correctly.
  Modules directory not found in
  /home/runner/actions-runner/_work/_temp/848249211/cmake-3.25.1-linux-x86_64/share/cmake-3.23
  CMake Error: Error executing cmake::LoadCache(). Aborting.
  • It should be grabbing cmake-3.25.1-linux-aarch64 rather than cmake-3.25.1-linux-x86_64
  • I don't know whether that'll fix the run-vcpkg magically, or whether there are further things needed? Happy to try them out for you.

This overrides previously set PATH

Had some fun debugging why my intel compiler runs failed, and I think I've narrowed it down to this.

Because of how Intel OneAPI works, it needs to run

source /opt/intel/oneapi/setvars.sh
printenv >> $GITHUB_ENV

so that it propagates the PATH, LD_LIBRARY_PATH, etc. But apparently lukka/get-cmake also overrides PATH (maybe other variables as well) without reading the previously set PATH. I have tried changing the order and everything, but just having lukka/get-cmake in the job, it automatically overrides PATH. Removing it, I managed to get it working again.

macos-13: Error: Unable to locate executable file: ninja (ninja 1.10๏ผ‰

on Hi,

I'm trying to migrate my CI jobs to use your get-cmake action to install CMake and Ninja. This seems to work fine on windows and Linux, but all the macos jobs fail with the following error:

 Error: get-cmake action execution failed: 'Error: Unable to locate executable file: ninja. Please verify either the file path exists or the file can be found within a directory specified by the PATH environment variable. Also check the file mode to verify the file is executable.'

CI step

      - name: Install CMake
        uses: lukka/get-cmake@4e6d17d5fe05e957a14fb19626cd67b1c192efda # latest commit
        with:
          cmakeVersion: "~3.22.0"
          ninjaVersion: "~1.10.0"

Link to a failing job: https://github.com/corrosion-rs/corrosion/actions/runs/7934441594/job/21665440748?pr=487

Using the latest ninja version seems to work fine, but since Ubuntu 22.04 ships ninja 1.10, I would prefer to test with 1.10 on all OSes.

CMake 3.0 not found

Hi, thx for this nice action.

It seems it's not possible to install CMake 3.0.x on linux and macos.

Error: Cannot find CMake version:'~3.0' in the catalog for the 'linux' platform.
    at ToolsGetter.<anonymous> (/home/runner/work/_actions/lukka/get-cmake/latest/dist/index.js:76:23)
    at Generator.next (<anonymous>)
    at /home/runner/work/_actions/lukka/get-cmake/latest/dist/index.js:18:71
    at new Promise (<anonymous>)
    at __webpack_modules__.4506.__awaiter (/home/runner/work/_actions/lukka/get-cmake/latest/dist/index.js:14:12)
    at ToolsGetter.run (/home/runner/work/_actions/lukka/get-cmake/latest/dist/index.js:66:16)
    at Object.<anonymous> (/home/runner/work/_actions/lukka/get-cmake/latest/dist/index.js:285:31)
    at Generator.next (<anonymous>)
    at /home/runner/work/_actions/lukka/get-cmake/latest/dist/index.js:18:71
    at new Promise (<anonymous>)

It it impossible to run CMake on the latest ubuntu is version is less than 3.7.

cmake: error while loading shared libraries: libidn.so.11: cannot open shared object file: No such file or directory

Maybe the action could provide this .so for ubuntu ?

Proper caching solution for self hosted runners

Hey there,
Thank you for your work on this action, we really appreciate this
I came here to ask if it's possible to have a "locally" cached solution for CMake (and maybe Ninja) using this Node package:
https://github.com/actions/toolkit/tree/master/packages/tool-cache
(Note: I know you are already using it for downloading and extracting archives, but it's not creating locally cached binaries in _tool directory)

It is also used in this https://github.com/actions/setup-python and it speeds things a lot to use already stored local binaries instead of pulling them on each run

Just a screenshot of where cached files go:
image

Add 'latest' option for version

Hi,

you provide two ways of setting up version:

      # Using 'latest' branch, the most recent CMake and ninja are installed.
      uses: lukka/get-cmake@latest       # <--= THIS IS THE ONE LINER YOU NEED

and

    - name: Get specific version CMake, v3.24.3, and Ninja v1.11.1
      uses: lukka/get-cmake@latest
      with:
        cmakeVersion: 3.24.3             # <--= optional, overrides the _latest_ version of CMake
        ninjaVersion: 1.11.1             # <--= optional, overrides the _latest_ version of Ninja

however it makes problem if I would like to use matrix build for different cmake versions, especially if one of them is latest.

I cannot make

jobs:
    strategy:
      matrix:
        cmake: [ 3.9.2, latest ]

    steps:
      - name: Get specific version CMake version 1
        uses: lukka/get-cmake@${{ matrix.cmake }}  # cannot use matrix component in the action name

      - name: Get specific version CMake version 2
        uses: lukka/get-cmake@latest
        with:
          - cmakeVersion: ${{ matrix.cmake }} # 'latest' will not work here

Could you maybe add accepting latest as the valid version which fallbacks to the default?

Support Node 16

According to the GitHub blog, Node 12 is not supported in GitHub Actions since April 2022, and all actions run on Node 16 by Summer 2023.
So could you fix action.yml to run this action on Node 16?

.gitignore breaks act

act reads .gitignore when copying actions to its git environment, having dist listed in the .gitignore causes the action to fail due to missing dist directory.

Fails on Windows

When trying to run this action on Windows, it fails with the following output:
Screen Shot 2023-01-24 at 1 58 44 PM

The configuration is:

- uses: lukka/get-cmake@latest  
  with:
        useLocalCache: false         
        useCloudCache: false
        cmakeVersion: latest
        ninjaVersion: latest

Any ideas?

Windows/ Powershell error: Expand-Archive : is not a supported archive file format. .zip is the only supported archive file format.

Hi,

i get the following error using

  • name: Install CMake and Ninja
    uses: lukka/[email protected]
    with:
    useLocalCache: true
    useCloudCache: false
    cmakeVersion: "~3.27.0"
    ninjaVersion: latest

log:
useCloudCache:false
useLocalCache:true
user defined cmake version:~3.27.0
user defined ninja version:latest
cmake version:~3.27.0
ninja version:latest
::group::Computing cache key from the downloads' URLs
Cache key: '507572093'.
Local install root: 'C:\Users\User.cache\act\8c275a1a4fda57b3\tmp\507572093''.
::endgroup::
::group::Restoring from local GitHub runner cache using key '507572093'
Local cache miss.
::endgroup::
::group::Downloading and extracting CMake
[command]C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -NoLogo -Sta -NoProfile -NonInteractive -ExecutionPolicy Unrestricted -Command "$ErrorActionPreference = 'Stop' ; try { Add-Type -AssemblyName System.IO.Compression.FileSystem } catch { } ; if ((Get-Command -Name Expand-Archive -Module Microsoft.PowerShell.Archive -ErrorAction Ignore)) { Expand-Archive -LiteralPath 'C:\Users\User.cache\act\8c275a1a4fda57b3\tmp\ad76d5b6-c455-4ab6-810f-4a4c64dce49b' -DestinationPath 'C:\Users\User.cache\act\8c275a1a4fda57b3\tmp\507572093' -Force } else {[System.IO.Compression.ZipFile]::ExtractToDirectory('C:\Users\User.cache\act\8c275a1a4fda57b3\tmp\ad76d5b6-c455-4ab6-810f-4a4c64dce49b', 'C:\Users\User.cache\act\8c275a1a4fda57b3\tmp\507572093', $true) }"
Expand-Archive : is not a supported archive file format. .zip is the only supported archive file format.
At line:1 char:210

  • ... Ignore)) { Expand-Archive -LiteralPath 'C:\Users\User.cache\act\8c2 ...
  •             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    
    • CategoryInfo : InvalidArgument: (:String) [Expand-Archive], IOException
    • FullyQualifiedErrorId : NotSupportedArchiveFileExtension,Expand-Archive

::endgroup::
Error: The process 'C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe' failed with exit code 1
at ExecState._setResult (C:\Users\User.cache\act\8c275a1a4fda57b3\act\actions\[email protected]\dist\index.js:5801:25)
at ExecState.CheckComplete (C:\Users\User.cache\act\8c275a1a4fda57b3\act\actions\[email protected]\dist\index.js:5784:18)
at ChildProcess. (C:\Users\User.cache\act\8c275a1a4fda57b3\act\actions\[email protected]\dist\index.js:5678:27)
at ChildProcess.emit (node:events:514:28)
at maybeClose (node:internal/child_process:1105:16)
at ChildProcess._handle.onexit (node:internal/child_process:305:5)
::error::get-cmake action execution failed: 'Error: The process 'C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe' failed with exit code 1'

Saving to cache fails on macos-latest

I wrote a configuration file for compiling my project using CMake on all the three platforms:

  1. windows-latest
  2. ubuntu-latest
  3. macos-latest

The jobs succeed for the first two but fai; for the macos variant. The error I get is:

Error: reserveCache failed: Cache already exists. Scope: refs/heads/main, Key: 2021943633, Version: 064507b9d1ab43957bbb335d9ce050cd2491be9b5cb86237d119649451558834
    at /Users/runner/work/_actions/lukka/get-cmake/latest/dist/index.js:51172:15
    at Generator.throw (<anonymous>)
    at rejected (/Users/runner/work/_actions/lukka/get-cmake/latest/dist/index.js:51103:65)
    at processTicksAndRejections (internal/process/task_queues.js:93:5)
Error: get-cmake action execution failed: 'Error: reserveCache failed: Cache already exists. Scope: refs/heads/main, Key: 2021943633, Version: 064507b9d1ab43957bbb335d9ce050cd2491be9b5cb86237d119649451558834'

For more info, check this link which shows the result for all three OSes.

The link to the main.yml file is this.

file INSTALL cannot find "/home/runner/work/[...]": No such file or directory.

Hi !

This is perhaps completely unrelated to this action, but I wanted to share the problem I've encountered anyway.
When using:

install( FILES
"${CMAKE_CURRENT_BINARY_DIR}/myHeader.h"
DESTINATION
${CMAKE_INSTALL_INCLUDEDIR}
)

my runner complains that /home/runner/work/myHeader.h does not exist.
Any idea why ? The rest of the files that do not include CMAKE_CURRENT_BINARY_DIR work fine.

Feel free to close it if unrelated.

Version 3.27.5 doesn't work on Windows.

Run lukka/get-cmake@latest
useCloudCache:true
useLocalCache:false
user defined cmake version:3.27.5
user defined ninja version:
cmake version:3.27.5
ninja version:latest
Error: Cannot match '3.27.5' with any version in the catalog for 'cmake'.
    at Function.matchRange (D:\a\_actions\lukka\get-cmake\latest\dist\index.js:118:23)
    at ToolsGetter.<anonymous> (D:\a\_actions\lukka\get-cmake\latest\dist\index.js:[6](https://github.com/hyoklee/hdf5/actions/runs/6423207173/job/17441233906#step:2:7)8:42)
    at Generator.next (<anonymous>)
    at D:\a\_actions\lukka\get-cmake\latest\dist\index.js:18:[7](https://github.com/hyoklee/hdf5/actions/runs/6423207173/job/17441233906#step:2:8)1
    at new Promise (<anonymous>)
    at __webpack_modules__.4506.__awaiter (D:\a\_actions\lukka\get-cmake\latest\dist\index.js:14:12)
    at ToolsGetter.run (D:\a\_actions\lukka\get-cmake\latest\dist\index.js:66:16)
    at Object.<anonymous> (D:\a\_actions\lukka\get-cmake\latest\dist\index.js:2[8](https://github.com/hyoklee/hdf5/actions/runs/6423207173/job/17441233906#step:2:9)[9](https://github.com/hyoklee/hdf5/actions/runs/6423207173/job/17441233906#step:2:10):31)
    at Generator.next (<anonymous>)
    at D:\a\_actions\lukka\get-cmake\latest\dist\index.js:[18](https://github.com/hyoklee/hdf5/actions/runs/6423207173/job/17441233906#step:2:19):71
Error: get-cmake action execution failed: 'Error: Cannot match '3.27.5' with any version in the catalog for 'cmake'.'

RFC: specify CMake/ninja version

I would find it very handy to be able to test with several CMake versions, also versions for which you do not have specific releases. How about two input parameters cmake-version and ninja-version to modify the version retrieved. I had a short look into your code. The respective parts are templated already, so it shouldn't require only moderate changes. Default behavior wouldn't need to change. You could just specify the default parameters as is.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.