mirror of
https://github.com/LnL7/nix-darwin.git
synced 2025-03-21 15:50:14 +00:00
This was installing against the base branch, which causes annoying issues when things like the state version are bumped. It’s possible this was intentional to test the upgrade path, but it’s inconsistent with the flake installation test and keeps breaking stuff on my PRs. If we want to test the upgrade path then we could re‐add it again later in a more sophisticated manner (e.g. using the example config from the previous version).
135 lines
4.9 KiB
YAML
135 lines
4.9 KiB
YAML
name: "Test"
|
||
on:
|
||
pull_request:
|
||
push:
|
||
branches:
|
||
- master
|
||
|
||
env:
|
||
NIXPKGS_BRANCH: nixpkgs-unstable
|
||
NIX_VERSION: 2.24.11
|
||
|
||
jobs:
|
||
# The `test-stable` and `install-against-stable` job names are
|
||
# load‐bearing, despite their inaccuracy on the unstable branch, as
|
||
# they are set as required checks in the repository configuration,
|
||
# which only repository admins can change.
|
||
#
|
||
# TODO: Change them once the repository configuration is updated.
|
||
|
||
test-stable:
|
||
runs-on: macos-13
|
||
steps:
|
||
- uses: actions/checkout@v4
|
||
- name: Install Nix
|
||
uses: cachix/install-nix-action@v30
|
||
with:
|
||
install_url: https://releases.nixos.org/nix/nix-${{ env.NIX_VERSION }}/install
|
||
- run: nix flake check --override-input nixpkgs nixpkgs/${{ env.NIXPKGS_BRANCH }}
|
||
|
||
install-against-stable:
|
||
runs-on: macos-13
|
||
timeout-minutes: 30
|
||
steps:
|
||
- uses: actions/checkout@v4
|
||
- name: Install Nix
|
||
uses: cachix/install-nix-action@v30
|
||
with:
|
||
install_url: https://releases.nixos.org/nix/nix-${{ env.NIX_VERSION }}/install
|
||
nix_path: nixpkgs=channel:${{ env.NIXPKGS_BRANCH }}
|
||
- name: Install channels
|
||
run: |
|
||
nix-channel --add https://nixos.org/channels/${{ env.NIXPKGS_BRANCH }} nixpkgs
|
||
nix-channel --update
|
||
- name: Install nix-darwin
|
||
run: |
|
||
export NIX_PATH=$HOME/.nix-defexpr/channels
|
||
|
||
mkdir -p ~/.config/nix-darwin
|
||
cp modules/examples/simple.nix ~/.config/nix-darwin/configuration.nix
|
||
|
||
nixConfHash=$(shasum -a 256 /etc/nix/nix.conf | cut -d ' ' -f 1)
|
||
/usr/bin/sed -i.bak \
|
||
"s/# programs.fish.enable = true;/ \
|
||
imports = [ \
|
||
({ options, ... }: { \
|
||
nix.settings.access-tokens = [ \"github.com=\${{ secrets.GITHUB_TOKEN }}\" ]; \
|
||
environment.etc.\"nix\/nix.conf\".knownSha256Hashes = [ \"$nixConfHash\" ]; \
|
||
nix.nixPath = \
|
||
[ { darwin = \"${PWD////\/}\"; } ] \
|
||
++ options.nix.nixPath.default; \
|
||
}) \
|
||
]; \
|
||
/" \
|
||
~/.config/nix-darwin/configuration.nix
|
||
|
||
nix run .#darwin-rebuild \
|
||
-- switch \
|
||
-I darwin=. \
|
||
-I darwin-config=$HOME/.config/nix-darwin/configuration.nix
|
||
- name: Switch to new configuration
|
||
run: |
|
||
. /etc/bashrc
|
||
|
||
/usr/bin/sed -i.bak \
|
||
"s/pkgs.vim/pkgs.hello/" \
|
||
~/.config/nix-darwin/configuration.nix
|
||
|
||
darwin-rebuild switch
|
||
|
||
hello
|
||
- name: Test uninstallation of nix-darwin
|
||
run: |
|
||
# We need to specify `--extra-experimental-features` because `experimental-features` is set by
|
||
# `cachix/install-nix-action` but not by our default config above
|
||
nix run .#darwin-uninstaller \
|
||
--extra-experimental-features "nix-command flakes" \
|
||
--override-input nixpkgs nixpkgs/${{ env.NIXPKGS_BRANCH }}
|
||
nix run .#darwin-uninstaller.tests.uninstaller \
|
||
--extra-experimental-features "nix-command flakes" \
|
||
--override-input nixpkgs nixpkgs/${{ env.NIXPKGS_BRANCH }}
|
||
|
||
install-flake:
|
||
runs-on: macos-13
|
||
timeout-minutes: 30
|
||
steps:
|
||
- uses: actions/checkout@v4
|
||
- name: Install Nix
|
||
uses: cachix/install-nix-action@v30
|
||
with:
|
||
install_url: https://releases.nixos.org/nix/nix-${{ env.NIX_VERSION }}/install
|
||
- name: Install nix-darwin
|
||
run: |
|
||
mkdir -p ~/.config/nix-darwin
|
||
darwin=$(pwd)
|
||
pushd ~/.config/nix-darwin
|
||
nix flake init -t $darwin
|
||
nixConfHash=$(shasum -a 256 /etc/nix/nix.conf | cut -d ' ' -f 1)
|
||
/usr/bin/sed -i.bak \
|
||
"s/# programs.fish.enable = true;/nix.settings.access-tokens = [ \"github.com=\${{ secrets.GITHUB_TOKEN }}\" ]; environment.etc.\"nix\/nix.conf\".knownSha256Hashes = [ \"$nixConfHash\" ];/" \
|
||
flake.nix
|
||
/usr/bin/sed -i.bak \
|
||
's/nixpkgs.hostPlatform = "aarch64-darwin";/nixpkgs.hostPlatform = "'$(nix eval --expr builtins.currentSystem --impure --raw)'";/' \
|
||
flake.nix
|
||
popd
|
||
nix run .#darwin-rebuild -- \
|
||
switch --flake ~/.config/nix-darwin#simple \
|
||
--override-input nix-darwin . \
|
||
--override-input nixpkgs nixpkgs/${{ env.NIXPKGS_BRANCH }}
|
||
- name: Switch to new configuration
|
||
run: |
|
||
. /etc/bashrc
|
||
|
||
/usr/bin/sed -i.bak \
|
||
"s/pkgs.vim/pkgs.hello/" \
|
||
~/.config/nix-darwin/flake.nix
|
||
|
||
darwin-rebuild switch --flake ~/.config/nix-darwin#simple \
|
||
--override-input nix-darwin . \
|
||
--override-input nixpkgs nixpkgs/${{ env.NIXPKGS_BRANCH }}
|
||
|
||
hello
|
||
- name: Test uninstallation of nix-darwin
|
||
run: |
|
||
nix run .#darwin-uninstaller --override-input nixpkgs nixpkgs/${{ env.NIXPKGS_BRANCH }}
|
||
nix run .#darwin-uninstaller.tests.uninstaller --override-input nixpkgs nixpkgs/${{ env.NIXPKGS_BRANCH }}
|