From f1755b0da7313780ef92f81c4f81e9d058e9c17e Mon Sep 17 00:00:00 2001 From: nicomiguelino Date: Mon, 25 May 2026 20:35:02 -0700 Subject: [PATCH 01/10] chore(ci): remove super-linter - Delete `.github/workflows/linter.yml` - Delete `.github/linters/` and all associated config files - Edge app linting and formatting are already covered per-app via `edge-app-checks.yml` --- .github/linters/.jscpd.json | 13 ----- .github/linters/.prettierrc.json | 4 -- .github/linters/.textlintrc | 10 ---- .github/linters/.yamllint.yml | 9 ---- .github/linters/stylelint.config.cjs | 11 ---- .github/workflows/linter.yml | 79 ---------------------------- 6 files changed, 126 deletions(-) delete mode 100644 .github/linters/.jscpd.json delete mode 100644 .github/linters/.prettierrc.json delete mode 100644 .github/linters/.textlintrc delete mode 100644 .github/linters/.yamllint.yml delete mode 100644 .github/linters/stylelint.config.cjs delete mode 100644 .github/workflows/linter.yml diff --git a/.github/linters/.jscpd.json b/.github/linters/.jscpd.json deleted file mode 100644 index 1b9fd23dd..000000000 --- a/.github/linters/.jscpd.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "threshold": 0, - "reporters": [ - "consoleFull" - ], - "ignore": [ - "**/__snapshots__/**", - "**/*.html", - "**/*.css", - "**/*.svg" - ], - "absolute": true -} diff --git a/.github/linters/.prettierrc.json b/.github/linters/.prettierrc.json deleted file mode 100644 index b2095be81..000000000 --- a/.github/linters/.prettierrc.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "semi": false, - "singleQuote": true -} diff --git a/.github/linters/.textlintrc b/.github/linters/.textlintrc deleted file mode 100644 index edd389ddf..000000000 --- a/.github/linters/.textlintrc +++ /dev/null @@ -1,10 +0,0 @@ -{ - "filters": { - "comments": true - }, - "rules": { - "terminology": { - "severity": "warning" - } - } -} diff --git a/.github/linters/.yamllint.yml b/.github/linters/.yamllint.yml deleted file mode 100644 index ccc7a6693..000000000 --- a/.github/linters/.yamllint.yml +++ /dev/null @@ -1,9 +0,0 @@ ---- -extends: default - -rules: - # 80 chars should be enough, but don't fail if a line is longer - line-length: - max: 80 - level: warning - diff --git a/.github/linters/stylelint.config.cjs b/.github/linters/stylelint.config.cjs deleted file mode 100644 index e6308852d..000000000 --- a/.github/linters/stylelint.config.cjs +++ /dev/null @@ -1,11 +0,0 @@ -module.exports = { - overrides: [ - { - files: ['**/*.scss'], - customSyntax: 'postcss-scss' - } - ], - rules: { - 'media-feature-range-notation': 'prefix' - } -} diff --git a/.github/workflows/linter.yml b/.github/workflows/linter.yml deleted file mode 100644 index abf696aaf..000000000 --- a/.github/workflows/linter.yml +++ /dev/null @@ -1,79 +0,0 @@ ---- -################################# -################################# -## Super Linter GitHub Actions ## -################################# -################################# -name: Lint Code Base - -# -# Documentation: -# https://docs.github.com/en/actions/learn-github-actions/workflow-syntax-for-github-actions -# - -############################# -# Start the job on all push # -############################# -on: - push: - branches-ignore: [master, main] - # Remove the line above to run when pushing to master - pull_request: - branches: [master, main] - -############### -# Set the Job # -############### -jobs: - build: - # Name the Job - name: Lint Code Base - # Set the agent to run on - runs-on: ubuntu-latest - permissions: - contents: read - pull-requests: read - - ################## - # Load all steps # - ################## - steps: - ########################## - # Checkout the code base # - ########################## - - name: Checkout Code - uses: actions/checkout@v6 - with: - # Full git history is needed to get a proper list of changed files within `super-linter` - fetch-depth: 0 - persist-credentials: false - - ################################ - # Run Linter against code base # - ################################ - - name: Lint Code Base - uses: super-linter/super-linter@9e863354e3ff62e0727d37183162c4a88873df41 - env: - VALIDATE_ALL_CODEBASE: false - VALIDATE_BIOME_FORMAT: false - VALIDATE_BIOME_LINT: false - VALIDATE_EDITORCONFIG: false - VALIDATE_HTML: false - VALIDATE_TYPESCRIPT_ES: false - VALIDATE_TYPESCRIPT_PRETTIER: false - VALIDATE_TYPESCRIPT_STANDARD: false - VALIDATE_VUE: false - VALIDATE_VUE_PRETTIER: false - VALIDATE_JSCPD: false - VALIDATE_CHECKOV: false - VALIDATE_TRIVY: false - VALIDATE_GITHUB_ACTIONS_ZIZMOR: false - CSS_FILE_NAME: stylelint.config.cjs - DEFAULT_BRANCH: master - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - FILTER_REGEX_EXCLUDE: '.*edge-apps/powerbi-legacy/.*' - PRETTIER_COMMAND_OPTIONS: '--config .github/linters/.prettierrc.json --check' - ENABLE_GITHUB_ACTIONS_GROUP_TITLE: false - ENABLE_GITHUB_PULL_REQUEST_SUMMARY_COMMENT: false - ENABLE_GITHUB_ACTIONS_STEP_SUMMARY: false - VALIDATE_SPELL_CODESPELL: false From e9c92a5a492a33a5b1fdbdc95354141174798ad4 Mon Sep 17 00:00:00 2001 From: nicomiguelino Date: Mon, 25 May 2026 22:15:12 -0700 Subject: [PATCH 02/10] feat(ci): add checks for Edge Apps without a build system - Extend `detect-changes` to track all changed apps, not just those with `package.json` - Add `no-build-system-check` step and `apps-without-build-system` output - Add `run-simple-checks` job with formatting, Markdown, HTML, CSS, and JS linting via `bunx` - Rename `run-checks` to `run-full-checks` to contrast with `run-simple-checks` - Add `edge-apps/.stylelintrc.json` with minimal built-in rules for CSS linting - Update `edge-apps/README.md` with linting and formatting instructions - Remove super-linter reference from `.claude/rules/edge-apps.md` --- .claude/rules/edge-apps.md | 3 +- .github/workflows/edge-app-checks.yml | 107 +++++++++++++++++++++++--- edge-apps/.stylelintrc.json | 10 +++ edge-apps/README.md | 32 ++++++++ 4 files changed, 138 insertions(+), 14 deletions(-) create mode 100644 edge-apps/.stylelintrc.json diff --git a/.claude/rules/edge-apps.md b/.claude/rules/edge-apps.md index d66d6a0cf..820c0aeac 100644 --- a/.claude/rules/edge-apps.md +++ b/.claude/rules/edge-apps.md @@ -103,8 +103,7 @@ document.addEventListener('DOMContentLoaded', async () => { - Avoid using `!important` as it breaks the natural cascading behavior of CSS. Instead, use more specific selectors or leverage CSS custom properties (variables) for values that need to be overridden. - Use CSS custom properties (variables) for theme values, colors, and other design tokens that need to be overridden. - Do not add code comments to CSS code unless it's not obvious what the code does. -- This project uses [Super Linter](mdc:https://github.com/github/super-linter) for linting. - - Stylelint is used for linting CSS files. +- Stylelint is used for linting CSS files. - Use Stylelint's rules ([https://stylelint.io/user-guide/rules](https://stylelint.io/user-guide/rules)) as a guide when generating code. ## SCSS diff --git a/.github/workflows/edge-app-checks.yml b/.github/workflows/edge-app-checks.yml index 0938690d1..51dd40979 100644 --- a/.github/workflows/edge-app-checks.yml +++ b/.github/workflows/edge-app-checks.yml @@ -19,6 +19,7 @@ jobs: outputs: changed-apps: ${{ steps.extract-changes.outputs.changed-apps }} apps-with-build-system: ${{ steps.build-system-check.outputs.apps-with-build-system }} + apps-without-build-system: ${{ steps.no-build-system-check.outputs.apps-without-build-system }} steps: - name: Checkout code uses: actions/checkout@v6 @@ -46,14 +47,12 @@ jobs: # Read CHANGED_FILES into an array read -ra FILES_ARRAY <<< "$CHANGED_FILES" - # Function to add app to list if it has build system and isn't already included + # Function to add app to list if not already included add_app_if_valid() { local app="$1" if [[ -n "$app" && "$app" != "helpers" && "$app" != ".bun-create" ]]; then - if [[ -f "edge-apps/$app/package.json" ]]; then - if [[ ! " $CHANGED_APPS " =~ $app ]]; then - CHANGED_APPS="$CHANGED_APPS $app" - fi + if [[ ! " $CHANGED_APPS " =~ $app ]]; then + CHANGED_APPS="$CHANGED_APPS $app" fi fi } @@ -99,8 +98,30 @@ jobs: fi echo "Apps with build system: $APPS_WITH_BUILD_SYSTEM" - run-checks: - name: Run Checks for ${{ matrix.app }} + - name: Check which apps don't have build systems + id: no-build-system-check + run: | + CHANGED_APPS="${{ steps.extract-changes.outputs.changed-apps }}" + APPS_WITHOUT_BUILD_SYSTEM="" + + read -ra APPS_ARRAY <<< "$CHANGED_APPS" + for app in "${APPS_ARRAY[@]}"; do + if [[ ! -f "edge-apps/$app/package.json" ]]; then + APPS_WITHOUT_BUILD_SYSTEM="$APPS_WITHOUT_BUILD_SYSTEM $app" + fi + done + + APPS_WITHOUT_BUILD_SYSTEM="${APPS_WITHOUT_BUILD_SYSTEM# }" + if [[ -n "$APPS_WITHOUT_BUILD_SYSTEM" ]]; then + JSON_ARRAY=$(echo "$APPS_WITHOUT_BUILD_SYSTEM" | tr ' ' '\n' | jq -R . | jq -s -c .) + echo "apps-without-build-system=$JSON_ARRAY" >> "$GITHUB_OUTPUT" + else + echo "apps-without-build-system=[]" >> "$GITHUB_OUTPUT" + fi + echo "Apps without build system: $APPS_WITHOUT_BUILD_SYSTEM" + + run-full-checks: + name: Run Full Checks for ${{ matrix.app }} runs-on: ubuntu-latest needs: detect-changes strategy: @@ -162,24 +183,86 @@ jobs: retry_on: error command: cd edge-apps/${{ matrix.app }} && bun run test:e2e + run-simple-checks: + name: Run Simple Checks for ${{ matrix.app }} + runs-on: ubuntu-latest + needs: detect-changes + strategy: + matrix: + app: ${{ fromJSON(needs.detect-changes.outputs.apps-without-build-system) }} + fail-fast: false + if: needs.detect-changes.outputs.apps-without-build-system != '[]' + + steps: + - name: Checkout code + uses: actions/checkout@v6 + + - name: Setup Bun + uses: oven-sh/setup-bun@v2 + with: + bun-version: 1.2.2 + + - name: Run formatting check + run: | + bunx prettier --check \ + --config edge-apps/.prettierrc.json \ + "edge-apps/${{ matrix.app }}/**/*.{html,css,js,json,yml,yaml}" + + - name: Run Markdown lint + run: | + bunx markdownlint-cli2 "edge-apps/${{ matrix.app }}/**/*.md" + + - name: Run HTML lint + run: | + FILES=$(find "edge-apps/${{ matrix.app }}" \ + -name "*.html" \ + -not -path "*/static/*" \ + -not -path "*/dist/*" \ + -not -path "*/node_modules/*") + if [[ -n "$FILES" ]]; then + echo "$FILES" | xargs bunx htmlhint + fi + + - name: Run CSS lint + run: | + FILES=$(find "edge-apps/${{ matrix.app }}" \ + -name "*.css" \ + -not -path "*/dist/*" \ + -not -path "*/node_modules/*") + if [[ -n "$FILES" ]]; then + echo "$FILES" | xargs bunx stylelint \ + --config edge-apps/.stylelintrc.json + fi + + - name: Run JavaScript lint + run: | + FILES=$(find "edge-apps/${{ matrix.app }}" \ + -name "*.js" \ + -not -name "*.min.js" \ + -not -name "eslint.config.js" \ + -not -path "*/dist/*" \ + -not -path "*/node_modules/*") + if [[ -n "$FILES" ]]; then + echo "$FILES" | xargs bunx eslint + fi + summary: name: Summary runs-on: ubuntu-latest - needs: [detect-changes, run-checks] + needs: [detect-changes, run-full-checks, run-simple-checks] if: always() steps: - name: Check if any apps were processed run: | if [[ "${{ needs.detect-changes.outputs.changed-apps }}" == "" ]]; then echo "No Edge Apps were changed." - elif [[ "${{ needs.detect-changes.outputs.apps-with-build-system }}" == "[]" ]]; then - echo "Changed Edge Apps don't have build systems: ${{ needs.detect-changes.outputs.changed-apps }}" else - echo "Processed Edge Apps with build systems: ${{ needs.detect-changes.outputs.apps-with-build-system }}" + echo "Apps with build system: ${{ needs.detect-changes.outputs.apps-with-build-system }}" + echo "Apps without build system: ${{ needs.detect-changes.outputs.apps-without-build-system }}" fi - name: Check for failures - if: needs.run-checks.result == 'failure' + if: needs.run-full-checks.result == 'failure' || needs.run-simple-checks.result == 'failure' run: | echo "Some Edge App checks failed. Please review the logs above." exit 1 diff --git a/edge-apps/.stylelintrc.json b/edge-apps/.stylelintrc.json new file mode 100644 index 000000000..1a7674413 --- /dev/null +++ b/edge-apps/.stylelintrc.json @@ -0,0 +1,10 @@ +{ + "$schema": "https://json.schemastore.org/stylelintrc", + "rules": { + "color-no-invalid-hex": true, + "declaration-block-no-duplicate-properties": true, + "no-duplicate-selectors": true, + "no-empty-source": true, + "unit-no-unknown": true + } +} diff --git a/edge-apps/README.md b/edge-apps/README.md index 8e1c28d13..02751b723 100644 --- a/edge-apps/README.md +++ b/edge-apps/README.md @@ -28,6 +28,38 @@ After scaffolding: bun run dev ``` +## Linting and Formatting + +### Apps with a build system + +From the app directory, run: + +```bash +bun run lint +bun run format:check +``` + +### Apps without a build system + +From the repository root, run the following tools via `bunx`: + +```bash +# Formatting (HTML, CSS, JS, JSON, YAML, Markdown) +bunx prettier --check --config edge-apps/.prettierrc.json "edge-apps//**/*.{html,css,js,json,yml,yaml}" + +# Markdown +bunx markdownlint-cli2 "edge-apps//**/*.md" + +# HTML +bunx htmlhint "edge-apps//index.html" + +# CSS (excludes dist/) +bunx stylelint --config edge-apps/.stylelintrc.json "edge-apps//**/*.css" + +# JavaScript (excludes dist/ and minified files) +bunx eslint "edge-apps//path/to/file.js" +``` + ## TypeScript Library The [`@screenly/edge-apps`](https://www.npmjs.com/package/@screenly/edge-apps) NPM package contains shared utilities, components, and styles used by the apps in this directory. From 926bb93b8a8fc315ff42a0c9f92879ab6435570b Mon Sep 17 00:00:00 2001 From: nicomiguelino Date: Mon, 25 May 2026 22:21:47 -0700 Subject: [PATCH 03/10] fix(ci): exclude non-directory entries from changed apps detection - Add `-d` directory check to `add_app_if_valid` to prevent files at the `edge-apps/` root (e.g. `.stylelintrc.json`) from being treated as app names in the matrix --- .github/workflows/edge-app-checks.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/edge-app-checks.yml b/.github/workflows/edge-app-checks.yml index 51dd40979..80f7fc865 100644 --- a/.github/workflows/edge-app-checks.yml +++ b/.github/workflows/edge-app-checks.yml @@ -51,8 +51,10 @@ jobs: add_app_if_valid() { local app="$1" if [[ -n "$app" && "$app" != "helpers" && "$app" != ".bun-create" ]]; then - if [[ ! " $CHANGED_APPS " =~ $app ]]; then - CHANGED_APPS="$CHANGED_APPS $app" + if [[ -d "edge-apps/$app" ]]; then + if [[ ! " $CHANGED_APPS " =~ $app ]]; then + CHANGED_APPS="$CHANGED_APPS $app" + fi fi fi } From 7907d4d8337fd864c74b950c9aa892c4f973aae7 Mon Sep 17 00:00:00 2001 From: nicomiguelino Date: Mon, 25 May 2026 22:29:11 -0700 Subject: [PATCH 04/10] chore(temp): trigger CI for simple and full checks Temporary whitespace-only changes to README files across all non-build-system Edge Apps and the clock app to exercise the `run-simple-checks` and `run-full-checks` CI jobs. This commit will be reverted once CI results are confirmed. --- edge-apps/3d-text/README.md | 1 + edge-apps/bamboo-hr-app/README.md | 1 + edge-apps/charlie-hr-app/README.md | 1 + edge-apps/clock/README.md | 1 + edge-apps/countdown-timer/README.md | 1 + edge-apps/demo-dashboard/README.md | 1 + edge-apps/flying-toasters/README.md | 1 + edge-apps/iframe/README.md | 1 + edge-apps/instagram/README.md | 1 + edge-apps/powerbi-legacy/README.md | 1 + edge-apps/queue-management-system/README.md | 1 + edge-apps/rss-reader/README.md | 1 + edge-apps/sonar-dashboard/README.md | 1 + edge-apps/strava-club-leaderboard/README.md | 1 + edge-apps/tfl-bus-status/README.md | 1 + 15 files changed, 15 insertions(+) diff --git a/edge-apps/3d-text/README.md b/edge-apps/3d-text/README.md index 28b486f7a..780873097 100644 --- a/edge-apps/3d-text/README.md +++ b/edge-apps/3d-text/README.md @@ -9,3 +9,4 @@ The app supports the following settings: - `text` - The text to display in 3D. If not provided, the screen name will be used. - `text_color` - The color of the text in hex format (e.g. #9C5FE4). Defaults to brand primary color. - `background_color` - The background color of the text. If not provided, the default is black. + diff --git a/edge-apps/bamboo-hr-app/README.md b/edge-apps/bamboo-hr-app/README.md index d8f1ac3db..6f579a12e 100644 --- a/edge-apps/bamboo-hr-app/README.md +++ b/edge-apps/bamboo-hr-app/README.md @@ -1,3 +1,4 @@ # BambooHR App This app has been moved to its own repository: [Screenly/bamboo-hr-app](https://github.com/Screenly/bamboo-hr-app/) + diff --git a/edge-apps/charlie-hr-app/README.md b/edge-apps/charlie-hr-app/README.md index 8751aa3e8..8b3b0cce3 100644 --- a/edge-apps/charlie-hr-app/README.md +++ b/edge-apps/charlie-hr-app/README.md @@ -70,3 +70,4 @@ screenly edge-app setting set override_locale='en' ## Support For issues or questions, please contact Screenly support or open an issue in the repository. + diff --git a/edge-apps/clock/README.md b/edge-apps/clock/README.md index 6db9dbdab..71e763905 100644 --- a/edge-apps/clock/README.md +++ b/edge-apps/clock/README.md @@ -51,3 +51,4 @@ bun run screenshots ``` Screenshots are saved to the `screenshots/` directory. + diff --git a/edge-apps/countdown-timer/README.md b/edge-apps/countdown-timer/README.md index 0599f339e..2e17e020d 100644 --- a/edge-apps/countdown-timer/README.md +++ b/edge-apps/countdown-timer/README.md @@ -60,3 +60,4 @@ See [this page](https://momentjs.com/) for the list of all possible values for t Alternatively, you can call `moment.locales()`, which returns all the supported locale values. Setting invalid values for the timezone won't crash the app itself, it'll just fall back to the default time. + diff --git a/edge-apps/demo-dashboard/README.md b/edge-apps/demo-dashboard/README.md index 097540414..54d85bb04 100644 --- a/edge-apps/demo-dashboard/README.md +++ b/edge-apps/demo-dashboard/README.md @@ -65,3 +65,4 @@ $ screenly edge-app instance create ``` For more details, please check the [Demo Dashboard App Page](https://www.screenly.io/edge-apps/demo-dashboard/). + diff --git a/edge-apps/flying-toasters/README.md b/edge-apps/flying-toasters/README.md index 96b5a0761..b5f5d6228 100644 --- a/edge-apps/flying-toasters/README.md +++ b/edge-apps/flying-toasters/README.md @@ -24,3 +24,4 @@ $ screenly edge-app version \ ## Credits The original CSS/HTML was written by [Bryan Braun](https://github.com/bryanbraun/after-dark-css). This package merely re-packaged this as an Edge App (with permission from Bryan). + diff --git a/edge-apps/iframe/README.md b/edge-apps/iframe/README.md index 3b0dd16f0..1537c5692 100644 --- a/edge-apps/iframe/README.md +++ b/edge-apps/iframe/README.md @@ -59,3 +59,4 @@ Steps 9. **Assign Asset to Playlist and Device** - Assign the playlist to a device. Now, the iFrame Edge App has been configured, and the designated webpage/dashboard will be presented on the Screenly-connected TV/Monitor. + diff --git a/edge-apps/instagram/README.md b/edge-apps/instagram/README.md index 135373a6d..b3c2f0daf 100644 --- a/edge-apps/instagram/README.md +++ b/edge-apps/instagram/README.md @@ -13,3 +13,4 @@ $ screenly edge-app deploy $ screenly edge-app instance create $ screenly edge-app secret set instagram_api_token=MY_META_TOKEN ``` + diff --git a/edge-apps/powerbi-legacy/README.md b/edge-apps/powerbi-legacy/README.md index 25eb43ff8..70e07c122 100644 --- a/edge-apps/powerbi-legacy/README.md +++ b/edge-apps/powerbi-legacy/README.md @@ -3,3 +3,4 @@ A dashboard for displaying Power BI dashboards and reports with big focus on security. This Edge App was developed for a Fortune 500 client that with very strict security requirements. For details, please see the [tutorial](https://www.screenly.io/tutorials/powerbi-legacy/). + diff --git a/edge-apps/queue-management-system/README.md b/edge-apps/queue-management-system/README.md index cafcac4c2..3e8df0ab4 100644 --- a/edge-apps/queue-management-system/README.md +++ b/edge-apps/queue-management-system/README.md @@ -132,3 +132,4 @@ This is a proof-of-concept implementation with several limitations: - No authentication or security measures For a production implementation, these limitations would need to be addressed along with proper testing and security measures. + diff --git a/edge-apps/rss-reader/README.md b/edge-apps/rss-reader/README.md index 5a1985ea8..1ec730c66 100644 --- a/edge-apps/rss-reader/README.md +++ b/edge-apps/rss-reader/README.md @@ -1,3 +1,4 @@ # RSS Reader This app has been moved to its own repository: [Screenly/rss-reader-app](https://github.com/Screenly/rss-reader-app/) + diff --git a/edge-apps/sonar-dashboard/README.md b/edge-apps/sonar-dashboard/README.md index db6caadcd..df84cf047 100644 --- a/edge-apps/sonar-dashboard/README.md +++ b/edge-apps/sonar-dashboard/README.md @@ -149,3 +149,4 @@ Provides historical data for the timeline chart: - **Space Utilization**: Analyze usage patterns in offices, libraries, or public spaces - **Marketing Insights**: Understand customer dwell time and visit patterns - **Security**: Monitor occupancy levels for safety compliance + diff --git a/edge-apps/strava-club-leaderboard/README.md b/edge-apps/strava-club-leaderboard/README.md index 289319dc7..f4bf4aab7 100644 --- a/edge-apps/strava-club-leaderboard/README.md +++ b/edge-apps/strava-club-leaderboard/README.md @@ -170,3 +170,4 @@ For issues or questions: --- **Note**: This app requires a Strava account and API access. Ensure you comply with Strava's API terms of service and rate limits. + diff --git a/edge-apps/tfl-bus-status/README.md b/edge-apps/tfl-bus-status/README.md index cde02fed2..2f2306e6c 100644 --- a/edge-apps/tfl-bus-status/README.md +++ b/edge-apps/tfl-bus-status/README.md @@ -60,3 +60,4 @@ Steps 9. **Assign Asset to Playlist and Device** - Assign the playlist to a device. Now, the TFL Bus status Edge App has been configured, and the designated webpage/dashboard will be presented on the Screenly-connected TV/Monitor. + From a6070d15c485acf8b41a9dc8f460d4b7c7120aad Mon Sep 17 00:00:00 2001 From: nicomiguelino Date: Mon, 25 May 2026 22:36:45 -0700 Subject: [PATCH 05/10] Revert "chore(temp): trigger CI for simple and full checks" This reverts commit 7907d4d8337fd864c74b950c9aa892c4f973aae7. --- edge-apps/3d-text/README.md | 1 - edge-apps/bamboo-hr-app/README.md | 1 - edge-apps/charlie-hr-app/README.md | 1 - edge-apps/clock/README.md | 1 - edge-apps/countdown-timer/README.md | 1 - edge-apps/demo-dashboard/README.md | 1 - edge-apps/flying-toasters/README.md | 1 - edge-apps/iframe/README.md | 1 - edge-apps/instagram/README.md | 1 - edge-apps/powerbi-legacy/README.md | 1 - edge-apps/queue-management-system/README.md | 1 - edge-apps/rss-reader/README.md | 1 - edge-apps/sonar-dashboard/README.md | 1 - edge-apps/strava-club-leaderboard/README.md | 1 - edge-apps/tfl-bus-status/README.md | 1 - 15 files changed, 15 deletions(-) diff --git a/edge-apps/3d-text/README.md b/edge-apps/3d-text/README.md index 780873097..28b486f7a 100644 --- a/edge-apps/3d-text/README.md +++ b/edge-apps/3d-text/README.md @@ -9,4 +9,3 @@ The app supports the following settings: - `text` - The text to display in 3D. If not provided, the screen name will be used. - `text_color` - The color of the text in hex format (e.g. #9C5FE4). Defaults to brand primary color. - `background_color` - The background color of the text. If not provided, the default is black. - diff --git a/edge-apps/bamboo-hr-app/README.md b/edge-apps/bamboo-hr-app/README.md index 6f579a12e..d8f1ac3db 100644 --- a/edge-apps/bamboo-hr-app/README.md +++ b/edge-apps/bamboo-hr-app/README.md @@ -1,4 +1,3 @@ # BambooHR App This app has been moved to its own repository: [Screenly/bamboo-hr-app](https://github.com/Screenly/bamboo-hr-app/) - diff --git a/edge-apps/charlie-hr-app/README.md b/edge-apps/charlie-hr-app/README.md index 8b3b0cce3..8751aa3e8 100644 --- a/edge-apps/charlie-hr-app/README.md +++ b/edge-apps/charlie-hr-app/README.md @@ -70,4 +70,3 @@ screenly edge-app setting set override_locale='en' ## Support For issues or questions, please contact Screenly support or open an issue in the repository. - diff --git a/edge-apps/clock/README.md b/edge-apps/clock/README.md index 71e763905..6db9dbdab 100644 --- a/edge-apps/clock/README.md +++ b/edge-apps/clock/README.md @@ -51,4 +51,3 @@ bun run screenshots ``` Screenshots are saved to the `screenshots/` directory. - diff --git a/edge-apps/countdown-timer/README.md b/edge-apps/countdown-timer/README.md index 2e17e020d..0599f339e 100644 --- a/edge-apps/countdown-timer/README.md +++ b/edge-apps/countdown-timer/README.md @@ -60,4 +60,3 @@ See [this page](https://momentjs.com/) for the list of all possible values for t Alternatively, you can call `moment.locales()`, which returns all the supported locale values. Setting invalid values for the timezone won't crash the app itself, it'll just fall back to the default time. - diff --git a/edge-apps/demo-dashboard/README.md b/edge-apps/demo-dashboard/README.md index 54d85bb04..097540414 100644 --- a/edge-apps/demo-dashboard/README.md +++ b/edge-apps/demo-dashboard/README.md @@ -65,4 +65,3 @@ $ screenly edge-app instance create ``` For more details, please check the [Demo Dashboard App Page](https://www.screenly.io/edge-apps/demo-dashboard/). - diff --git a/edge-apps/flying-toasters/README.md b/edge-apps/flying-toasters/README.md index b5f5d6228..96b5a0761 100644 --- a/edge-apps/flying-toasters/README.md +++ b/edge-apps/flying-toasters/README.md @@ -24,4 +24,3 @@ $ screenly edge-app version \ ## Credits The original CSS/HTML was written by [Bryan Braun](https://github.com/bryanbraun/after-dark-css). This package merely re-packaged this as an Edge App (with permission from Bryan). - diff --git a/edge-apps/iframe/README.md b/edge-apps/iframe/README.md index 1537c5692..3b0dd16f0 100644 --- a/edge-apps/iframe/README.md +++ b/edge-apps/iframe/README.md @@ -59,4 +59,3 @@ Steps 9. **Assign Asset to Playlist and Device** - Assign the playlist to a device. Now, the iFrame Edge App has been configured, and the designated webpage/dashboard will be presented on the Screenly-connected TV/Monitor. - diff --git a/edge-apps/instagram/README.md b/edge-apps/instagram/README.md index b3c2f0daf..135373a6d 100644 --- a/edge-apps/instagram/README.md +++ b/edge-apps/instagram/README.md @@ -13,4 +13,3 @@ $ screenly edge-app deploy $ screenly edge-app instance create $ screenly edge-app secret set instagram_api_token=MY_META_TOKEN ``` - diff --git a/edge-apps/powerbi-legacy/README.md b/edge-apps/powerbi-legacy/README.md index 70e07c122..25eb43ff8 100644 --- a/edge-apps/powerbi-legacy/README.md +++ b/edge-apps/powerbi-legacy/README.md @@ -3,4 +3,3 @@ A dashboard for displaying Power BI dashboards and reports with big focus on security. This Edge App was developed for a Fortune 500 client that with very strict security requirements. For details, please see the [tutorial](https://www.screenly.io/tutorials/powerbi-legacy/). - diff --git a/edge-apps/queue-management-system/README.md b/edge-apps/queue-management-system/README.md index 3e8df0ab4..cafcac4c2 100644 --- a/edge-apps/queue-management-system/README.md +++ b/edge-apps/queue-management-system/README.md @@ -132,4 +132,3 @@ This is a proof-of-concept implementation with several limitations: - No authentication or security measures For a production implementation, these limitations would need to be addressed along with proper testing and security measures. - diff --git a/edge-apps/rss-reader/README.md b/edge-apps/rss-reader/README.md index 1ec730c66..5a1985ea8 100644 --- a/edge-apps/rss-reader/README.md +++ b/edge-apps/rss-reader/README.md @@ -1,4 +1,3 @@ # RSS Reader This app has been moved to its own repository: [Screenly/rss-reader-app](https://github.com/Screenly/rss-reader-app/) - diff --git a/edge-apps/sonar-dashboard/README.md b/edge-apps/sonar-dashboard/README.md index df84cf047..db6caadcd 100644 --- a/edge-apps/sonar-dashboard/README.md +++ b/edge-apps/sonar-dashboard/README.md @@ -149,4 +149,3 @@ Provides historical data for the timeline chart: - **Space Utilization**: Analyze usage patterns in offices, libraries, or public spaces - **Marketing Insights**: Understand customer dwell time and visit patterns - **Security**: Monitor occupancy levels for safety compliance - diff --git a/edge-apps/strava-club-leaderboard/README.md b/edge-apps/strava-club-leaderboard/README.md index f4bf4aab7..289319dc7 100644 --- a/edge-apps/strava-club-leaderboard/README.md +++ b/edge-apps/strava-club-leaderboard/README.md @@ -170,4 +170,3 @@ For issues or questions: --- **Note**: This app requires a Strava account and API access. Ensure you comply with Strava's API terms of service and rate limits. - diff --git a/edge-apps/tfl-bus-status/README.md b/edge-apps/tfl-bus-status/README.md index 2f2306e6c..cde02fed2 100644 --- a/edge-apps/tfl-bus-status/README.md +++ b/edge-apps/tfl-bus-status/README.md @@ -60,4 +60,3 @@ Steps 9. **Assign Asset to Playlist and Device** - Assign the playlist to a device. Now, the TFL Bus status Edge App has been configured, and the designated webpage/dashboard will be presented on the Screenly-connected TV/Monitor. - From 3c1068bf530f83c6c20e7f247e9f1993aa03f18c Mon Sep 17 00:00:00 2001 From: nicomiguelino Date: Mon, 25 May 2026 22:55:09 -0700 Subject: [PATCH 06/10] fix(ci): resolve Copilot review comments on simple checks - Use glob match instead of regex in deduplication check to prevent substring collisions (e.g. `powerbi` vs `powerbi-legacy`) - Add `md` to Prettier glob so Markdown files are included in formatting checks - Replace `echo | xargs` with `find -print0 | xargs -0 -r` in HTML, CSS, and JS lint steps for safe handling of filenames - Add `edge-apps/eslint.config.cjs` as a shared ESLint config for apps without a build system - Update `edge-apps/README.md` to match CI behavior for CSS and JS lint examples --- .github/workflows/edge-app-checks.yml | 29 +++++++++++---------------- edge-apps/README.md | 9 ++++++--- edge-apps/eslint.config.cjs | 26 ++++++++++++++++++++++++ 3 files changed, 44 insertions(+), 20 deletions(-) create mode 100644 edge-apps/eslint.config.cjs diff --git a/.github/workflows/edge-app-checks.yml b/.github/workflows/edge-app-checks.yml index 80f7fc865..282ebecb4 100644 --- a/.github/workflows/edge-app-checks.yml +++ b/.github/workflows/edge-app-checks.yml @@ -52,7 +52,7 @@ jobs: local app="$1" if [[ -n "$app" && "$app" != "helpers" && "$app" != ".bun-create" ]]; then if [[ -d "edge-apps/$app" ]]; then - if [[ ! " $CHANGED_APPS " =~ $app ]]; then + if [[ " $CHANGED_APPS " != *" $app "* ]]; then CHANGED_APPS="$CHANGED_APPS $app" fi fi @@ -208,7 +208,7 @@ jobs: run: | bunx prettier --check \ --config edge-apps/.prettierrc.json \ - "edge-apps/${{ matrix.app }}/**/*.{html,css,js,json,yml,yaml}" + "edge-apps/${{ matrix.app }}/**/*.{html,css,js,json,yml,yaml,md}" - name: Run Markdown lint run: | @@ -216,37 +216,32 @@ jobs: - name: Run HTML lint run: | - FILES=$(find "edge-apps/${{ matrix.app }}" \ + find "edge-apps/${{ matrix.app }}" \ -name "*.html" \ -not -path "*/static/*" \ -not -path "*/dist/*" \ - -not -path "*/node_modules/*") - if [[ -n "$FILES" ]]; then - echo "$FILES" | xargs bunx htmlhint - fi + -not -path "*/node_modules/*" \ + -print0 | xargs -0 -r bunx htmlhint - name: Run CSS lint run: | - FILES=$(find "edge-apps/${{ matrix.app }}" \ + find "edge-apps/${{ matrix.app }}" \ -name "*.css" \ -not -path "*/dist/*" \ - -not -path "*/node_modules/*") - if [[ -n "$FILES" ]]; then - echo "$FILES" | xargs bunx stylelint \ + -not -path "*/node_modules/*" \ + -print0 | xargs -0 -r bunx stylelint \ --config edge-apps/.stylelintrc.json - fi - name: Run JavaScript lint run: | - FILES=$(find "edge-apps/${{ matrix.app }}" \ + find "edge-apps/${{ matrix.app }}" \ -name "*.js" \ -not -name "*.min.js" \ -not -name "eslint.config.js" \ -not -path "*/dist/*" \ - -not -path "*/node_modules/*") - if [[ -n "$FILES" ]]; then - echo "$FILES" | xargs bunx eslint - fi + -not -path "*/node_modules/*" \ + -print0 | xargs -0 -r bunx eslint \ + --config edge-apps/eslint.config.cjs summary: name: Summary diff --git a/edge-apps/README.md b/edge-apps/README.md index 02751b723..7b9feafa9 100644 --- a/edge-apps/README.md +++ b/edge-apps/README.md @@ -45,7 +45,7 @@ From the repository root, run the following tools via `bunx`: ```bash # Formatting (HTML, CSS, JS, JSON, YAML, Markdown) -bunx prettier --check --config edge-apps/.prettierrc.json "edge-apps//**/*.{html,css,js,json,yml,yaml}" +bunx prettier --check --config edge-apps/.prettierrc.json "edge-apps//**/*.{html,css,js,json,yml,yaml,md}" # Markdown bunx markdownlint-cli2 "edge-apps//**/*.md" @@ -54,10 +54,13 @@ bunx markdownlint-cli2 "edge-apps//**/*.md" bunx htmlhint "edge-apps//index.html" # CSS (excludes dist/) -bunx stylelint --config edge-apps/.stylelintrc.json "edge-apps//**/*.css" +find edge-apps/ -name "*.css" -not -path "*/dist/*" -not -path "*/node_modules/*" \ + -print0 | xargs -0 -r bunx stylelint --config edge-apps/.stylelintrc.json # JavaScript (excludes dist/ and minified files) -bunx eslint "edge-apps//path/to/file.js" +find edge-apps/ -name "*.js" -not -name "*.min.js" -not -name "eslint.config.js" \ + -not -path "*/dist/*" -not -path "*/node_modules/*" \ + -print0 | xargs -0 -r bunx eslint --config edge-apps/eslint.config.cjs ``` ## TypeScript Library diff --git a/edge-apps/eslint.config.cjs b/edge-apps/eslint.config.cjs new file mode 100644 index 000000000..744896466 --- /dev/null +++ b/edge-apps/eslint.config.cjs @@ -0,0 +1,26 @@ +/** @type {import('eslint').Linter.Config[]} */ +module.exports = [ + { + languageOptions: { + ecmaVersion: 2020, + sourceType: 'script', + globals: { + window: 'readonly', + document: 'readonly', + console: 'readonly', + fetch: 'readonly', + screenly: 'readonly', + setTimeout: 'readonly', + setInterval: 'readonly', + clearTimeout: 'readonly', + clearInterval: 'readonly', + alert: 'readonly', + location: 'readonly', + }, + }, + rules: { + 'no-undef': 'error', + 'no-unused-vars': 'warn', + }, + }, +] From e482e9e3ff4cbf833c142f7b7ddedc55e2f3c799 Mon Sep 17 00:00:00 2001 From: nicomiguelino Date: Mon, 25 May 2026 22:57:47 -0700 Subject: [PATCH 07/10] chore(temp): trigger CI for simple and full checks Temporary whitespace-only changes to README files across all non-build-system Edge Apps and the clock app to exercise the `run-simple-checks` and `run-full-checks` CI jobs. This commit will be reverted once CI results are confirmed. --- edge-apps/3d-text/README.md | 1 + edge-apps/bamboo-hr-app/README.md | 1 + edge-apps/charlie-hr-app/README.md | 1 + edge-apps/clock/README.md | 1 + edge-apps/countdown-timer/README.md | 1 + edge-apps/demo-dashboard/README.md | 1 + edge-apps/flying-toasters/README.md | 1 + edge-apps/iframe/README.md | 1 + edge-apps/instagram/README.md | 1 + edge-apps/powerbi-legacy/README.md | 1 + edge-apps/queue-management-system/README.md | 1 + edge-apps/rss-reader/README.md | 1 + edge-apps/sonar-dashboard/README.md | 1 + edge-apps/strava-club-leaderboard/README.md | 1 + edge-apps/tfl-bus-status/README.md | 1 + 15 files changed, 15 insertions(+) diff --git a/edge-apps/3d-text/README.md b/edge-apps/3d-text/README.md index 28b486f7a..780873097 100644 --- a/edge-apps/3d-text/README.md +++ b/edge-apps/3d-text/README.md @@ -9,3 +9,4 @@ The app supports the following settings: - `text` - The text to display in 3D. If not provided, the screen name will be used. - `text_color` - The color of the text in hex format (e.g. #9C5FE4). Defaults to brand primary color. - `background_color` - The background color of the text. If not provided, the default is black. + diff --git a/edge-apps/bamboo-hr-app/README.md b/edge-apps/bamboo-hr-app/README.md index d8f1ac3db..6f579a12e 100644 --- a/edge-apps/bamboo-hr-app/README.md +++ b/edge-apps/bamboo-hr-app/README.md @@ -1,3 +1,4 @@ # BambooHR App This app has been moved to its own repository: [Screenly/bamboo-hr-app](https://github.com/Screenly/bamboo-hr-app/) + diff --git a/edge-apps/charlie-hr-app/README.md b/edge-apps/charlie-hr-app/README.md index 8751aa3e8..8b3b0cce3 100644 --- a/edge-apps/charlie-hr-app/README.md +++ b/edge-apps/charlie-hr-app/README.md @@ -70,3 +70,4 @@ screenly edge-app setting set override_locale='en' ## Support For issues or questions, please contact Screenly support or open an issue in the repository. + diff --git a/edge-apps/clock/README.md b/edge-apps/clock/README.md index 6db9dbdab..71e763905 100644 --- a/edge-apps/clock/README.md +++ b/edge-apps/clock/README.md @@ -51,3 +51,4 @@ bun run screenshots ``` Screenshots are saved to the `screenshots/` directory. + diff --git a/edge-apps/countdown-timer/README.md b/edge-apps/countdown-timer/README.md index 0599f339e..2e17e020d 100644 --- a/edge-apps/countdown-timer/README.md +++ b/edge-apps/countdown-timer/README.md @@ -60,3 +60,4 @@ See [this page](https://momentjs.com/) for the list of all possible values for t Alternatively, you can call `moment.locales()`, which returns all the supported locale values. Setting invalid values for the timezone won't crash the app itself, it'll just fall back to the default time. + diff --git a/edge-apps/demo-dashboard/README.md b/edge-apps/demo-dashboard/README.md index 097540414..54d85bb04 100644 --- a/edge-apps/demo-dashboard/README.md +++ b/edge-apps/demo-dashboard/README.md @@ -65,3 +65,4 @@ $ screenly edge-app instance create ``` For more details, please check the [Demo Dashboard App Page](https://www.screenly.io/edge-apps/demo-dashboard/). + diff --git a/edge-apps/flying-toasters/README.md b/edge-apps/flying-toasters/README.md index 96b5a0761..b5f5d6228 100644 --- a/edge-apps/flying-toasters/README.md +++ b/edge-apps/flying-toasters/README.md @@ -24,3 +24,4 @@ $ screenly edge-app version \ ## Credits The original CSS/HTML was written by [Bryan Braun](https://github.com/bryanbraun/after-dark-css). This package merely re-packaged this as an Edge App (with permission from Bryan). + diff --git a/edge-apps/iframe/README.md b/edge-apps/iframe/README.md index 3b0dd16f0..1537c5692 100644 --- a/edge-apps/iframe/README.md +++ b/edge-apps/iframe/README.md @@ -59,3 +59,4 @@ Steps 9. **Assign Asset to Playlist and Device** - Assign the playlist to a device. Now, the iFrame Edge App has been configured, and the designated webpage/dashboard will be presented on the Screenly-connected TV/Monitor. + diff --git a/edge-apps/instagram/README.md b/edge-apps/instagram/README.md index 135373a6d..b3c2f0daf 100644 --- a/edge-apps/instagram/README.md +++ b/edge-apps/instagram/README.md @@ -13,3 +13,4 @@ $ screenly edge-app deploy $ screenly edge-app instance create $ screenly edge-app secret set instagram_api_token=MY_META_TOKEN ``` + diff --git a/edge-apps/powerbi-legacy/README.md b/edge-apps/powerbi-legacy/README.md index 25eb43ff8..70e07c122 100644 --- a/edge-apps/powerbi-legacy/README.md +++ b/edge-apps/powerbi-legacy/README.md @@ -3,3 +3,4 @@ A dashboard for displaying Power BI dashboards and reports with big focus on security. This Edge App was developed for a Fortune 500 client that with very strict security requirements. For details, please see the [tutorial](https://www.screenly.io/tutorials/powerbi-legacy/). + diff --git a/edge-apps/queue-management-system/README.md b/edge-apps/queue-management-system/README.md index cafcac4c2..3e8df0ab4 100644 --- a/edge-apps/queue-management-system/README.md +++ b/edge-apps/queue-management-system/README.md @@ -132,3 +132,4 @@ This is a proof-of-concept implementation with several limitations: - No authentication or security measures For a production implementation, these limitations would need to be addressed along with proper testing and security measures. + diff --git a/edge-apps/rss-reader/README.md b/edge-apps/rss-reader/README.md index 5a1985ea8..1ec730c66 100644 --- a/edge-apps/rss-reader/README.md +++ b/edge-apps/rss-reader/README.md @@ -1,3 +1,4 @@ # RSS Reader This app has been moved to its own repository: [Screenly/rss-reader-app](https://github.com/Screenly/rss-reader-app/) + diff --git a/edge-apps/sonar-dashboard/README.md b/edge-apps/sonar-dashboard/README.md index db6caadcd..df84cf047 100644 --- a/edge-apps/sonar-dashboard/README.md +++ b/edge-apps/sonar-dashboard/README.md @@ -149,3 +149,4 @@ Provides historical data for the timeline chart: - **Space Utilization**: Analyze usage patterns in offices, libraries, or public spaces - **Marketing Insights**: Understand customer dwell time and visit patterns - **Security**: Monitor occupancy levels for safety compliance + diff --git a/edge-apps/strava-club-leaderboard/README.md b/edge-apps/strava-club-leaderboard/README.md index 289319dc7..f4bf4aab7 100644 --- a/edge-apps/strava-club-leaderboard/README.md +++ b/edge-apps/strava-club-leaderboard/README.md @@ -170,3 +170,4 @@ For issues or questions: --- **Note**: This app requires a Strava account and API access. Ensure you comply with Strava's API terms of service and rate limits. + diff --git a/edge-apps/tfl-bus-status/README.md b/edge-apps/tfl-bus-status/README.md index cde02fed2..2f2306e6c 100644 --- a/edge-apps/tfl-bus-status/README.md +++ b/edge-apps/tfl-bus-status/README.md @@ -60,3 +60,4 @@ Steps 9. **Assign Asset to Playlist and Device** - Assign the playlist to a device. Now, the TFL Bus status Edge App has been configured, and the designated webpage/dashboard will be presented on the Screenly-connected TV/Monitor. + From 3df8ee5d027cb15099d868432441b6e837e12b9a Mon Sep 17 00:00:00 2001 From: nicomiguelino Date: Mon, 25 May 2026 23:00:21 -0700 Subject: [PATCH 08/10] chore(temp): skip formatting check in simple checks Temporarily disabled until formatting is fixed across non-build-system apps. Will be re-enabled in a follow-up PR. --- .github/workflows/edge-app-checks.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/edge-app-checks.yml b/.github/workflows/edge-app-checks.yml index 282ebecb4..f6c2fead1 100644 --- a/.github/workflows/edge-app-checks.yml +++ b/.github/workflows/edge-app-checks.yml @@ -205,6 +205,7 @@ jobs: bun-version: 1.2.2 - name: Run formatting check + if: false # TODO: re-enable once formatting is fixed across apps run: | bunx prettier --check \ --config edge-apps/.prettierrc.json \ From ed34cd171cf52f777428e2ef75a690daecb8f852 Mon Sep 17 00:00:00 2001 From: nicomiguelino Date: Mon, 25 May 2026 23:06:34 -0700 Subject: [PATCH 09/10] Revert "chore(temp): trigger CI for simple and full checks" This reverts commit e482e9e3ff4cbf833c142f7b7ddedc55e2f3c799. --- edge-apps/3d-text/README.md | 1 - edge-apps/bamboo-hr-app/README.md | 1 - edge-apps/charlie-hr-app/README.md | 1 - edge-apps/clock/README.md | 1 - edge-apps/countdown-timer/README.md | 1 - edge-apps/demo-dashboard/README.md | 1 - edge-apps/flying-toasters/README.md | 1 - edge-apps/iframe/README.md | 1 - edge-apps/instagram/README.md | 1 - edge-apps/powerbi-legacy/README.md | 1 - edge-apps/queue-management-system/README.md | 1 - edge-apps/rss-reader/README.md | 1 - edge-apps/sonar-dashboard/README.md | 1 - edge-apps/strava-club-leaderboard/README.md | 1 - edge-apps/tfl-bus-status/README.md | 1 - 15 files changed, 15 deletions(-) diff --git a/edge-apps/3d-text/README.md b/edge-apps/3d-text/README.md index 780873097..28b486f7a 100644 --- a/edge-apps/3d-text/README.md +++ b/edge-apps/3d-text/README.md @@ -9,4 +9,3 @@ The app supports the following settings: - `text` - The text to display in 3D. If not provided, the screen name will be used. - `text_color` - The color of the text in hex format (e.g. #9C5FE4). Defaults to brand primary color. - `background_color` - The background color of the text. If not provided, the default is black. - diff --git a/edge-apps/bamboo-hr-app/README.md b/edge-apps/bamboo-hr-app/README.md index 6f579a12e..d8f1ac3db 100644 --- a/edge-apps/bamboo-hr-app/README.md +++ b/edge-apps/bamboo-hr-app/README.md @@ -1,4 +1,3 @@ # BambooHR App This app has been moved to its own repository: [Screenly/bamboo-hr-app](https://github.com/Screenly/bamboo-hr-app/) - diff --git a/edge-apps/charlie-hr-app/README.md b/edge-apps/charlie-hr-app/README.md index 8b3b0cce3..8751aa3e8 100644 --- a/edge-apps/charlie-hr-app/README.md +++ b/edge-apps/charlie-hr-app/README.md @@ -70,4 +70,3 @@ screenly edge-app setting set override_locale='en' ## Support For issues or questions, please contact Screenly support or open an issue in the repository. - diff --git a/edge-apps/clock/README.md b/edge-apps/clock/README.md index 71e763905..6db9dbdab 100644 --- a/edge-apps/clock/README.md +++ b/edge-apps/clock/README.md @@ -51,4 +51,3 @@ bun run screenshots ``` Screenshots are saved to the `screenshots/` directory. - diff --git a/edge-apps/countdown-timer/README.md b/edge-apps/countdown-timer/README.md index 2e17e020d..0599f339e 100644 --- a/edge-apps/countdown-timer/README.md +++ b/edge-apps/countdown-timer/README.md @@ -60,4 +60,3 @@ See [this page](https://momentjs.com/) for the list of all possible values for t Alternatively, you can call `moment.locales()`, which returns all the supported locale values. Setting invalid values for the timezone won't crash the app itself, it'll just fall back to the default time. - diff --git a/edge-apps/demo-dashboard/README.md b/edge-apps/demo-dashboard/README.md index 54d85bb04..097540414 100644 --- a/edge-apps/demo-dashboard/README.md +++ b/edge-apps/demo-dashboard/README.md @@ -65,4 +65,3 @@ $ screenly edge-app instance create ``` For more details, please check the [Demo Dashboard App Page](https://www.screenly.io/edge-apps/demo-dashboard/). - diff --git a/edge-apps/flying-toasters/README.md b/edge-apps/flying-toasters/README.md index b5f5d6228..96b5a0761 100644 --- a/edge-apps/flying-toasters/README.md +++ b/edge-apps/flying-toasters/README.md @@ -24,4 +24,3 @@ $ screenly edge-app version \ ## Credits The original CSS/HTML was written by [Bryan Braun](https://github.com/bryanbraun/after-dark-css). This package merely re-packaged this as an Edge App (with permission from Bryan). - diff --git a/edge-apps/iframe/README.md b/edge-apps/iframe/README.md index 1537c5692..3b0dd16f0 100644 --- a/edge-apps/iframe/README.md +++ b/edge-apps/iframe/README.md @@ -59,4 +59,3 @@ Steps 9. **Assign Asset to Playlist and Device** - Assign the playlist to a device. Now, the iFrame Edge App has been configured, and the designated webpage/dashboard will be presented on the Screenly-connected TV/Monitor. - diff --git a/edge-apps/instagram/README.md b/edge-apps/instagram/README.md index b3c2f0daf..135373a6d 100644 --- a/edge-apps/instagram/README.md +++ b/edge-apps/instagram/README.md @@ -13,4 +13,3 @@ $ screenly edge-app deploy $ screenly edge-app instance create $ screenly edge-app secret set instagram_api_token=MY_META_TOKEN ``` - diff --git a/edge-apps/powerbi-legacy/README.md b/edge-apps/powerbi-legacy/README.md index 70e07c122..25eb43ff8 100644 --- a/edge-apps/powerbi-legacy/README.md +++ b/edge-apps/powerbi-legacy/README.md @@ -3,4 +3,3 @@ A dashboard for displaying Power BI dashboards and reports with big focus on security. This Edge App was developed for a Fortune 500 client that with very strict security requirements. For details, please see the [tutorial](https://www.screenly.io/tutorials/powerbi-legacy/). - diff --git a/edge-apps/queue-management-system/README.md b/edge-apps/queue-management-system/README.md index 3e8df0ab4..cafcac4c2 100644 --- a/edge-apps/queue-management-system/README.md +++ b/edge-apps/queue-management-system/README.md @@ -132,4 +132,3 @@ This is a proof-of-concept implementation with several limitations: - No authentication or security measures For a production implementation, these limitations would need to be addressed along with proper testing and security measures. - diff --git a/edge-apps/rss-reader/README.md b/edge-apps/rss-reader/README.md index 1ec730c66..5a1985ea8 100644 --- a/edge-apps/rss-reader/README.md +++ b/edge-apps/rss-reader/README.md @@ -1,4 +1,3 @@ # RSS Reader This app has been moved to its own repository: [Screenly/rss-reader-app](https://github.com/Screenly/rss-reader-app/) - diff --git a/edge-apps/sonar-dashboard/README.md b/edge-apps/sonar-dashboard/README.md index df84cf047..db6caadcd 100644 --- a/edge-apps/sonar-dashboard/README.md +++ b/edge-apps/sonar-dashboard/README.md @@ -149,4 +149,3 @@ Provides historical data for the timeline chart: - **Space Utilization**: Analyze usage patterns in offices, libraries, or public spaces - **Marketing Insights**: Understand customer dwell time and visit patterns - **Security**: Monitor occupancy levels for safety compliance - diff --git a/edge-apps/strava-club-leaderboard/README.md b/edge-apps/strava-club-leaderboard/README.md index f4bf4aab7..289319dc7 100644 --- a/edge-apps/strava-club-leaderboard/README.md +++ b/edge-apps/strava-club-leaderboard/README.md @@ -170,4 +170,3 @@ For issues or questions: --- **Note**: This app requires a Strava account and API access. Ensure you comply with Strava's API terms of service and rate limits. - diff --git a/edge-apps/tfl-bus-status/README.md b/edge-apps/tfl-bus-status/README.md index 2f2306e6c..cde02fed2 100644 --- a/edge-apps/tfl-bus-status/README.md +++ b/edge-apps/tfl-bus-status/README.md @@ -60,4 +60,3 @@ Steps 9. **Assign Asset to Playlist and Device** - Assign the playlist to a device. Now, the TFL Bus status Edge App has been configured, and the designated webpage/dashboard will be presented on the Screenly-connected TV/Monitor. - From 20603fd2cc95b2b053fa5c406573548d1800ab27 Mon Sep 17 00:00:00 2001 From: nicomiguelino Date: Mon, 25 May 2026 23:06:34 -0700 Subject: [PATCH 10/10] Revert "chore(temp): skip formatting check in simple checks" This reverts commit 3df8ee5d027cb15099d868432441b6e837e12b9a. --- .github/workflows/edge-app-checks.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/edge-app-checks.yml b/.github/workflows/edge-app-checks.yml index f6c2fead1..282ebecb4 100644 --- a/.github/workflows/edge-app-checks.yml +++ b/.github/workflows/edge-app-checks.yml @@ -205,7 +205,6 @@ jobs: bun-version: 1.2.2 - name: Run formatting check - if: false # TODO: re-enable once formatting is fixed across apps run: | bunx prettier --check \ --config edge-apps/.prettierrc.json \