diff options
author | Connor Baker <connor.baker@tweag.io> | 2024-03-27 22:48:59 +0000 |
---|---|---|
committer | Connor Baker <connor.baker@tweag.io> | 2024-04-01 01:14:31 +0000 |
commit | d94495d5bccd3d7ae510ea51ff178d929921e731 (patch) | |
tree | 2adf07da1cde98de18c8561a412e4a1af1fb71d6 /.github | |
parent | d9fa94b2dd81bf7ffef832bc7b6ae933fb2b3838 (diff) |
workflows/check-nix-format.yml: init
Diffstat (limited to '.github')
-rw-r--r-- | .github/workflows/check-nix-format.yml | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/.github/workflows/check-nix-format.yml b/.github/workflows/check-nix-format.yml new file mode 100644 index 000000000000..368d9568c80a --- /dev/null +++ b/.github/workflows/check-nix-format.yml @@ -0,0 +1,50 @@ +# This file was copied mostly from check-maintainers-sorted.yaml. +# NOTE: Formatting with the RFC-style nixfmt command is not yet stable. See +# https://github.com/NixOS/rfcs/pull/166. +# Because of this, this action is not yet enabled for all files -- only for +# those who have opted in. +name: Check that Nix files are formatted + +on: + pull_request_target: +permissions: + contents: read + +jobs: + nixos: + runs-on: ubuntu-latest + if: github.repository_owner == 'NixOS' + steps: + - uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2 + with: + # pull_request_target checks out the base branch by default + ref: refs/pull/${{ github.event.pull_request.number }}/merge + - uses: cachix/install-nix-action@8887e596b4ee1134dae06b98d573bd674693f47c # v26 + with: + # explicitly enable sandbox + extra_nix_config: sandbox = true + - name: Install nixfmt + run: nix-env -f default.nix -iAP nixfmt-rfc-style + - name: Check that Nix files are formatted according to the RFC style + # Each environment variable beginning with NIX_FMT_PATHS_ is a list of + # paths to check with nixfmt. + env: + # Format paths related to the Nixpkgs CUDA ecosystem. + NIX_FMT_PATHS_CUDA: | + pkgs/development/cuda-modules + pkgs/test/cuda + pkgs/top-level/cuda-packages.nix + # Iterate over all environment variables beginning with NIX_FMT_PATHS_. + run: | + for env_var in "${!NIX_FMT_PATHS_@}"; do + readarray -t paths <<< "${!env_var}" + if [[ "${paths[*]}" == "" ]]; then + echo "Error: $env_var is empty." + exit 1 + fi + echo "Checking paths: ${paths[@]}" + if ! nixfmt --check "${paths[@]}"; then + echo "Error: nixfmt failed." + exit 1 + fi + done |