# Lints and checks for potential issues in the profiles.

name: Check-Profiles

on:
  workflow_dispatch:
  push:
    branches-ignore:
      - 'dependabot/**'
    paths:
      - 'ci/check/profiles/**'
      - 'etc/**'
      - .github/workflows/check-profiles.yml
      - ci/printenv.sh
      - contrib/sort.py
      - src/firecfg/firecfg.config
  pull_request:
    paths:
      - 'ci/check/profiles/**'
      - 'etc/**'
      - .github/workflows/check-profiles.yml
      - ci/printenv.sh
      - contrib/sort.py
      - src/firecfg/firecfg.config

permissions:  # added using https://github.com/step-security/secure-workflows
  contents: read

jobs:
  profile-checks:
    runs-on: ubuntu-latest
    timeout-minutes: 5

    steps:
    - name: Harden Runner
      uses: step-security/harden-runner@e3f713f2d8f53843e71c69a996d56f51aa9adfb9
      with:
        disable-sudo: true
        egress-policy: block
        allowed-endpoints: >
          github.com:443

    - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
    - name: print env
      run: ./ci/printenv.sh
    - name: configure
      run: ./configure || (cat config.log; exit 1)
    - run: python3 --version

    - name: sort profiles
      run: make sort-profiles || (echo; git diff --exit-code)
# Currently broken (see #5610)
#   - name: private-etc-always-required.sh
#     run: >
#       ./ci/check/profiles/private-etc-always-required.sh
#       etc/inc/*.inc etc/profile*/*.profile
    - name: sort-disable-programs.sh
      run: >
        ./ci/check/profiles/sort-disable-programs.sh
        etc/inc/disable-programs.inc
    - name: sort-firecfg.config.sh
      run: >
        ./ci/check/profiles/sort-firecfg.config.sh
        src/firecfg/firecfg.config
