Make release branches a thing #2195
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: | |
# 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: | |
name: Test suite | |
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: | |
name: Installation (channels) | |
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: | |
name: Installation (flakes) | |
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 }} |