name: check on: workflow_dispatch: pull_request: types: [opened, synchronize, reopened] concurrency: group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} cancel-in-progress: true permissions: packages: read jobs: check: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Get list of changed files id: files run: | git fetch origin master:master ANY_CHANGED=false ALL_CHANGED_FILES=$(git diff --name-only master -- streams/ | tr '\n' ' ') if [ -n "${ALL_CHANGED_FILES}" ]; then ANY_CHANGED=true fi echo "all_changed_files=$ALL_CHANGED_FILES" >> "$GITHUB_OUTPUT" echo "any_changed=$ANY_CHANGED" >> "$GITHUB_OUTPUT" - uses: actions/setup-node@v4 if: steps.files.outputs.any_changed == 'true' with: node-version: 22 cache: 'npm' - name: Setup .npmrc for GitHub Packages if: steps.files.outputs.any_changed == 'true' run: | echo "//npm.pkg.github.com/:_authToken=${{ secrets.GITHUB_TOKEN }}" >> .npmrc echo "@iptv-org:registry=https://npm.pkg.github.com/" >> .npmrc echo "always-auth=true" >> .npmrc - name: Install dependencies if: steps.files.outputs.any_changed == 'true' run: npm install - name: Validate changed files if: steps.files.outputs.any_changed == 'true' run: | npm run playlist:lint -- ${{ steps.files.outputs.all_changed_files }} npm run playlist:validate -- ${{ steps.files.outputs.all_changed_files }}