mirror of
https://github.com/LnL7/nix-darwin.git
synced 2025-03-06 16:57:08 +00:00
126 lines
4.7 KiB
YAML
126 lines
4.7 KiB
YAML
name: "Test"
|
||
on:
|
||
pull_request:
|
||
push:
|
||
branches:
|
||
- master
|
||
|
||
env:
|
||
NIXPKGS_BRANCH: nixpkgs-unstable
|
||
NIX_DARWIN_BRANCH: master
|
||
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://github.com/LnL7/nix-darwin/archive/${{ env.NIX_DARWIN_BRANCH }}.tar.gz darwin
|
||
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;/nix.settings.access-tokens = [ \"github.com=\${{ secrets.GITHUB_TOKEN }}\" ]; environment.etc.\"nix\/nix.conf\".knownSha256Hashes = [ \"$nixConfHash\" ];/" \
|
||
~/.config/nix-darwin/configuration.nix
|
||
|
||
nix run .#darwin-rebuild \
|
||
-- switch \
|
||
-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 -I darwin=.
|
||
|
||
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 }}
|