mirror of
https://github.com/nmattia/niv.git
synced 2024-11-29 09:42:35 +03:00
Merge pull request #171 from zimbatm/nixpkgs-fmt-check
ci: add nixpkgs-fmt check (v2)
This commit is contained in:
commit
5170a6f3f3
@ -145,6 +145,7 @@ with rec
|
|||||||
# version from `package.yaml` and create a dummy module that we inject in the
|
# version from `package.yaml` and create a dummy module that we inject in the
|
||||||
# `ghci` command.
|
# `ghci` command.
|
||||||
niv-devshell = haskellPackages.shellFor {
|
niv-devshell = haskellPackages.shellFor {
|
||||||
|
buildInputs = [ pkgs.nixpkgs-fmt ];
|
||||||
packages = ps: [ ps.niv ];
|
packages = ps: [ ps.niv ];
|
||||||
shellHook = ''
|
shellHook = ''
|
||||||
repl_for() {
|
repl_for() {
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
import sources.nixpkgs {
|
import sources.nixpkgs {
|
||||||
overlays = [
|
overlays = [
|
||||||
(_: pkgs: { inherit sources; })
|
(_: pkgs: { inherit sources; })
|
||||||
|
(_: pkgs: { nixpkgs-fmt = import pkgs.sources.nixpkgs-fmt {}; })
|
||||||
(_: pkgs: { termtosvg = pkgs.callPackage ./termtosvg.nix {}; })
|
(_: pkgs: { termtosvg = pkgs.callPackage ./termtosvg.nix {}; })
|
||||||
];
|
];
|
||||||
config = {};
|
config = {};
|
||||||
|
@ -11,6 +11,18 @@
|
|||||||
"url": "https://github.com/NixOS/nixpkgs-channels/archive/d85e435b7bded2596d7b201bcd938c94d8a921c1.tar.gz",
|
"url": "https://github.com/NixOS/nixpkgs-channels/archive/d85e435b7bded2596d7b201bcd938c94d8a921c1.tar.gz",
|
||||||
"url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz"
|
"url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz"
|
||||||
},
|
},
|
||||||
|
"nixpkgs-fmt": {
|
||||||
|
"branch": "master",
|
||||||
|
"description": "Nix code formatter for nixpkgs [maintainer=@zimbatm]",
|
||||||
|
"homepage": "https://nix-community.github.io/nixpkgs-fmt/",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "nixpkgs-fmt",
|
||||||
|
"rev": "2a64f4b6a597d0d62004ffcec3ae4fd83cd1efc8",
|
||||||
|
"sha256": "01kx4y1d4c5fjvpcffk92pk9hdbgg5j9h2ryqy2hfm54s7mb0k63",
|
||||||
|
"type": "tarball",
|
||||||
|
"url": "https://github.com/nix-community/nixpkgs-fmt/archive/2a64f4b6a597d0d62004ffcec3ae4fd83cd1efc8.tar.gz",
|
||||||
|
"url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz"
|
||||||
|
},
|
||||||
"termtosvg": {
|
"termtosvg": {
|
||||||
"branch": "develop",
|
"branch": "develop",
|
||||||
"description": "Record terminal sessions as SVG animations",
|
"description": "Record terminal sessions as SVG animations",
|
||||||
|
@ -19,7 +19,7 @@ let
|
|||||||
pkgs.fetchzip { inherit (spec) url sha256; };
|
pkgs.fetchzip { inherit (spec) url sha256; };
|
||||||
|
|
||||||
fetch_git = spec:
|
fetch_git = spec:
|
||||||
builtins.fetchGit { url = spec.repo; inherit (spec) rev ref; };
|
builtins.fetchGit { url = spec.repo; inherit (spec) rev ref; };
|
||||||
|
|
||||||
fetch_builtin-tarball = spec:
|
fetch_builtin-tarball = spec:
|
||||||
builtins.trace
|
builtins.trace
|
||||||
@ -132,5 +132,4 @@ let
|
|||||||
pkgs = mkPkgs sources;
|
pkgs = mkPkgs sources;
|
||||||
};
|
};
|
||||||
in
|
in
|
||||||
mkSources (mkConfig {}) //
|
mkSources (mkConfig {}) // { __functor = _: settings: mkSources (mkConfig settings); }
|
||||||
{ __functor = _: settings: mkSources (mkConfig settings); }
|
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
#!nix-shell -i bash
|
#!nix-shell -i bash
|
||||||
#!nix-shell -I nixpkgs=./nix
|
#!nix-shell -I nixpkgs=./nix
|
||||||
#!nix-shell -p nix
|
#!nix-shell -p nix
|
||||||
|
#!nix-shell -p nixpkgs-fmt
|
||||||
#!nix-shell --pure
|
#!nix-shell --pure
|
||||||
|
|
||||||
unset NIX_SSL_CERT_FILE
|
unset NIX_SSL_CERT_FILE
|
||||||
@ -32,4 +33,11 @@ fi
|
|||||||
# Build and create a root
|
# Build and create a root
|
||||||
nix-build ${nixargs[@]}
|
nix-build ${nixargs[@]}
|
||||||
|
|
||||||
|
echo "Formatting"
|
||||||
|
if ! nixpkgs-fmt --check . ; then
|
||||||
|
echo
|
||||||
|
echo 'run `nixpkgs-fmt .` to fix this issue'
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
echo "all good"
|
echo "all good"
|
||||||
|
@ -144,6 +144,7 @@ data SourcesNixVersion
|
|||||||
| V11
|
| V11
|
||||||
| V12
|
| V12
|
||||||
| V13
|
| V13
|
||||||
|
| V14
|
||||||
deriving stock (Bounded, Enum, Eq)
|
deriving stock (Bounded, Enum, Eq)
|
||||||
|
|
||||||
-- | A user friendly version
|
-- | A user friendly version
|
||||||
@ -162,6 +163,7 @@ sourcesVersionToText = \case
|
|||||||
V11 -> "11"
|
V11 -> "11"
|
||||||
V12 -> "12"
|
V12 -> "12"
|
||||||
V13 -> "13"
|
V13 -> "13"
|
||||||
|
V14 -> "14"
|
||||||
|
|
||||||
latestVersionMD5 :: T.Text
|
latestVersionMD5 :: T.Text
|
||||||
latestVersionMD5 = sourcesVersionToMD5 maxBound
|
latestVersionMD5 = sourcesVersionToMD5 maxBound
|
||||||
@ -187,6 +189,7 @@ sourcesVersionToMD5 = \case
|
|||||||
V11 -> "8a95b7d93b16f7c7515d98f49b0ec741"
|
V11 -> "8a95b7d93b16f7c7515d98f49b0ec741"
|
||||||
V12 -> "2f9629ad9a8f181ed71d2a59b454970c"
|
V12 -> "2f9629ad9a8f181ed71d2a59b454970c"
|
||||||
V13 -> "5e23c56b92eaade4e664cb16dcac1e0a"
|
V13 -> "5e23c56b92eaade4e664cb16dcac1e0a"
|
||||||
|
V14 -> "b470e235e7bcbf106d243fea90b6cfc9"
|
||||||
|
|
||||||
-- | The MD5 sum of ./nix/sources.nix
|
-- | The MD5 sum of ./nix/sources.nix
|
||||||
sourcesNixMD5 :: IO T.Text
|
sourcesNixMD5 :: IO T.Text
|
||||||
|
@ -6,76 +6,72 @@ pkgs.runCommand "git-test"
|
|||||||
{ nativeBuildInputs = [ pkgs.git niv pkgs.nix pkgs.jq ]; }
|
{ nativeBuildInputs = [ pkgs.git niv pkgs.nix pkgs.jq ]; }
|
||||||
(
|
(
|
||||||
|
|
||||||
# make sure the tests run smoothly in multi-user install
|
# make sure the tests run smoothly in multi-user install
|
||||||
# https://github.com/NixOS/nix/issues/3258
|
# https://github.com/NixOS/nix/issues/3258
|
||||||
''
|
''
|
||||||
export NIX_STATE_DIR=$TMPDIR
|
export NIX_STATE_DIR=$TMPDIR
|
||||||
export NIX_LOG_DIR=$TMPDIR
|
export NIX_LOG_DIR=$TMPDIR
|
||||||
export HOME=$TMPDIR
|
export HOME=$TMPDIR
|
||||||
'' +
|
'' + # First we create a dummy git repo with one commit on master, and one commit
|
||||||
# First we create a dummy git repo with one commit on master, and one commit
|
# on "branch".
|
||||||
# on "branch".
|
''
|
||||||
''
|
gitdir=$(mktemp -d)
|
||||||
gitdir=$(mktemp -d)
|
pushd $gitdir > /dev/null
|
||||||
pushd $gitdir > /dev/null
|
git init .
|
||||||
git init .
|
echo hello > file
|
||||||
echo hello > file
|
git config user.email "niv@foo.bar"
|
||||||
git config user.email "niv@foo.bar"
|
git config user.name "Niv Niverson"
|
||||||
git config user.name "Niv Niverson"
|
git add file
|
||||||
git add file
|
git commit -m "Initial commit"
|
||||||
git commit -m "Initial commit"
|
gitrev=$(git rev-parse HEAD)
|
||||||
gitrev=$(git rev-parse HEAD)
|
|
||||||
|
|
||||||
git checkout -b branch
|
git checkout -b branch
|
||||||
echo world >> file
|
echo world >> file
|
||||||
git add file
|
git add file
|
||||||
git commit -m "second commit"
|
git commit -m "second commit"
|
||||||
gitrev2=$(git rev-parse HEAD)
|
gitrev2=$(git rev-parse HEAD)
|
||||||
|
|
||||||
# reset to master as "default branch"
|
# reset to master as "default branch"
|
||||||
git checkout master
|
git checkout master
|
||||||
popd > /dev/null
|
popd > /dev/null
|
||||||
'' +
|
'' + # Then we `niv add` that repo and check some properties, like the revision
|
||||||
|
# and revCount, to make sure it was imported properly, and that sources.nix
|
||||||
|
# does what it's supposed to do.
|
||||||
|
''
|
||||||
|
nivdir=$(mktemp -d)
|
||||||
|
pushd $nivdir > /dev/null
|
||||||
|
mkdir -p nix
|
||||||
|
echo "{}" > nix/sources.json
|
||||||
|
niv init
|
||||||
|
niv add git -n my-git-repo --repo file://$gitdir
|
||||||
|
nivrev=$(nix eval --json '(import ./nix/sources.nix).my-git-repo.rev' | jq -r)
|
||||||
|
if [ ! "$gitrev" = "$nivrev" ]; then
|
||||||
|
echo "Mismatched revs: $gitrev != $nivrev"
|
||||||
|
exit 42
|
||||||
|
fi
|
||||||
|
|
||||||
# Then we `niv add` that repo and check some properties, like the revision
|
# here we cheat a bit and use "outPath", which actually is the result of
|
||||||
# and revCount, to make sure it was imported properly, and that sources.nix
|
# builtins.fetchGit.
|
||||||
# does what it's supposed to do.
|
nivnixrev=$(nix eval --json '(import ./nix/sources.nix).my-git-repo.outPath.rev' | jq -r)
|
||||||
''
|
if [ ! "$gitrev" = "$nivnixrev" ]; then
|
||||||
nivdir=$(mktemp -d)
|
echo "Mismatched revs: $gitrev != $nivnixrev"
|
||||||
pushd $nivdir > /dev/null
|
exit 42
|
||||||
mkdir -p nix
|
fi
|
||||||
echo "{}" > nix/sources.json
|
nivnixrevcount=$(nix eval --json '(import ./nix/sources.nix).my-git-repo.outPath.revCount')
|
||||||
niv init
|
if [ ! "1" -eq "$nivnixrevcount" ]; then
|
||||||
niv add git -n my-git-repo --repo file://$gitdir
|
echo "Mismatched revCount: 1 != $nivnixrevcount"
|
||||||
nivrev=$(nix eval --json '(import ./nix/sources.nix).my-git-repo.rev' | jq -r)
|
exit 42
|
||||||
if [ ! "$gitrev" = "$nivrev" ]; then
|
fi
|
||||||
echo "Mismatched revs: $gitrev != $nivrev"
|
|
||||||
exit 42
|
|
||||||
fi
|
|
||||||
|
|
||||||
# here we cheat a bit and use "outPath", which actually is the result of
|
niv update my-git-repo -a ref=branch
|
||||||
# builtins.fetchGit.
|
nivrev2=$(nix eval --json '(import ./nix/sources.nix).my-git-repo.rev' | jq -r)
|
||||||
nivnixrev=$(nix eval --json '(import ./nix/sources.nix).my-git-repo.outPath.rev' | jq -r)
|
if [ ! "$gitrev2" = "$nivrev2" ]; then
|
||||||
if [ ! "$gitrev" = "$nivnixrev" ]; then
|
echo "Mismatched revs: $gitrev2 != $nivrev2"
|
||||||
echo "Mismatched revs: $gitrev != $nivnixrev"
|
exit 42
|
||||||
exit 42
|
fi
|
||||||
fi
|
|
||||||
nivnixrevcount=$(nix eval --json '(import ./nix/sources.nix).my-git-repo.outPath.revCount')
|
|
||||||
if [ ! "1" -eq "$nivnixrevcount" ]; then
|
|
||||||
echo "Mismatched revCount: 1 != $nivnixrevcount"
|
|
||||||
exit 42
|
|
||||||
fi
|
|
||||||
|
|
||||||
niv update my-git-repo -a ref=branch
|
popd > /dev/null
|
||||||
nivrev2=$(nix eval --json '(import ./nix/sources.nix).my-git-repo.rev' | jq -r)
|
|
||||||
if [ ! "$gitrev2" = "$nivrev2" ]; then
|
|
||||||
echo "Mismatched revs: $gitrev2 != $nivrev2"
|
|
||||||
exit 42
|
|
||||||
fi
|
|
||||||
|
|
||||||
popd > /dev/null
|
touch $out
|
||||||
|
''
|
||||||
touch $out
|
|
||||||
''
|
|
||||||
)
|
)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user