root: shell.nix for nixfmt

This uses the reusable pinned Nixpkgs from the parent commit to create a
shell.nix file for an environment with a pinned nixfmt version.

(cherry picked from commit a70ab58960)
This commit is contained in:
Silvan Mosberger 2024-06-26 01:07:09 +02:00
parent e9bd2f3c25
commit 7d5716c800
3 changed files with 61 additions and 1 deletions

3
.github/CODEOWNERS vendored
View File

@ -15,8 +15,9 @@
/.github/workflows @NixOS/Security @Mic92 @zowoq
/ci @infinisil
# EditorConfig
# Develompent support
/.editorconfig @Mic92 @zowoq
/shell.nix @infinisil @NixOS/Security
# Libraries
/lib @infinisil

29
.github/workflows/check-shell.yml vendored Normal file
View File

@ -0,0 +1,29 @@
name: "Check shell"
on:
pull_request_target:
permissions: {}
jobs:
x86_64-linux:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5
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
- name: Build shell
run: nix-build shell.nix
aarch64-darwin:
runs-on: macos-latest
steps:
- uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5
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
- name: Build shell
run: nix-build shell.nix

30
shell.nix Normal file
View File

@ -0,0 +1,30 @@
# A shell to get tooling for Nixpkgs development
#
# Note: We intentionally don't use Flakes here,
# because every time you change any file and do another `nix develop`,
# it would create another copy of the entire ~500MB tree in the store.
# See https://github.com/NixOS/nix/pull/6530 for the future
{
system ? builtins.currentSystem,
}:
let
pinnedNixpkgs = builtins.fromJSON (builtins.readFile ci/pinned-nixpkgs.json);
nixpkgs = fetchTarball {
url = "https://github.com/NixOS/nixpkgs/archive/${pinnedNixpkgs.rev}.tar.gz";
sha256 = pinnedNixpkgs.sha256;
};
pkgs = import nixpkgs {
inherit system;
config = {};
overlays = [];
};
in
pkgs.mkShellNoCC {
packages = [
# The default formatter for Nix code
# https://github.com/NixOS/nixfmt
pkgs.nixfmt-rfc-style
];
}