diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 7ffcd306356..967532ff92f 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -227,52 +227,23 @@ jobs: - name: Lint Flatpak working-directory: build run: | + exceptions_file="${{ github.workspace }}/packaging/linux/flatpak/exceptions.json" + echo "Linting flatpak manifest" flatpak run --command=flatpak-builder-lint org.flatpak.Builder \ - manifest ${APP_ID}.yml > _flatpak-lint-exceptions_manifest.json || true + --exceptions \ + --user-exceptions "${exceptions_file}" \ + manifest \ + ${APP_ID}.yml echo "Linting flatpak repo" # TODO: add arg # --mirror-screenshots-url=https://dl.flathub.org/media \ flatpak run --command=flatpak-builder-lint org.flatpak.Builder \ - repo repo > _flatpak-lint-exceptions_repo.json || true - - checks=(manifest repo) - exit_code=0 - - # check if files are equal - for check in "${checks[@]}"; do - echo "Validating $check" - - # load baseline and result files - baseline="${{ github.workspace }}/packaging/linux/flatpak/flatpak-lint-baseline_${check}.json" - result="_flatpak-lint-exceptions_${check}.json" - - # Extract errors from both JSON files - readarray -t result_errors < <(jq -r '.errors[]' "$result") - readarray -t baseline_errors < <(jq -r '.errors[]' "$baseline") - - # Loop through result errors and check against baseline errors - for error in "${result_errors[@]}"; do - if printf '%s\n' "${baseline_errors[@]}" | grep -q -F "$error"; then - echo "::warning:: '$error'" - else - echo "::error:: '$error'" - exit_code=1 - fi - done - done - - # if exit code is not 0, print results - if [ $exit_code -ne 0 ]; then - echo "Manifest lint results:" - cat _flatpak-lint-exceptions_manifest.json - echo "Repo lint results:" - cat _flatpak-lint-exceptions_repo.json - fi - - # exit with the correct code - exit $exit_code + --exceptions \ + --user-exceptions "${exceptions_file}" \ + repo \ + repo - name: Package Flathub repo archive # copy files required to generate the Flathub repo diff --git a/packaging/linux/flatpak/exceptions.json b/packaging/linux/flatpak/exceptions.json new file mode 100644 index 00000000000..957f73849e5 --- /dev/null +++ b/packaging/linux/flatpak/exceptions.json @@ -0,0 +1,8 @@ +{ + "dev.lizardbyte.app.Sunshine": [ + "appstream-missing-screenshots", + "appstream-screenshots-not-mirrored-in-ostree", + "external-gitmodule-url-found", + "finish-args-flatpak-spawn-access" + ] +} diff --git a/packaging/linux/flatpak/flatpak-lint-baseline_manifest.json b/packaging/linux/flatpak/flatpak-lint-baseline_manifest.json deleted file mode 100644 index 4ad34c56941..00000000000 --- a/packaging/linux/flatpak/flatpak-lint-baseline_manifest.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "errors": [ - "external-gitmodule-url-found", - "finish-args-flatpak-spawn-access" - ], - "info": [ - "external-gitmodule-url-found: []", - "finish-args-flatpak-spawn-access: finish-args has a talk-name access for org.freedesktop.Flatpak" - ], - "message": "Please consult the documentation at https://docs.flathub.org/docs/for-app-authors/linter" -} diff --git a/packaging/linux/flatpak/flatpak-lint-baseline_repo.json b/packaging/linux/flatpak/flatpak-lint-baseline_repo.json deleted file mode 100644 index 9ebfcf11eeb..00000000000 --- a/packaging/linux/flatpak/flatpak-lint-baseline_repo.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "errors": [ - "appstream-missing-screenshots", - "appstream-sreenshots-not-mirrored-in-ostree", - "finish-args-flatpak-spawn-access" - ], - "info": [ - "appstream-missing-screenshots: Catalogue file has no screenshots. Please check if screenshot URLs are reachable", - "finish-args-flatpak-spawn-access: finish-args has a talk-name access for org.freedesktop.Flatpak" - ], - "message": "Please consult the documentation at https://docs.flathub.org/docs/for-app-authors/linter" -}