Skip to content

Commit

Permalink
Merge pull request #8064 from knedlsepp/flake-in-submodule
Browse files Browse the repository at this point in the history
Add a test with flake.nix in a git submodule
  • Loading branch information
roberth authored Mar 18, 2023
2 parents 790dd25 + bf0c8c3 commit b5b6055
Show file tree
Hide file tree
Showing 2 changed files with 53 additions and 0 deletions.
52 changes: 52 additions & 0 deletions tests/flakes/flake-in-submodule.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
source common.sh

# Tests that:
# - flake.nix may reside inside of a git submodule
# - the flake can access content outside of the submodule
#
# rootRepo
# ├── root.nix
# └── submodule
# ├── flake.nix
# └── sub.nix


requireGit

clearStore

# Submodules can't be fetched locally by default.
# See fetchGitSubmodules.sh
export XDG_CONFIG_HOME=$TEST_HOME/.config
git config --global protocol.file.allow always


rootRepo=$TEST_ROOT/rootRepo
subRepo=$TEST_ROOT/submodule


createGitRepo $subRepo
cat > $subRepo/flake.nix <<EOF
{
outputs = { self }: {
sub = import ./sub.nix;
root = import ../root.nix;
};
}
EOF
echo '"expression in submodule"' > $subRepo/sub.nix
git -C $subRepo add flake.nix sub.nix
git -C $subRepo commit -m Initial

createGitRepo $rootRepo

git -C $rootRepo submodule init
git -C $rootRepo submodule add $subRepo submodule
echo '"expression in root repo"' > $rootRepo/root.nix
git -C $rootRepo add root.nix
git -C $rootRepo commit -m "Add root.nix"

# Flake can live inside a submodule and can be accessed via ?dir=submodule
[[ $(nix eval --json git+file://$rootRepo\?submodules=1\&dir=submodule#sub ) = '"expression in submodule"' ]]
# The flake can access content outside of the submodule
[[ $(nix eval --json git+file://$rootRepo\?submodules=1\&dir=submodule#root ) = '"expression in root repo"' ]]
1 change: 1 addition & 0 deletions tests/local.mk
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ nix_tests = \
flakes/unlocked-override.sh \
flakes/absolute-paths.sh \
flakes/build-paths.sh \
flakes/flake-in-submodule.sh \
ca/gc.sh \
gc.sh \
remote-store.sh \
Expand Down

0 comments on commit b5b6055

Please sign in to comment.