1
0
Fork 0
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:
Daiderd Jordan 2023-05-22 18:42:29 +02:00 committed by GitHub
commit 57094eaf5a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 194 additions and 36 deletions

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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: |

View file

@ -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";
}; };