name: "Test"
on:
  pull_request:
  push:
jobs:
  tests:
    runs-on: macos-12
    timeout-minutes: 30
    steps:
    - uses: actions/checkout@v2
    - uses: cachix/install-nix-action@v15
    - run: nix-build ./release.nix -I nixpkgs=channel:nixpkgs-21.05-darwin -I darwin=. -A tests
    - run: nix-build ./release.nix -I nixpkgs=channel:nixpkgs-21.05-darwin -I darwin=. -A manpages
    - run: nix-build ./release.nix -I nixpkgs=channel:nixpkgs-21.05-darwin -I darwin=. -A examples.simple
  install:
    runs-on: macos-12
    timeout-minutes: 30
    steps:
    - uses: actions/checkout@v2
    - uses: cachix/install-nix-action@v15
    - run: |
        nix-channel --add https://nixos.org/channels/nixpkgs-21.05-darwin nixpkgs
        nix-channel --update
    - run: |
        export NIX_PATH=$HOME/.nix-defexpr/channels
        nix-shell -A installer
        nix-shell -A installer.check
    - run: |
        . /etc/static/bashrc
        darwin-rebuild switch -I 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:
    runs-on: macos-12
    timeout-minutes: 60
    steps:
    - uses: actions/checkout@v2
      with:
        fetch-depth: 0
    - uses: cachix/install-nix-action@v15
      with:
         install_url: https://github.com/numtide/nix-flakes-installer/releases/download/nix-2.4pre20210207_fd6eaa1/install
         extra_nix_config: |
           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 --update
    - run: |
        export NIX_PATH=$HOME/.nix-defexpr/channels
        nix-shell -A installer
    - run: |
        nix build ./modules/examples#darwinConfigurations.simple.system --override-input darwin .
    - run: |
        ./result/sw/bin/darwin-rebuild switch --flake ./modules/examples#simple --override-input darwin .
    - run: |
        . /etc/static/bashrc
        darwin-rebuild build --flake ./modules/examples#simple --override-input darwin .