<?xml version="1.0" encoding="utf-8"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Edge Apps GitHub Actions 26.9.0 | Screenly</title><description>What has shipped across Screenly, newest first.</description><link>https://www.screenly.io/releases/edge-apps-actions/26.9.0/</link><language>en</language><atom:link href="https://www.screenly.io/releases/edge-apps-actions/26.9.0/rss.xml" rel="self" type="application/rss+xml"/><lastBuildDate>Tue, 08 Sep 2026 00:00:00 +0000</lastBuildDate><item><title>Edge Apps GitHub Actions 26.9.0: Each environment's Edge App id comes from a repository variable</title><link>https://www.screenly.io/releases/edge-apps-actions/26.9.0/edge-app-id-input/</link><guid isPermaLink="true">https://www.screenly.io/releases/edge-apps-actions/26.9.0/edge-app-id-input/</guid><pubDate>Tue, 08 Sep 2026 00:00:00 +0000</pubDate><category>release</category><category>developers</category><description>&lt;p&gt;An Edge App that runs in stage and production has 2 ids, and until now each one lived in its own
manifest: &lt;code&gt;screenly_qc.yml&lt;/code&gt; for stage and &lt;code&gt;screenly.yml&lt;/code&gt; for production. A setting added to one file
had to be added to the other.&lt;/p&gt;
&lt;p&gt;With the new &lt;code&gt;edge_app_id&lt;/code&gt; input, the id comes from the workflow instead. Keep each environment&amp;rsquo;s id
in a repository variable and pass the matching one:&lt;/p&gt;
&lt;div class="code-block"&gt;
&lt;button type="button" class="code-copy" aria-label="Copy code" data-copy-code&gt;
&lt;svg data-copy viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"&gt;
&lt;rect x="9" y="9" width="11" height="11" rx="2"&gt;&lt;/rect&gt;
&lt;path d="M5 15V5a2 2 0 0 1 2-2h10"&gt;&lt;/path&gt;
&lt;/svg&gt;
&lt;svg data-check viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"&gt;
&lt;path d="M20 6 9 17l-5-5"&gt;&lt;/path&gt;
&lt;/svg&gt;
&lt;/button&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#d0d0d0;background-color:#202020;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;- &lt;span style="color:#6ab825;font-weight:bold"&gt;uses&lt;/span&gt;:&lt;span style="color:#666"&gt; &lt;/span&gt;Screenly/edge-apps-actions/update@v26.9.0&lt;span style="color:#666"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#666"&gt; &lt;/span&gt;&lt;span style="color:#6ab825;font-weight:bold"&gt;with&lt;/span&gt;:&lt;span style="color:#666"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#666"&gt; &lt;/span&gt;&lt;span style="color:#6ab825;font-weight:bold"&gt;screenly_api_token&lt;/span&gt;:&lt;span style="color:#666"&gt; &lt;/span&gt;${{ secrets.SCREENLY_API_TOKEN }}&lt;span style="color:#666"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#666"&gt; &lt;/span&gt;&lt;span style="color:#6ab825;font-weight:bold"&gt;environment&lt;/span&gt;:&lt;span style="color:#666"&gt; &lt;/span&gt;stage&lt;span style="color:#666"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#666"&gt; &lt;/span&gt;&lt;span style="color:#6ab825;font-weight:bold"&gt;edge_app_id&lt;/span&gt;:&lt;span style="color:#666"&gt; &lt;/span&gt;${{ vars.STAGE_EDGE_APP_ID }}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;When &lt;code&gt;edge_app_id&lt;/code&gt; is set, the action reads &lt;code&gt;screenly.yml&lt;/code&gt; in both environments, and the id you pass
wins over any &lt;code&gt;id&lt;/code&gt; in the manifest. So 1 manifest serves stage and production, and only the variable
changes between them.&lt;/p&gt;
&lt;p&gt;Leave it out and nothing changes: stage still reads &lt;code&gt;screenly_qc.yml&lt;/code&gt;, and production reads
&lt;code&gt;screenly.yml&lt;/code&gt;, each with its own &lt;code&gt;id&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Edge Apps GitHub Actions 26.9.0: The actions' version numbers moved to CalVer</title><link>https://www.screenly.io/releases/edge-apps-actions/26.9.0/calver-version-numbers/</link><guid isPermaLink="true">https://www.screenly.io/releases/edge-apps-actions/26.9.0/calver-version-numbers/</guid><pubDate>Tue, 08 Sep 2026 00:00:00 +0000</pubDate><category>improvement</category><category>developers</category><description>&lt;p&gt;Releases of the Edge Apps GitHub Actions are numbered by year and month now, so the release after
1.3.0 is 26.9.0. That&amp;rsquo;s the same scheme Screenly, ScreenlyOS, the CLI, and the Edge Apps library
use.&lt;/p&gt;
&lt;p&gt;Each release is 1 fixed tag, such as &lt;code&gt;v26.9.0&lt;/code&gt;, and there&amp;rsquo;s no moving tag that follows the latest
release. &lt;code&gt;v1&lt;/code&gt; stays on 1.3.0 for good. A workflow that uses &lt;code&gt;@v1&lt;/code&gt; keeps running exactly what it ran
before, and it won&amp;rsquo;t get anything released from here on.&lt;/p&gt;
&lt;p&gt;Nothing about the actions&amp;rsquo; behavior changes with the numbering.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;If this affects you:&lt;/strong&gt; a workflow that uses &lt;code&gt;@v1&lt;/code&gt; won&amp;rsquo;t pick up new releases. Replace &lt;code&gt;@v1&lt;/code&gt; with
an exact tag, such as &lt;code&gt;Screenly/edge-apps-actions/update@v26.9.0&lt;/code&gt;, and bump it when you want a
newer release. Dependabot&amp;rsquo;s &lt;code&gt;github-actions&lt;/code&gt; updates can open those bumps for you.&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Edge Apps GitHub Actions 26.9.0: Builds work with the Edge Apps library in dependencies, and other improvements</title><link>https://www.screenly.io/releases/edge-apps-actions/26.9.0/fixes-and-improvements/</link><guid isPermaLink="true">https://www.screenly.io/releases/edge-apps-actions/26.9.0/fixes-and-improvements/</guid><pubDate>Tue, 08 Sep 2026 00:00:00 +0000</pubDate><category>roundup</category><description>&lt;h2 id="fixes"&gt;Fixes&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;initialize&lt;/code&gt; and &lt;code&gt;update&lt;/code&gt; build your app when &lt;code&gt;@screenly/edge-apps&lt;/code&gt; is listed under
&lt;code&gt;dependencies&lt;/code&gt;, not only under &lt;code&gt;devDependencies&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="improvements"&gt;Improvements&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;initialize&lt;/code&gt; and &lt;code&gt;update&lt;/code&gt; run Screenly CLI 26.9.0 instead of whichever CLI release is newest, so a
new CLI release doesn&amp;rsquo;t change how your app deploys until you move to a newer version of the
actions.&lt;/li&gt;
&lt;/ul&gt;</description></item></channel></rss>