Make release branches a thing #2185
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: "Test" | |
on: | |
pull_request: | |
push: | |
branches: | |
- master | |
env: | |
NIXPKGS_BRANCH: nixpkgs-unstable | |
NIX_DARWIN_BRANCH: master | |
NIX_VERSION: 2.24.11 | |
jobs: | |
test: | |
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: | |
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 }} |