<?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.10.1 | Screenly</title><description>What has shipped across Screenly, newest first.</description><link>https://www.screenly.io/releases/edge-apps-actions/26.10.1/</link><language>en</language><atom:link href="https://www.screenly.io/releases/edge-apps-actions/26.10.1/rss.xml" rel="self" type="application/rss+xml"/><lastBuildDate>Sat, 24 Oct 2026 00:00:00 +0000</lastBuildDate><item><title>Edge Apps GitHub Actions 26.10.1: Initialize runs once per environment and shows the new id right away</title><link>https://www.screenly.io/releases/edge-apps-actions/26.10.1/initialize-runs-once/</link><guid isPermaLink="true">https://www.screenly.io/releases/edge-apps-actions/26.10.1/initialize-runs-once/</guid><pubDate>Sat, 24 Oct 2026 00:00:00 +0000</pubDate><category>improvement</category><category>developers</category><description>&lt;p&gt;&lt;code&gt;initialize&lt;/code&gt; is for the first deploy to an environment, and it holds to that now. Pass it the
environment&amp;rsquo;s id variable, and if the variable is set, the run stops with an error that points you
to &lt;code&gt;update&lt;/code&gt;:&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/initialize@v26.10.1&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;edge_app_name&lt;/span&gt;:&lt;span style="color:#666"&gt; &lt;/span&gt;${{ inputs.edge_app_name }}&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_title&lt;/span&gt;:&lt;span style="color:#666"&gt; &lt;/span&gt;${{ inputs.edge_app_title }}&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;${{ inputs.environment }}&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;${{ (inputs.environment == &amp;#39;production&amp;#39; &amp;amp;&amp;amp; vars.PRODUCTION_EDGE_APP_ID) || (inputs.environment == &amp;#39;stage&amp;#39; &amp;amp;&amp;amp; vars.STAGE_EDGE_APP_ID) || &amp;#39;&amp;#39; }}&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;The new app&amp;rsquo;s id shows up as soon as the app exists, before the build and deploy steps: as a notice
in the log, and under &amp;ldquo;Edge App id&amp;rdquo; in the job summary, together with the name of the variable to
set. If a later step fails, you still have the id.&lt;/p&gt;
&lt;p&gt;To start an environment over, delete its Edge App in Screenly, clear the id variable, and run
&lt;code&gt;initialize&lt;/code&gt; again.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;If this affects you:&lt;/strong&gt; if a workflow runs &lt;code&gt;initialize&lt;/code&gt; with &lt;code&gt;edge_app_id&lt;/code&gt; set to deploy to an
app that already exists, that run now fails. Move that job to the &lt;code&gt;update&lt;/code&gt; action, which takes the
same &lt;code&gt;screenly_api_token&lt;/code&gt;, &lt;code&gt;environment&lt;/code&gt;, and &lt;code&gt;edge_app_id&lt;/code&gt; inputs.&lt;/p&gt;
&lt;/blockquote&gt;</description></item><item><title>Edge Apps GitHub Actions 26.10.1: Any app with a build script is built and deployed from dist</title><link>https://www.screenly.io/releases/edge-apps-actions/26.10.1/fixes-and-improvements/</link><guid isPermaLink="true">https://www.screenly.io/releases/edge-apps-actions/26.10.1/fixes-and-improvements/</guid><pubDate>Sat, 24 Oct 2026 00:00:00 +0000</pubDate><category>roundup</category><description>&lt;ul&gt;
&lt;li&gt;&lt;code&gt;initialize&lt;/code&gt; and &lt;code&gt;update&lt;/code&gt; build any app whose &lt;code&gt;package.json&lt;/code&gt; has a &lt;code&gt;build&lt;/code&gt; script, and deploy it
from &lt;code&gt;dist/&lt;/code&gt;, whether or not it depends on &lt;code&gt;@screenly/edge-apps&lt;/code&gt;. Apps without a &lt;code&gt;build&lt;/code&gt; script
deploy from the repo root as they are.&lt;/li&gt;
&lt;/ul&gt;</description></item></channel></rss>