{"product":"edge-apps-actions","releases":[{"date":"2026-10-24","entries":[{"areas":["developers"],"breaking":true,"content_html":"\u003cp\u003e\u003ccode\u003einitialize\u003c/code\u003e is for the first deploy to an environment, and it holds to that now. Pass it the\nenvironment\u0026rsquo;s id variable, and if the variable is set, the run stops with an error that points you\nto \u003ccode\u003eupdate\u003c/code\u003e:\u003c/p\u003e\n\u003cdiv class=\"code-block\"\u003e\n  \u003cbutton type=\"button\" class=\"code-copy\" aria-label=\"Copy code\" data-copy-code\u003e\n    \u003csvg data-copy viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.75\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"\u003e\n      \u003crect x=\"9\" y=\"9\" width=\"11\" height=\"11\" rx=\"2\"\u003e\u003c/rect\u003e\n      \u003cpath d=\"M5 15V5a2 2 0 0 1 2-2h10\"\u003e\u003c/path\u003e\n    \u003c/svg\u003e\n    \u003csvg data-check viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"\u003e\n      \u003cpath d=\"M20 6 9 17l-5-5\"\u003e\u003c/path\u003e\n    \u003c/svg\u003e\n  \u003c/button\u003e\n  \u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#d0d0d0;background-color:#202020;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;\"\u003e\u003ccode class=\"language-yaml\" data-lang=\"yaml\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e- \u003cspan style=\"color:#6ab825;font-weight:bold\"\u003euses\u003c/span\u003e:\u003cspan style=\"color:#666\"\u003e \u003c/span\u003eScreenly/edge-apps-actions/initialize@v26.10.1\u003cspan style=\"color:#666\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#666\"\u003e  \u003c/span\u003e\u003cspan style=\"color:#6ab825;font-weight:bold\"\u003ewith\u003c/span\u003e:\u003cspan style=\"color:#666\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#666\"\u003e    \u003c/span\u003e\u003cspan style=\"color:#6ab825;font-weight:bold\"\u003escreenly_api_token\u003c/span\u003e:\u003cspan style=\"color:#666\"\u003e \u003c/span\u003e${{ secrets.SCREENLY_API_TOKEN }}\u003cspan style=\"color:#666\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#666\"\u003e    \u003c/span\u003e\u003cspan style=\"color:#6ab825;font-weight:bold\"\u003eedge_app_name\u003c/span\u003e:\u003cspan style=\"color:#666\"\u003e \u003c/span\u003e${{ inputs.edge_app_name }}\u003cspan style=\"color:#666\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#666\"\u003e    \u003c/span\u003e\u003cspan style=\"color:#6ab825;font-weight:bold\"\u003eedge_app_title\u003c/span\u003e:\u003cspan style=\"color:#666\"\u003e \u003c/span\u003e${{ inputs.edge_app_title }}\u003cspan style=\"color:#666\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#666\"\u003e    \u003c/span\u003e\u003cspan style=\"color:#6ab825;font-weight:bold\"\u003eenvironment\u003c/span\u003e:\u003cspan style=\"color:#666\"\u003e \u003c/span\u003e${{ inputs.environment }}\u003cspan style=\"color:#666\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#666\"\u003e    \u003c/span\u003e\u003cspan style=\"color:#6ab825;font-weight:bold\"\u003eedge_app_id\u003c/span\u003e:\u003cspan style=\"color:#666\"\u003e \u003c/span\u003e${{ (inputs.environment == \u0026#39;production\u0026#39; \u0026amp;\u0026amp; vars.PRODUCTION_EDGE_APP_ID) || (inputs.environment == \u0026#39;stage\u0026#39; \u0026amp;\u0026amp; vars.STAGE_EDGE_APP_ID) || \u0026#39;\u0026#39; }}\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eThe new app\u0026rsquo;s id shows up as soon as the app exists, before the build and deploy steps: as a notice\nin the log, and under \u0026ldquo;Edge App id\u0026rdquo; in the job summary, together with the name of the variable to\nset. If a later step fails, you still have the id.\u003c/p\u003e\n\u003cp\u003eTo start an environment over, delete its Edge App in Screenly, clear the id variable, and run\n\u003ccode\u003einitialize\u003c/code\u003e again.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e\u003cstrong\u003eIf this affects you:\u003c/strong\u003e if a workflow runs \u003ccode\u003einitialize\u003c/code\u003e with \u003ccode\u003eedge_app_id\u003c/code\u003e set to deploy to an\napp that already exists, that run now fails. Move that job to the \u003ccode\u003eupdate\u003c/code\u003e action, which takes the\nsame \u003ccode\u003escreenly_api_token\u003c/code\u003e, \u003ccode\u003eenvironment\u003c/code\u003e, and \u003ccode\u003eedge_app_id\u003c/code\u003e inputs.\u003c/p\u003e\n\u003c/blockquote\u003e\n","description":"initialize stops when the environment's id variable is already set, and puts the new Edge App's id in the job summary as soon as the app is created.","title":"Initialize runs once per environment and shows the new id right away","type":"improvement","url":"https://www.screenly.io/releases/edge-apps-actions/26.10.1/initialize-runs-once/"},{"areas":[],"breaking":false,"content_html":"\u003cul\u003e\n\u003cli\u003e\u003ccode\u003einitialize\u003c/code\u003e and \u003ccode\u003eupdate\u003c/code\u003e build any app whose \u003ccode\u003epackage.json\u003c/code\u003e has a \u003ccode\u003ebuild\u003c/code\u003e script, and deploy it\nfrom \u003ccode\u003edist/\u003c/code\u003e, whether or not it depends on \u003ccode\u003e@screenly/edge-apps\u003c/code\u003e. Apps without a \u003ccode\u003ebuild\u003c/code\u003e script\ndeploy from the repo root as they are.\u003c/li\u003e\n\u003c/ul\u003e\n","description":"initialize and update build any app whose package.json has a build script and deploy it from dist/, whether or not it uses the Edge Apps library.","title":"Any app with a build script is built and deployed from dist","type":"roundup","url":"https://www.screenly.io/releases/edge-apps-actions/26.10.1/fixes-and-improvements/"}],"json":"https://www.screenly.io/releases/edge-apps-actions/26.10.1/v1.json","product":"edge-apps-actions","product_label":"Edge Apps GitHub Actions","url":"https://www.screenly.io/releases/edge-apps-actions/26.10.1/","version":"26.10.1"}],"title":"Edge Apps GitHub Actions 26.10.1","url":"https://www.screenly.io/releases/edge-apps-actions/26.10.1/","version":1}