dascandy / evoke

Magic build tool
Apache License 2.0
166 stars 17 forks source link

add caching of vcpkg artifacts #79

Closed lukka closed 4 years ago

lukka commented 4 years ago

this PR add caching of the vcpkg artifacts, reducing build time. Note the Cache task seems to ignore the .ignoreartifact, likely a regression of the task. Hence all the vcpkg directory is cached, not just what is needed. Build time is reduced anyway, we can work on this later.

dascandy commented 4 years ago
  - task: lucappa.cmake-ninja-vcpkg-tasks.d855c326-b1c0-4d6f-b1c7-440ade6835fb.run-vcpkg@0
  - task: lucappa.cmake-ninja-vcpkg-tasks.f2b1ec7d-bc54-4cc8-b9ed-1bc7f37c9dc6.run-cmake@0

What are those UUIDs for?

lukka commented 4 years ago
  - task: lucappa.cmake-ninja-vcpkg-tasks.d855c326-b1c0-4d6f-b1c7-440ade6835fb.run-vcpkg@0
  - task: lucappa.cmake-ninja-vcpkg-tasks.f2b1ec7d-bc54-4cc8-b9ed-1bc7f37c9dc6.run-cmake@0

What are those UUIDs for?

you can remove those, as they are optional. That is the exact name of the task: publisherid,extensionid,taskid,taskname. I have to use those in my DevOps account cause i have same name for different taskid (for development/testing purpose).

lukka commented 4 years ago

As per this change in Cache task, caching is storing a huge amount of files not needed currently. Nevertheless restoring all those files and skipping vcpkg is a huge timesaver.

You can define AZP_CACHING_CONTENT_FORMAT as a workaround in the yml, i will update my tasks to define that for you as well, and it will be even faster.

lukka commented 4 years ago

@dascandy I just published the runvcpkg and runcmake tasks to use AZP_CACHING_CONTENT_FORMAT set to Files, so that .artifactignore file is now consumed during caching, and now the whole content of cached binaries is down to less then 200Mb, it contains all you need for building, nothing more. Check the build result on the pipeline that is sourced by my evoke's fork.

Note the build is broken since this commit.

I would first fix the build, the re-run the checks in this PR again. And then if you like it, just merge ;)

dascandy commented 4 years ago

Let's see how quickly I can fix that build.