Repository navigation
Releases: Screenly/edge-apps-actions
Release list
v26.10.2
Adds reusable workflows, so an app's callers shrink to a few lines that pin Screenly/edge-apps-actions/.github/workflows/{checks,initialize,update}.yml@v26.10.2 (see examples/ and the README).
Behaviour to know before bumping:
- Deploys queue, they don't cancel. One deploy runs per environment; a newer push waits, and a still newer one replaces the waiting run. A running deploy is never cancelled.
- Stage deploys only from the default branch (push or manual run); production only from a
v*tag on the default branch, through theproductionenvironment's reviewers. - Initialize has its own queue, so a push can't replace a queued Initialize.
delete_missing_settingsdefaults totruein the reusable update workflow (theupdateaction still defaults tofalse).- After re-running a deploy that stopped part-way, check the live revision in Screenly (see README).
The action logic moved to scripts/ with tests; a package.json that can't be parsed now fails instead of deploying the repo root.
What's Changed
- Add reusable checks/initialize/update workflows; queue deploys by @salmanfarisvp in #25
Full Changelog: v26.10.1...v26.10.2
v26.10.1
Call out the behaviour changes: initialize rejects some name/title characters and fails when the environment's id variable is already set, build detection now uses the build script.
What's Changed
- docs: bump README and example pins to v26.10.0 by @salmanfarisvp in #21
- Document publishing release notes after tagging by @salmanfarisvp in #22
- Document protecting production with a tag ruleset by @salmanfarisvp in #23
- Harden actions and examples: safe deploys, input validation, concurrency by @salmanfarisvp in #24
Full Changelog: v26.10.0...v26.10.1
v26.10.0
What's Changed
- docs: add example initialize and update workflows by @salmanfarisvp in #18
- fix: fail-safe
edge_app_idhandling and clearer setup docs by @salmanfarisvp in #19 - docs: deploy stage from main, production from version tags in update example by @salmanfarisvp in #20
Behavior change
initialize and update now fail closed on bad inputs instead of continuing:
- An empty
screenly_api_tokenfails immediately with a message to add theSCREENLY_API_TOKENsecret for that environment. environmentmust be exactlystageorproduction; anything else fails.updaterequires a realedge_app_id. Empty values and placeholders left by bad expressions (false,true,null,none,0,undefined) fail with a message pointing atSTAGE_EDGE_APP_ID/PRODUCTION_EDGE_APP_ID.initializetreats those same placeholders as unset, so a first-time create is not sent a bogus id.
Review before bumping your pin: make sure each environment has SCREENLY_API_TOKEN and that update jobs pass the matching repo variable.
Example workflows
examples/update-edge-app.yml now deploys stage on every push to the default branch (rolling) and production when a version tag like v26.10.0 is pushed. The production job skips tag deletions and refuses tags whose commit is not on the default branch. Copy it into your app repo to adopt the same release flow.
Usage
- uses: Screenly/edge-apps-actions/update@v26.10.0
with:
screenly_api_token: ${{ secrets.SCREENLY_API_TOKEN }}
environment: stage
edge_app_id: ${{ vars.STAGE_EDGE_APP_ID }}Requires screenly/cli v26.9.0 or later. The legacy v1 tag is frozen and does not include this change; pin an explicit v26.10.0.
Full Changelog: v26.9.1...v26.10.0
v26.9.1
What's Changed
- feat: Always use
screenly.yml; dropscreenly_qc.ymlbranching by @salmanfarisvp in #17
Behavior change
initialize and update now always set MANIFEST_FILE_NAME=screenly.yml for both stage and production. The legacy fallback that selected screenly_qc.yml on stage when edge_app_id was empty has been removed, since it broke first-time initialize for apps that ship a single manifest.
If you still keep a separate screenly_qc.yml for stage, review before bumping your pin: move to a single screenly.yml and supply the Edge App id per environment via edge_app_id (vars.STAGE_EDGE_APP_ID / vars.PRODUCTION_EDGE_APP_ID). When edge_app_id is set it is exported as EDGE_APP_ID and takes precedence over any id in the manifest. On first-time initialize, omit it.
Usage
- uses: Screenly/edge-apps-actions/update@v26.9.1
with:
screenly_api_token: ${{ secrets.SCREENLY_API_TOKEN }}
environment: stage
edge_app_id: ${{ vars.STAGE_EDGE_APP_ID }}Requires screenly/cli v26.9.0 or later. Note that the legacy v1 tag is frozen and does not include this change, pin an explicit v26.9.1.
Full Changelog: v26.9.0...v26.9.1
v26.9.0
What's Changed
- fix: check dependencies and devDependencies for @screenly/edge-apps by @nicomiguelino in #13
- docs(contributing): switch to Calendar Versioning by @nicomiguelino in #15
- Add edge_app_id input, pin cli_version to v26.9.0 by @nicomiguelino in #16
Full Changelog: v1.3.0...v26.9.0
v1.3.0
What's Changed
- Add
delete_missing_settingsinput toupdatecomposite action for deleting settings that exist on the server but not in the manifest by @nicomiguelino in #6
Full Changelog: v1.2.2...v1.3.0
v1.2.2
What's Changed
- Remove edge app listing steps from
updatecomposite action to avoid logging app names in workflow output by @nicomiguelino
Full Changelog: v1.2.1...v1.2.2
v1.2.1
What's Changed
- Add API token verification and edge app name listing to
updatecomposite action for easier debugging by @nicomiguelino in #5
Full Changelog: v1.2.0...v1.2.1
v1.2.0
What's Changed
- Add
updatecomposite action for building and deploying an existing Screenly Edge App by @nicomiguelino in #4
Full Changelog: v1.1.0...v1.2.0
v1.1.0
What's Changed
- Add
initializecomposite action for creating and deploying a new Screenly Edge App instance by @nicomiguelino in #2 - Document
initializeaction in README with usage example and inputs table by @nicomiguelino in #3 - Update
CONTRIBUTING.mdto use generic version placeholders by @nicomiguelino in #3
Full Changelog: v1.0.0...v1.1.0