name: quality on: pull_request: branches: [main] push: branches: [main] jobs: changes: runs-on: ubuntu-latest outputs: nix: ${{ steps.changes.outputs.nix }} lua: ${{ steps.changes.outputs.lua }} prettier: ${{ steps.changes.outputs.prettier }} steps: - uses: actions/checkout@v4 - uses: dorny/paths-filter@v3 id: changes with: filters: | nix: - '**/*.nix' - 'flake.lock' - 'flake.nix' lua: - '**/*.lua' prettier: - '**/*.json' - '**/*.yaml' - '**/*.yml' - '**/*.md' - '**/*.toml' - '**/*.css' nix-format: name: Nix Format Check runs-on: ubuntu-latest needs: changes if: ${{ needs.changes.outputs.nix == 'true' }} steps: - uses: actions/checkout@v4 - uses: cachix/install-nix-action@v31 - run: nix fmt -- --ci deadnix: name: Deadnix Check runs-on: ubuntu-latest needs: changes if: ${{ needs.changes.outputs.nix == 'true' }} steps: - uses: actions/checkout@v4 - uses: cachix/install-nix-action@v31 - run: nix develop --command deadnix --fail . statix: name: Statix Check runs-on: ubuntu-latest needs: changes if: ${{ needs.changes.outputs.nix == 'true' }} steps: - uses: actions/checkout@v4 - uses: cachix/install-nix-action@v31 - run: nix develop --command statix check . lua-format: name: Lua Format Check runs-on: ubuntu-latest needs: changes if: ${{ needs.changes.outputs.lua == 'true' }} steps: - uses: actions/checkout@v4 - uses: cachix/install-nix-action@v31 - run: nix develop --command stylua --check . lua-lint: name: Lua Lint Check runs-on: ubuntu-latest needs: changes if: ${{ needs.changes.outputs.lua == 'true' }} steps: - uses: actions/checkout@v4 - uses: cachix/install-nix-action@v31 - run: nix develop --command selene --display-style quiet --config config/nvim/selene.toml . prettier: name: Prettier Format Check runs-on: ubuntu-latest needs: changes if: ${{ needs.changes.outputs.prettier == 'true' }} steps: - uses: actions/checkout@v4 - uses: cachix/install-nix-action@v31 - run: nix develop --command prettier --check .