<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to Github action runner notes</title><link>https://sourceforge.net/p/aprapipes/wiki/Github%2520action%2520runner%2520notes/</link><description>Recent changes to Github action runner notes</description><atom:link href="https://sourceforge.net/p/aprapipes/wiki/Github%20action%20runner%20notes/feed" rel="self"/><language>en</language><lastBuildDate>Tue, 12 May 2026 05:47:46 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/aprapipes/wiki/Github%20action%20runner%20notes/feed" rel="self" type="application/rss+xml"/><item><title>Github action runner notes modified by Aslam Hirani</title><link>https://sourceforge.net/p/aprapipes/wiki/Github%2520action%2520runner%2520notes/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v4
+++ v5
@@ -7,7 +7,12 @@

   * we acheived some of it by exploting the "default" value of inputs so we now have one file with defaults for windows and another for defaults with linux. this way the main difference between the 3 scripts linked above is just the default value for variables. On the flip-side it means that every change has to be mecahnically copied to 3 scripts now. __It would be so nice if yaml files can be "included" into other yaml files.__ cause then the core of our script would be maintained at one place and would be reused by main scripts. 
   * notice that the only difference between [linux](https://github.com/Apra-Labs/ApraPipes/blob/main/.github/workflows/build-test-lin.yml) and [linux-docker](https://github.com/Apra-Labs/ApraPipes/blob/main/.github/workflows/build-test-lin-container.yml) is that the second one needs a container while first one does not. Currently there is no way to make that optional.
 2. __Self hosted runners__ Notes:
-* the ".path" file in the action_runner root directory can be used to add change the "PATH" that the steps run from the runner sees. e.g we needed nvcc in path to be able to compile CUDA kernels
-## surprizes
-* It is suprising that env values can not be passed from caller workflow to called workflow this makes us repeat inputs
-* it is suprising that input values and defaults can not be expressions and only fixed values are allowed. 
+   * the ".path" file in the action_runner root directory can be used to add change the "PATH" that the steps run from the runner sees. e.g we needed nvcc in path to be able to compile CUDA kernels
+   * on windows with "Local system account" there is bug where in cache gets written to c:\windows\syswow64\... but is searched in c:\windows\system32\... the workarround is to not use "Local system account" and use a regular user account to run the service
+
+3. Why does the vcpkg cache rebuilds so many times ?
+   * see [here](https://github.com/microsoft/vcpkg/blob/master/docs/users/binarycaching.md#implementation-notes-internal-details-subject-to-change-without-notice). There a veriety of things that can change to recomoute the hash including cmake version. 
+
+4. surprizes
+   * It is suprising that env values can not be passed from caller workflow to called workflow this makes us repeat inputs
+   * it is suprising that input values and defaults can not be expressions and only fixed values are allowed. 
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Aslam Hirani</dc:creator><pubDate>Tue, 12 May 2026 05:47:46 -0000</pubDate><guid>https://sourceforge.neta08787c41087bd54d425a32b7d04106ac682cbd6</guid></item><item><title>Github action runner notes modified by Aslam Hirani</title><link>https://sourceforge.net/p/aprapipes/wiki/Github%2520action%2520runner%2520notes/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v3
+++ v4
@@ -6,7 +6,8 @@

 * We want to use a single yaml script to perform multi-platform builds. But there are concepts which are not flexible. Consider or [windows](https://github.com/Apra-Labs/ApraPipes/blob/main/.github/workflows/build-test-win.yml), [linux](https://github.com/Apra-Labs/ApraPipes/blob/main/.github/workflows/build-test-lin.yml) and [linux-docker](https://github.com/Apra-Labs/ApraPipes/blob/main/.github/workflows/build-test-lin-container.yml) reusable workflows. We have tried our best to use a single script by using "inputs" but that breaks the DRY principle because now we get repeated usage of "with" clause in the master script. A big missing gap is some ability to declare reusable variables in the caller workflow and pass them to the called workflow. 
   * we acheived some of it by exploting the "default" value of inputs so we now have one file with defaults for windows and another for defaults with linux. this way the main difference between the 3 scripts linked above is just the default value for variables. On the flip-side it means that every change has to be mecahnically copied to 3 scripts now. __It would be so nice if yaml files can be "included" into other yaml files.__ cause then the core of our script would be maintained at one place and would be reused by main scripts. 
   * notice that the only difference between [linux](https://github.com/Apra-Labs/ApraPipes/blob/main/.github/workflows/build-test-lin.yml) and [linux-docker](https://github.com/Apra-Labs/ApraPipes/blob/main/.github/workflows/build-test-lin-container.yml) is that the second one needs a container while first one does not. Currently there is no way to make that optional.
-
+2. __Self hosted runners__ Notes:
+* the ".path" file in the action_runner root directory can be used to add change the "PATH" that the steps run from the runner sees. e.g we needed nvcc in path to be able to compile CUDA kernels
 ## surprizes
 * It is suprising that env values can not be passed from caller workflow to called workflow this makes us repeat inputs
 * it is suprising that input values and defaults can not be expressions and only fixed values are allowed. 
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Aslam Hirani</dc:creator><pubDate>Tue, 12 May 2026 05:47:46 -0000</pubDate><guid>https://sourceforge.net92d88a5ab40d53c33f9bd43158b5e38edb476048</guid></item><item><title>Github action runner notes modified by Aslam Hirani</title><link>https://sourceforge.net/p/aprapipes/wiki/Github%2520action%2520runner%2520notes/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v2
+++ v3
@@ -4,7 +4,7 @@
 ## Learnings

 1. action runners allow [reusing workflows](https://docs.github.com/en/actions/using-workflows/reusing-workflows) to avoid duplication of yaml scripts and promote DRY. But still there are many pitfalls:
 * We want to use a single yaml script to perform multi-platform builds. But there are concepts which are not flexible. Consider or [windows](https://github.com/Apra-Labs/ApraPipes/blob/main/.github/workflows/build-test-win.yml), [linux](https://github.com/Apra-Labs/ApraPipes/blob/main/.github/workflows/build-test-lin.yml) and [linux-docker](https://github.com/Apra-Labs/ApraPipes/blob/main/.github/workflows/build-test-lin-container.yml) reusable workflows. We have tried our best to use a single script by using "inputs" but that breaks the DRY principle because now we get repeated usage of "with" clause in the master script. A big missing gap is some ability to declare reusable variables in the caller workflow and pass them to the called workflow. 
-  * we acheived some of it by exploting the "default" value of inputs so we now have one file with defaults for windows and another for defaults with linux. this way the main difference between the 3 scripts linked above is just the defaul value for variables. On the flip-side it means that every change has to be mecahnically copied to 3 scripts now. It would be so nice if yaml framgments can be "included" into the file. 
+  * we acheived some of it by exploting the "default" value of inputs so we now have one file with defaults for windows and another for defaults with linux. this way the main difference between the 3 scripts linked above is just the default value for variables. On the flip-side it means that every change has to be mecahnically copied to 3 scripts now. __It would be so nice if yaml files can be "included" into other yaml files.__ cause then the core of our script would be maintained at one place and would be reused by main scripts. 
   * notice that the only difference between [linux](https://github.com/Apra-Labs/ApraPipes/blob/main/.github/workflows/build-test-lin.yml) and [linux-docker](https://github.com/Apra-Labs/ApraPipes/blob/main/.github/workflows/build-test-lin-container.yml) is that the second one needs a container while first one does not. Currently there is no way to make that optional.

 ## surprizes
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Aslam Hirani</dc:creator><pubDate>Tue, 12 May 2026 05:47:46 -0000</pubDate><guid>https://sourceforge.net213141673ec905e5430cd0e4733d199baa6a2765</guid></item><item><title>Github action runner notes modified by Aslam Hirani</title><link>https://sourceforge.net/p/aprapipes/wiki/Github%2520action%2520runner%2520notes/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v1
+++ v2
@@ -5,6 +5,7 @@

 1. action runners allow [reusing workflows](https://docs.github.com/en/actions/using-workflows/reusing-workflows) to avoid duplication of yaml scripts and promote DRY. But still there are many pitfalls:
 * We want to use a single yaml script to perform multi-platform builds. But there are concepts which are not flexible. Consider or [windows](https://github.com/Apra-Labs/ApraPipes/blob/main/.github/workflows/build-test-win.yml), [linux](https://github.com/Apra-Labs/ApraPipes/blob/main/.github/workflows/build-test-lin.yml) and [linux-docker](https://github.com/Apra-Labs/ApraPipes/blob/main/.github/workflows/build-test-lin-container.yml) reusable workflows. We have tried our best to use a single script by using "inputs" but that breaks the DRY principle because now we get repeated usage of "with" clause in the master script. A big missing gap is some ability to declare reusable variables in the caller workflow and pass them to the called workflow. 
   * we acheived some of it by exploting the "default" value of inputs so we now have one file with defaults for windows and another for defaults with linux. this way the main difference between the 3 scripts linked above is just the defaul value for variables. On the flip-side it means that every change has to be mecahnically copied to 3 scripts now. It would be so nice if yaml framgments can be "included" into the file. 
+  * notice that the only difference between [linux](https://github.com/Apra-Labs/ApraPipes/blob/main/.github/workflows/build-test-lin.yml) and [linux-docker](https://github.com/Apra-Labs/ApraPipes/blob/main/.github/workflows/build-test-lin-container.yml) is that the second one needs a container while first one does not. Currently there is no way to make that optional.

 ## surprizes

 * It is suprising that env values can not be passed from caller workflow to called workflow this makes us repeat inputs
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Aslam Hirani</dc:creator><pubDate>Tue, 12 May 2026 05:47:46 -0000</pubDate><guid>https://sourceforge.net7da33217048afdced9294ffa4d5cf07a9cb85bd2</guid></item><item><title>Github action runner notes modified by Aslam Hirani</title><link>https://sourceforge.net/p/aprapipes/wiki/Github%2520action%2520runner%2520notes/</link><description>&lt;div class="markdown_content"&gt;&lt;h1 id="h-overview"&gt;Overview&lt;/h1&gt;
&lt;p&gt;Every time we make a new stride in improving our build setup we learn 10's of lessons. The objective of this page is to register those notes in our social memory.&lt;/p&gt;
&lt;h2 id="h-learnings"&gt;Learnings&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;action runners allow &lt;a href="https://docs.github.com/en/actions/using-workflows/reusing-workflows" rel="nofollow"&gt;reusing workflows&lt;/a&gt; to avoid duplication of yaml scripts and promote DRY. But still there are many pitfalls:&lt;/li&gt;
&lt;li&gt;We want to use a single yaml script to perform multi-platform builds. But there are concepts which are not flexible. Consider or &lt;a href="https://github.com/Apra-Labs/ApraPipes/blob/main/.github/workflows/build-test-win.yml" rel="nofollow"&gt;windows&lt;/a&gt;, &lt;a href="https://github.com/Apra-Labs/ApraPipes/blob/main/.github/workflows/build-test-lin.yml" rel="nofollow"&gt;linux&lt;/a&gt; and &lt;a href="https://github.com/Apra-Labs/ApraPipes/blob/main/.github/workflows/build-test-lin-container.yml" rel="nofollow"&gt;linux-docker&lt;/a&gt; reusable workflows. We have tried our best to use a single script by using "inputs" but that breaks the DRY principle because now we get repeated usage of "with" clause in the master script. A big missing gap is some ability to declare reusable variables in the caller workflow and pass them to the called workflow. &lt;/li&gt;
&lt;li&gt;we acheived some of it by exploting the "default" value of inputs so we now have one file with defaults for windows and another for defaults with linux. this way the main difference between the 3 scripts linked above is just the defaul value for variables. On the flip-side it means that every change has to be mecahnically copied to 3 scripts now. It would be so nice if yaml framgments can be "included" into the file. &lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="h-surprizes"&gt;surprizes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;It is suprising that env values can not be passed from caller workflow to called workflow this makes us repeat inputs&lt;/li&gt;
&lt;li&gt;it is suprising that input values and defaults can not be expressions and only fixed values are allowed. &lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Aslam Hirani</dc:creator><pubDate>Tue, 12 May 2026 05:47:46 -0000</pubDate><guid>https://sourceforge.net4531a8a80658ee248f23a8848a7dc64d120235cb</guid></item></channel></rss>