name: Run flatpak-builder-lint description: Runs flatpak-builder-lint with exceptions inputs: artifact: description: Type of artifact to lint (builddir, repo, manifest, appstream) required: true path: description: Path to flatpak-builder manifest or Flatpak build directory required: true workingDirectory: description: Working directory to clone flatpak-builder-lint required: false default: ${{ github.workspace }} runs: using: composite steps: - name: Check artifact type shell: bash working-directory: ${{ inputs.workingDirectory }} run: | : Check artifact input if ! [[ "${{ inputs.artifact }}" =~ builddir|repo|manifest|appstream ]]; then echo "::error::Given artifact type is incorrect" exit 2 fi - name: Run flatpak-builder-lint id: result shell: bash working-directory: ${{ inputs.workingDirectory }} run: | : Run flatpak-builder-lint return=0 result="$(flatpak-builder-lint --exceptions --user-exceptions ${GITHUB_ACTION_PATH}/exceptions.json ${{ inputs.artifact }} ${{ inputs.path }})" || return=$? if [[ ${return} != 0 && -z "${result}" ]]; then echo "::error::Error while running flatpak-builder-lint" exit 2 fi if [[ "${{ inputs.artifact }}" == "appstream" ]]; then echo "${result}" if [[ ${return} != 0 ]]; then echo "::error::Flatpak appstream info is not valid"; fi exit ${return} fi # This jq command selects any available array under the 'warnings' key in the JSON document # or provides an empty array as a fallback if the key is not present. This array is then # piped to the 'map' function to apply a transformation to every element in the array, # converting it to a string prefixed with the output level, the actual element value, and # finally the suffix string defined in 'template'. # # The result of this expression is concatenated with a similar expression doing the same # but for the 'errors' key and its associated array. # # The second jq invocation then selects each element of the array and outputs it directly, # which will be strings of the formats: # # * '::warning::