MarkusJx / install-boost

Install boost on Github actions

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Error creating D:\boost directory for windows build on self hosted runner

mpconte opened this issue · comments

Github workflow gives me this error when running this action for a windows platform:

Run MarkusJx/install-boost@v1.0
with:
boost_version: 1.69.0
toolset: msvc14.1
...
Starting install-boost@1.0.0
Downloading versions-manifest.json...
Parsing versions-manifest.json...
Create D:\boost
D:\boost does not exist, creating it
Error: Error: UNKNOWN: unknown error, mkdir 'D:\boost'

Weird. The test workflow runs fine. Are you maybe running your workflow on a self-hosted runner, which maybe doesn't have the D:\ drive or insufficient rights to create a directory in that specific location?

I am running it on a self hosted runner but it has no D: drive. Is it required?

Yeah, well, kind of. I did not consider self-hosted runners when creating this action. In hindsight, it doesn't seem that smart to install directly to the D: drive. I'll try to create a new directory in $GITHUB_WORKSPACE/boost and add an option to to set your own target directory.

This shouldn't take too long, hang in there.

Okay, the changes are made, seems to work.
Just use MarkusJx/install-boost@v1.0.1 instead of the old version.
Boost will now by default be installed into $GITHUB_WORKSPACE/boost, as stated in the readme. If this doesn't work in your case, I've added the boost_install_dir option, so you can set your very own install directory.

Use it like this:

- name: Install boost
  uses: MarkusJx/install-boost@v1.0.1
  id: install-boost
  with:
    boost_version: 1.69.0
    toolset: msvc14.1
    boost_install_dir: C:\some_directory

I hope this helps. I'll leave this issue open, you can close it, if this has resolved your issue.

@MarkusJx Thanks for the quick response. I assume you mean 1.0.1, not v1.0.1 because the former is the one that's listed in the marketplace? Otherwise it works fine, thanks again.

Do you know if the actions/boost-versions will include older versions of boost? I ask because I still need to build the boost python and numpy libraries with python2 and the later versions of boost prebuilt binaries don't include these.

I just f*cked up that naming scheme, huh? Well, now both 1.0.1 and v1.0.1, thank you very much for mentioning that.

As to the older boost versions, well, you could take a look at the list of supported versions in the actions/boost-versions repo, the oldest ones they list is version 1.69.0 and it doesn't seem like they are pretty eager to add more versions as they last updated that version list in June 2020.

So your best bet would probably be to build boost yourself or maybe use prebuilt ones from SourceForge, there are a lot of them, but these may not be compatible with your compiler, as the oldest ones were built more than a decade ago.

It may be actually to be a good idea to also support installing these SourceForge-prebuilt ones with this action, but that seems like some work, as I'd have to look into compiler support with these versions. I may add that in the future, but I'd probably wouldn't start working on that in at least a month, so that's that.