<?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 1.2.0 | Screenly</title><description>What has shipped across Screenly, newest first.</description><link>https://www.screenly.io/releases/edge-apps-actions/1.2.0/</link><language>en</language><atom:link href="https://www.screenly.io/releases/edge-apps-actions/1.2.0/rss.xml" rel="self" type="application/rss+xml"/><lastBuildDate>Wed, 22 Apr 2026 00:00:00 +0000</lastBuildDate><item><title>Edge Apps GitHub Actions 1.2.0: A new update action deploys an existing Edge App</title><link>https://www.screenly.io/releases/edge-apps-actions/1.2.0/update-action/</link><guid isPermaLink="true">https://www.screenly.io/releases/edge-apps-actions/1.2.0/update-action/</guid><pubDate>Wed, 22 Apr 2026 00:00:00 +0000</pubDate><category>release</category><category>developers</category><description>&lt;p&gt;Once &lt;code&gt;initialize&lt;/code&gt; has created an Edge App, the &lt;code&gt;update&lt;/code&gt; action ships each new version of it. Put it
in a workflow that runs on push, and every merge reaches Screenly without anyone running the CLI by
hand:&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@v1&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 style="color:#999;font-style:italic"&gt;# optional, defaults to stage&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;It builds the same way &lt;code&gt;initialize&lt;/code&gt; does. If &lt;code&gt;package.json&lt;/code&gt; lists &lt;code&gt;@screenly/edge-apps&lt;/code&gt; under
&lt;code&gt;devDependencies&lt;/code&gt;, it installs with Bun, runs &lt;code&gt;bun run build&lt;/code&gt;, and deploys &lt;code&gt;dist/&lt;/code&gt;. Otherwise it
deploys the repo root as it is.&lt;/p&gt;
&lt;p&gt;The app it deploys to is the one whose id is in the manifest: &lt;code&gt;screenly_qc.yml&lt;/code&gt; for &lt;code&gt;stage&lt;/code&gt; and
&lt;code&gt;screenly.yml&lt;/code&gt; for &lt;code&gt;production&lt;/code&gt;.&lt;/p&gt;</description></item></channel></rss>