name: lint on: pull_request: jobs: brightscript: runs-on: ubuntu-latest steps: - uses: actions/checkout@master - uses: actions/setup-node@master with: node-version: "lts/*" cache: "npm" - run: npm ci - run: npx ropm install - run: npm run validate - run: npm run check-formatting translation-files: runs-on: ubuntu-latest steps: - name: Clone github repo uses: actions/checkout@master - name: Install xmllint and xmlstarlet using apt (from cache) uses: awalsh128/cache-apt-pkgs-action@latest with: packages: libxml2-utils xmlstarlet - name: Validate XML syntax run: xmllint --noout ./locale/en_US/translations.ts - name: Save output of duplicate check run: echo "tsDuplicates=$(xmlstarlet sel -t -m '/TS/context/message/source' -c '.' -nl ./locale/en_US/translations.ts | sort | uniq -d | awk '{ printf "%s", $0 }')" >> $GITHUB_ENV - name: Check for duplicates run: xmlstarlet sel -t -m '/TS/context/message/source' -f -o ' ' -c '.' -nl ./locale/en_US/translations.ts | sort | uniq -d - name: Duplicates found if: env.tsDuplicates != '' run: exit 1 json: runs-on: ubuntu-latest steps: - name: Clone github repo uses: actions/checkout@master - uses: actions/setup-node@master with: node-version: "lts/*" cache: "npm" - name: Install npm dependencies run: npm ci - name: Install roku package dependencies run: npx ropm install - name: Validate JSON syntax run: npm run lint-json markdown: runs-on: ubuntu-latest steps: - name: Clone github repo uses: actions/checkout@master - uses: actions/setup-node@master with: node-version: "lts/*" cache: "npm" - name: Install npm dependencies run: npm ci - name: Install roku package dependencies run: npx ropm install - uses: xt0rted/markdownlint-problem-matcher@98d94724052d20ca2e06c091f202e4c66c3c59fb # v2 - name: Lint markdown files run: npm run lint-markdown spelling: runs-on: ubuntu-latest steps: - name: Clone github repo uses: actions/checkout@master - uses: actions/setup-node@master with: node-version: "lts/*" cache: "npm" - name: Install npm dependencies run: npm ci - name: Install roku package dependencies run: npx ropm install - name: Check markdown files for spelling errors run: npm run lint-spelling