mirror of
https://github.com/LnL7/nix-darwin.git
synced 2024-12-14 11:57:34 +00:00
Merge pull request #641 from lockejan/update-ci
Update ci and introduce matrix builds against stable and unstable
This commit is contained in:
commit
57094eaf5a
5 changed files with 194 additions and 36 deletions
4
.github/workflows/build.yml
vendored
4
.github/workflows/build.yml
vendored
|
@ -12,7 +12,7 @@ jobs:
|
||||||
build:
|
build:
|
||||||
runs-on: macos-12
|
runs-on: macos-12
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v3
|
||||||
- uses: cachix/install-nix-action@v17
|
- uses: cachix/install-nix-action@v20
|
||||||
- run: |
|
- run: |
|
||||||
nix build ${{ github.event.client_payload.args }} -vL
|
nix build ${{ github.event.client_payload.args }} -vL
|
||||||
|
|
4
.github/workflows/debug.yml
vendored
4
.github/workflows/debug.yml
vendored
|
@ -12,8 +12,8 @@ jobs:
|
||||||
debug:
|
debug:
|
||||||
runs-on: macos-12
|
runs-on: macos-12
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v3
|
||||||
- uses: cachix/install-nix-action@v17
|
- uses: cachix/install-nix-action@v20
|
||||||
- run: |
|
- run: |
|
||||||
nix-channel --add https://nixos.org/channels/nixpkgs-unstable nixpkgs
|
nix-channel --add https://nixos.org/channels/nixpkgs-unstable nixpkgs
|
||||||
nix-channel --update
|
nix-channel --update
|
||||||
|
|
216
.github/workflows/test.yml
vendored
216
.github/workflows/test.yml
vendored
|
@ -2,33 +2,68 @@ name: "Test"
|
||||||
on:
|
on:
|
||||||
pull_request:
|
pull_request:
|
||||||
push:
|
push:
|
||||||
|
|
||||||
|
env:
|
||||||
|
CURRENT_STABLE_CHANNEL: nixpkgs-22.11-darwin
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
tests:
|
test-stable:
|
||||||
runs-on: macos-12
|
runs-on: macos-12
|
||||||
timeout-minutes: 30
|
timeout-minutes: 30
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v3
|
||||||
- uses: cachix/install-nix-action@v17
|
- name: Install nix corresponding to latest stable channel
|
||||||
- run: nix-build ./release.nix -I nixpkgs=channel:nixpkgs-22.05-darwin -I darwin=. -A tests
|
uses: cachix/install-nix-action@v20
|
||||||
- run: nix-build ./release.nix -I nixpkgs=channel:nixpkgs-22.05-darwin -I darwin=. -A manpages
|
with:
|
||||||
- run: nix-build ./release.nix -I nixpkgs=channel:nixpkgs-22.05-darwin -I darwin=. -A examples.simple
|
install_url: https://github.com/nix-community/nix-unstable-installer/releases/download/nix-2.10.0pre20220822_7c3ab57/install
|
||||||
install:
|
extra_nix_config: |
|
||||||
|
access-tokens = github.com=${{ secrets.GITHUB_TOKEN }}
|
||||||
|
- run: nix-build ./release.nix -I nixpkgs=channel:${{ env.CURRENT_STABLE_CHANNEL }} -I darwin=. -A tests
|
||||||
|
- run: nix-build ./release.nix -I nixpkgs=channel:${{ env.CURRENT_STABLE_CHANNEL }} -I darwin=. -A manpages
|
||||||
|
- run: nix-build ./release.nix -I nixpkgs=channel:${{ env.CURRENT_STABLE_CHANNEL }} -I darwin=. -A examples.simple
|
||||||
|
|
||||||
|
test-unstable:
|
||||||
runs-on: macos-12
|
runs-on: macos-12
|
||||||
timeout-minutes: 30
|
timeout-minutes: 30
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v3
|
||||||
- uses: cachix/install-nix-action@v17
|
- name: Install nix from current unstable channel
|
||||||
- run: |
|
uses: cachix/install-nix-action@v20
|
||||||
nix-channel --add https://nixos.org/channels/nixpkgs-22.05-darwin nixpkgs
|
with:
|
||||||
|
nix_path: nixpkgs=channel:${{ env.CURRENT_STABLE_CHANNEL }}
|
||||||
|
extra_nix_config: |
|
||||||
|
access-tokens = github.com=${{ secrets.GITHUB_TOKEN }}
|
||||||
|
- run: nix-build ./release.nix -I nixpkgs=channel:nixpkgs-unstable -I darwin=. -A tests
|
||||||
|
- run: nix-build ./release.nix -I nixpkgs=channel:nixpkgs-unstable -I darwin=. -A manpages
|
||||||
|
- run: nix-build ./release.nix -I nixpkgs=channel:nixpkgs-unstable -I darwin=. -A examples.simple
|
||||||
|
|
||||||
|
install-against-stable:
|
||||||
|
runs-on: macos-12
|
||||||
|
timeout-minutes: 30
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
- name: Install nix corresponding to latest stable channel
|
||||||
|
uses: cachix/install-nix-action@v20
|
||||||
|
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 }}
|
||||||
|
extra_nix_config: |
|
||||||
|
access-tokens = github.com=${{ secrets.GITHUB_TOKEN }}
|
||||||
|
- name: Install ${{ env.CURRENT_STABLE_CHANNEL }} channel
|
||||||
|
run: |
|
||||||
|
nix-channel --add https://nixos.org/channels/${{ env.CURRENT_STABLE_CHANNEL }} nixpkgs
|
||||||
nix-channel --update
|
nix-channel --update
|
||||||
- run: |
|
- name: Install nix-darwin and test
|
||||||
|
run: |
|
||||||
export NIX_PATH=$HOME/.nix-defexpr/channels
|
export NIX_PATH=$HOME/.nix-defexpr/channels
|
||||||
nix-shell -A installer
|
nix-shell -A installer
|
||||||
nix-shell -A installer.check
|
nix-shell -A installer.check
|
||||||
- run: |
|
- name: Build and activate default derivation
|
||||||
|
run: |
|
||||||
. /etc/static/bashrc
|
. /etc/static/bashrc
|
||||||
darwin-rebuild switch -I darwin=.
|
darwin-rebuild switch -I darwin=.
|
||||||
- run: |
|
- name: Test uninstallation of nix-darwin
|
||||||
|
run: |
|
||||||
export NIX_PATH=$HOME/.nix-defexpr/channels
|
export NIX_PATH=$HOME/.nix-defexpr/channels
|
||||||
nix-shell -A uninstaller
|
nix-shell -A uninstaller
|
||||||
nix-shell -A uninstaller.check
|
nix-shell -A uninstaller.check
|
||||||
|
@ -38,30 +73,153 @@ jobs:
|
||||||
timeout-minutes: 15
|
timeout-minutes: 15
|
||||||
with:
|
with:
|
||||||
limit-access-to-actor: true
|
limit-access-to-actor: true
|
||||||
install-flake:
|
|
||||||
|
install-against-unstable:
|
||||||
runs-on: macos-12
|
runs-on: macos-12
|
||||||
timeout-minutes: 60
|
timeout-minutes: 30
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v3
|
||||||
|
- name: Install nix from current unstable channel
|
||||||
|
uses: cachix/install-nix-action@v20
|
||||||
with:
|
with:
|
||||||
fetch-depth: 0
|
nix_path: nixpkgs=channel:nixpkgs-unstable
|
||||||
- uses: cachix/install-nix-action@v17
|
extra_nix_config: |
|
||||||
with:
|
access-tokens = github.com=${{ secrets.GITHUB_TOKEN }}
|
||||||
install_url: https://github.com/numtide/nix-flakes-installer/releases/download/nix-2.10.0pre20220808_73fde9e/install
|
- name: Install nixpkgs-unstable channel
|
||||||
extra_nix_config: |
|
run: |
|
||||||
experimental-features = nix-command flakes
|
|
||||||
access-tokens = github.com=${{ secrets.GITHUB_TOKEN }}
|
|
||||||
- run: |
|
|
||||||
nix-channel --add https://nixos.org/channels/nixpkgs-unstable nixpkgs
|
nix-channel --add https://nixos.org/channels/nixpkgs-unstable nixpkgs
|
||||||
nix-channel --update
|
nix-channel --update
|
||||||
- run: |
|
- name: Install nix-darwin and test
|
||||||
|
run: |
|
||||||
export NIX_PATH=$HOME/.nix-defexpr/channels
|
export NIX_PATH=$HOME/.nix-defexpr/channels
|
||||||
nix-shell -A installer
|
nix-shell -A installer
|
||||||
- run: |
|
nix-shell -A installer.check
|
||||||
|
- name: Build and activate default derivation
|
||||||
|
run: |
|
||||||
|
. /etc/static/bashrc
|
||||||
|
darwin-rebuild switch -I darwin=.
|
||||||
|
- name: Test uninstallation of nix-darwin
|
||||||
|
run: |
|
||||||
|
export NIX_PATH=$HOME/.nix-defexpr/channels
|
||||||
|
nix-shell -A uninstaller
|
||||||
|
nix-shell -A uninstaller.check
|
||||||
|
- name: Debugging tmate session
|
||||||
|
if: ${{ failure() }}
|
||||||
|
uses: mxschmitt/action-tmate@v3
|
||||||
|
timeout-minutes: 15
|
||||||
|
with:
|
||||||
|
limit-access-to-actor: true
|
||||||
|
|
||||||
|
install-flake-against-stable:
|
||||||
|
runs-on: macos-12
|
||||||
|
timeout-minutes: 30
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
- name: Install nix version corresponding to latest stable channel
|
||||||
|
uses: cachix/install-nix-action@v20
|
||||||
|
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 }}
|
||||||
|
extra_nix_config: |
|
||||||
|
access-tokens = github.com=${{ secrets.GITHUB_TOKEN }}
|
||||||
|
- name: Install ${{ env.CURRENT_STABLE_CHANNEL }} channel
|
||||||
|
run: |
|
||||||
|
nix-channel --add https://nixos.org/channels/${{ env.CURRENT_STABLE_CHANNEL }} nixpkgs
|
||||||
|
nix-channel --update
|
||||||
|
- name: Install nix-darwin and test result
|
||||||
|
run: |
|
||||||
|
export NIX_PATH=$HOME/.nix-defexpr/channels
|
||||||
|
nix-shell -A installer
|
||||||
|
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#darwinConfigurations.simple.system --override-input darwin .
|
||||||
- run: |
|
- 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#simple --override-input darwin .
|
||||||
- run: |
|
- 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 .
|
||||||
|
- name: Test git submodules
|
||||||
|
run: |
|
||||||
|
. /etc/static/bashrc
|
||||||
|
|
||||||
|
mkdir -p /tmp/{test-nix-darwin-submodules,example-submodule}
|
||||||
|
|
||||||
|
pushd /tmp/example-submodule
|
||||||
|
echo '"hello"' > hello.nix
|
||||||
|
git init
|
||||||
|
git add .
|
||||||
|
git commit -m "add a submodule we will import"
|
||||||
|
popd
|
||||||
|
|
||||||
|
cp -a ./modules/examples/. /tmp/test-nix-darwin-submodules
|
||||||
|
|
||||||
|
pushd /tmp/test-nix-darwin-submodules
|
||||||
|
/usr/bin/sed -i.bak \
|
||||||
|
'\#modules = \[#s#darwin.darwinModules.simple#./simple.nix#' \
|
||||||
|
./flake.nix
|
||||||
|
/usr/bin/sed -i.bak \
|
||||||
|
's#pkgs.vim#pkgs."${import ./submodule-test/hello.nix}"#' \
|
||||||
|
./simple.nix
|
||||||
|
git init
|
||||||
|
git add flake.nix simple.nix
|
||||||
|
git \
|
||||||
|
-c protocol.file.allow=always \
|
||||||
|
submodule add /tmp/example-submodule submodule-test
|
||||||
|
popd
|
||||||
|
|
||||||
|
# Should fail
|
||||||
|
darwin-rebuild build \
|
||||||
|
--flake /tmp/test-nix-darwin-submodules#simple \
|
||||||
|
--override-input darwin . \
|
||||||
|
&& {
|
||||||
|
printf 'succeeded while expecting failure due to submodule\n' >/dev/stderr
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
# Should also fail
|
||||||
|
darwin-rebuild build \
|
||||||
|
--flake /tmp/test-nix-darwin-submodules?submodules=0#simple \
|
||||||
|
--override-input darwin . \
|
||||||
|
&& {
|
||||||
|
printf 'succeeded while expecting failure due to submodule\n' >/dev/stderr
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
# Should succeed
|
||||||
|
darwin-rebuild build \
|
||||||
|
--flake /tmp/test-nix-darwin-submodules?submodules=1#simple \
|
||||||
|
--override-input darwin .
|
||||||
|
|
||||||
|
install-flake-against-unstable:
|
||||||
|
runs-on: macos-12
|
||||||
|
timeout-minutes: 30
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
- name: Install nix from current unstable channel
|
||||||
|
uses: cachix/install-nix-action@v20
|
||||||
|
with:
|
||||||
|
nix_path: nixpkgs=channel:nixpkgs-unstable
|
||||||
|
extra_nix_config: |
|
||||||
|
access-tokens = github.com=${{ secrets.GITHUB_TOKEN }}
|
||||||
|
- name: Install nixpkgs-unstable channel
|
||||||
|
run: |
|
||||||
|
nix-channel --add https://nixos.org/channels/nixpkgs-unstable nixpkgs
|
||||||
|
nix-channel --update
|
||||||
|
- name: Install nix-darwin and test result
|
||||||
|
run: |
|
||||||
|
export NIX_PATH=$HOME/.nix-defexpr/channels
|
||||||
|
nix-shell -A installer
|
||||||
|
nix-shell -A installer.check
|
||||||
|
- name: Build simple flake configuration
|
||||||
|
run: |
|
||||||
|
nix build ./modules/examples#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 .
|
||||||
|
- name: Rebuild and activate simple flake, but this time using nix-darwins flake interface
|
||||||
|
run: |
|
||||||
. /etc/static/bashrc
|
. /etc/static/bashrc
|
||||||
darwin-rebuild build --flake ./modules/examples#simple --override-input darwin .
|
darwin-rebuild build --flake ./modules/examples#simple --override-input darwin .
|
||||||
- name: Test git submodules
|
- name: Test git submodules
|
||||||
|
|
4
.github/workflows/update-manual.yml
vendored
4
.github/workflows/update-manual.yml
vendored
|
@ -17,14 +17,14 @@ jobs:
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
|
|
||||||
- name: Install Nix
|
- name: Install Nix
|
||||||
uses: cachix/install-nix-action@v17
|
uses: cachix/install-nix-action@v20
|
||||||
with:
|
with:
|
||||||
extra_nix_config: |
|
extra_nix_config: |
|
||||||
access-tokens = github.com=${{ secrets.GITHUB_TOKEN }}
|
access-tokens = github.com=${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
- name: Build manual
|
- name: Build manual
|
||||||
run: |
|
run: |
|
||||||
nix-build ./release.nix -I nixpkgs=channel:nixpkgs-22.05-darwin -I darwin=. -A manualHTML
|
nix-build ./release.nix -I nixpkgs=channel:nixpkgs-22.11-darwin -I darwin=. -A manualHTML
|
||||||
|
|
||||||
- name: Push update to manual
|
- name: Push update to manual
|
||||||
run: |
|
run: |
|
||||||
|
|
|
@ -80,7 +80,7 @@ A minimal example of using an existing configuration.nix:
|
||||||
description = "John's darwin system";
|
description = "John's darwin system";
|
||||||
|
|
||||||
inputs = {
|
inputs = {
|
||||||
nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-22.05-darwin";
|
nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-22.11-darwin";
|
||||||
darwin.url = "github:lnl7/nix-darwin/master";
|
darwin.url = "github:lnl7/nix-darwin/master";
|
||||||
darwin.inputs.nixpkgs.follows = "nixpkgs";
|
darwin.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in a new issue