From fc955520dd26ddbed189f19edc438f7c408e470e Mon Sep 17 00:00:00 2001 From: Michael Hoang Date: Mon, 12 Jun 2023 10:47:21 +1000 Subject: [PATCH 1/3] flake: add template with basic flake config --- .github/workflows/test.yml | 14 ++++++++------ flake.nix | 5 +++++ modules/examples/{ => flake}/flake.nix | 0 3 files changed, 13 insertions(+), 6 deletions(-) rename modules/examples/{ => flake}/flake.nix (100%) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 172e35c28..eafecb4fd 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -133,14 +133,14 @@ jobs: nix-shell -A installer.check - name: Build simple flake configuration run: | - nix build ./modules/examples#darwinConfigurations.simple.system --override-input darwin . + nix build ./modules/examples/flake#darwinConfigurations.simple.system --override-input darwin . - name: Activate derivation of simple flake build run: | - ./result/sw/bin/darwin-rebuild switch --flake ./modules/examples#simple --override-input darwin . + ./result/sw/bin/darwin-rebuild switch --flake ./modules/examples/flake#simple --override-input darwin . - name: Rebuild and activate simple flake, but this time using nix-darwins flake interface run: | . /etc/static/bashrc - darwin-rebuild build --flake ./modules/examples#simple --override-input darwin . + darwin-rebuild build --flake ./modules/examples/flake#simple --override-input darwin . - name: Test git submodules run: | . /etc/static/bashrc @@ -155,6 +155,7 @@ jobs: popd cp -a ./modules/examples/. /tmp/test-nix-darwin-submodules + cp -a ./modules/examples/flake/flake.nix /tmp/test-nix-darwin-submodules pushd /tmp/test-nix-darwin-submodules /usr/bin/sed -i.bak \ @@ -214,14 +215,14 @@ jobs: nix-shell -A installer.check - name: Build simple flake configuration run: | - nix build ./modules/examples#darwinConfigurations.simple.system --override-input darwin . + nix build ./modules/examples/flake#darwinConfigurations.simple.system --override-input darwin . - name: Activate derivation of simple flake build run: | - ./result/sw/bin/darwin-rebuild switch --flake ./modules/examples#simple --override-input darwin . + ./result/sw/bin/darwin-rebuild switch --flake ./modules/examples/flake#simple --override-input darwin . - name: Rebuild and activate simple flake, but this time using nix-darwins flake interface run: | . /etc/static/bashrc - darwin-rebuild build --flake ./modules/examples#simple --override-input darwin . + darwin-rebuild build --flake ./modules/examples/flake#simple --override-input darwin . - name: Test git submodules run: | . /etc/static/bashrc @@ -236,6 +237,7 @@ jobs: popd cp -a ./modules/examples/. /tmp/test-nix-darwin-submodules + cp -a ./modules/examples/flake/flake.nix /tmp/test-nix-darwin-submodules pushd /tmp/test-nix-darwin-submodules /usr/bin/sed -i.bak \ diff --git a/flake.nix b/flake.nix index caad87578..3ce6db131 100644 --- a/flake.nix +++ b/flake.nix @@ -25,6 +25,11 @@ darwinModules.ofborg = ./modules/examples/ofborg.nix; darwinModules.simple = ./modules/examples/simple.nix; + templates.default = { + path = ./modules/examples/flake; + description = "nix flake init -t nix-darwin"; + }; + checks.x86_64-darwin.simple = (self.lib.darwinSystem { system = "x86_64-darwin"; modules = [ self.darwinModules.simple ]; diff --git a/modules/examples/flake.nix b/modules/examples/flake/flake.nix similarity index 100% rename from modules/examples/flake.nix rename to modules/examples/flake/flake.nix From f532e43f7efa58a0202956fac19f402893ae0ecd Mon Sep 17 00:00:00 2001 From: Michael Hoang Date: Mon, 12 Jun 2023 11:01:21 +1000 Subject: [PATCH 2/3] templates.flake: add contents of simple.nix --- .github/workflows/test.yml | 4 ++-- modules/examples/flake/flake.nix | 25 ++++++++++++++++++++----- 2 files changed, 22 insertions(+), 7 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index eafecb4fd..1e48cd68d 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -159,7 +159,7 @@ jobs: pushd /tmp/test-nix-darwin-submodules /usr/bin/sed -i.bak \ - '\#modules = \[#s#darwin.darwinModules.simple#./simple.nix#' \ + '\#modules = \[#s#configuration#configuration ./simple.nix#' \ ./flake.nix /usr/bin/sed -i.bak \ 's#pkgs.vim#pkgs."${import ./submodule-test/hello.nix}"#' \ @@ -241,7 +241,7 @@ jobs: pushd /tmp/test-nix-darwin-submodules /usr/bin/sed -i.bak \ - '\#modules = \[#s#darwin.darwinModules.simple#./simple.nix#' \ + '\#modules = \[#s#configuration#configuration ./simple.nix#' \ ./flake.nix /usr/bin/sed -i.bak \ 's#pkgs.vim#pkgs."${import ./submodule-test/hello.nix}"#' \ diff --git a/modules/examples/flake/flake.nix b/modules/examples/flake/flake.nix index 2c5f90ecf..0ada85242 100644 --- a/modules/examples/flake/flake.nix +++ b/modules/examples/flake/flake.nix @@ -10,18 +10,33 @@ outputs = { self, darwin, nixpkgs }: let configuration = { pkgs, ... }: { - nix.package = pkgs.nixVersions.stable; + # List packages installed in system profile. To search by name, run: + # $ nix-env -qaP | grep wget + environment.systemPackages = + [ pkgs.vim + ]; - # FIXME: for github actions, this shouldn't be in the example. + # Auto upgrade nix package and the daemon service. services.nix-daemon.enable = true; + # nix.package = pkgs.nix; + + # Necessary for using flakes on this system. + nix.settings.experimental-features = "nix-command flakes"; + + # Create /etc/zshrc that loads the nix-darwin environment. + programs.zsh.enable = true; # default shell on catalina + # programs.fish.enable = true; + + # Used for backwards compatibility, please read the changelog before changing. + # $ darwin-rebuild changelog + system.stateVersion = 4; }; in { # Build darwin flake using: - # $ darwin-rebuild build --flake ./modules/examples#simple \ - # --override-input darwin . + # $ darwin-rebuild build --flake .#simple darwinConfigurations."simple" = darwin.lib.darwinSystem { - modules = [ configuration darwin.darwinModules.simple ]; + modules = [ configuration ]; system = "x86_64-darwin"; }; From 8d13a55f1c3020825400ef066ab13ef62ca441bf Mon Sep 17 00:00:00 2001 From: Michael Hoang Date: Sat, 17 Jun 2023 22:56:26 +1000 Subject: [PATCH 3/3] workflows: fix Nix install on `macos-12` --- .github/workflows/test.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 1e48cd68d..c351432fa 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -13,7 +13,7 @@ jobs: steps: - uses: actions/checkout@v3 - name: Install nix corresponding to latest stable channel - uses: cachix/install-nix-action@v20 + uses: cachix/install-nix-action@v22 with: install_url: https://github.com/nix-community/nix-unstable-installer/releases/download/nix-2.10.0pre20220822_7c3ab57/install extra_nix_config: | @@ -28,7 +28,7 @@ jobs: steps: - uses: actions/checkout@v3 - name: Install nix from current unstable channel - uses: cachix/install-nix-action@v20 + uses: cachix/install-nix-action@v22 with: nix_path: nixpkgs=channel:${{ env.CURRENT_STABLE_CHANNEL }} extra_nix_config: | @@ -43,7 +43,7 @@ jobs: steps: - uses: actions/checkout@v3 - name: Install nix corresponding to latest stable channel - uses: cachix/install-nix-action@v20 + uses: cachix/install-nix-action@v22 with: install_url: https://github.com/nix-community/nix-unstable-installer/releases/download/nix-2.10.0pre20220822_7c3ab57/install nix_path: nixpkgs=channel:${{ env.CURRENT_STABLE_CHANNEL }} @@ -80,7 +80,7 @@ jobs: steps: - uses: actions/checkout@v3 - name: Install nix from current unstable channel - uses: cachix/install-nix-action@v20 + uses: cachix/install-nix-action@v22 with: nix_path: nixpkgs=channel:nixpkgs-unstable extra_nix_config: | @@ -116,7 +116,7 @@ jobs: steps: - uses: actions/checkout@v3 - name: Install nix version corresponding to latest stable channel - uses: cachix/install-nix-action@v20 + uses: cachix/install-nix-action@v22 with: install_url: https://github.com/nix-community/nix-unstable-installer/releases/download/nix-2.10.0pre20220822_7c3ab57/install nix_path: nixpkgs=channel:${{ env.CURRENT_STABLE_CHANNEL }} @@ -199,7 +199,7 @@ jobs: steps: - uses: actions/checkout@v3 - name: Install nix from current unstable channel - uses: cachix/install-nix-action@v20 + uses: cachix/install-nix-action@v22 with: nix_path: nixpkgs=channel:nixpkgs-unstable extra_nix_config: |