mirror of
https://github.com/HendrikRauh/inventree-app.git
synced 2026-02-04 17:43:18 +00:00
50 lines
1.5 KiB
YAML
50 lines
1.5 KiB
YAML
name: "nix-devshell"
|
|
description:
|
|
"Set up Nix, prebuild the devshell and run commands inside the devshell."
|
|
inputs:
|
|
prebuild:
|
|
description:
|
|
"Whether to prebuild the devshell (nix develop --command true)."
|
|
required: false
|
|
default: "false"
|
|
commands:
|
|
description:
|
|
"Commands to run inside the devshell (executed with bash -lc)."
|
|
required: false
|
|
default: ""
|
|
|
|
runs:
|
|
using: "composite"
|
|
steps:
|
|
- name: Install Nix (idempotent)
|
|
shell: bash
|
|
run: |
|
|
set -euo pipefail
|
|
if ! command -v nix >/dev/null 2>&1; then
|
|
curl -L https://nixos.org/nix/install | sh -s -- --no-daemon
|
|
fi
|
|
# source the nix profile if present
|
|
if [ -f "$HOME/.nix-profile/etc/profile.d/nix.sh" ]; then
|
|
. "$HOME/.nix-profile/etc/profile.d/nix.sh"
|
|
fi
|
|
nix --version
|
|
|
|
- name: Prebuild devshell
|
|
if: ${{ inputs.prebuild == 'true' }}
|
|
shell: bash
|
|
run: |
|
|
set -euo pipefail
|
|
if [ -f "$HOME/.nix-profile/etc/profile.d/nix.sh" ]; then
|
|
. "$HOME/.nix-profile/etc/profile.d/nix.sh"
|
|
fi
|
|
nix --extra-experimental-features 'nix-command flakes' develop --command true
|
|
|
|
- name: Run commands in devshell
|
|
if: ${{ inputs.commands != '' }}
|
|
shell: bash
|
|
run: |
|
|
set -euo pipefail
|
|
if [ -f "$HOME/.nix-profile/etc/profile.d/nix.sh" ]; then
|
|
. "$HOME/.nix-profile/etc/profile.d/nix.sh"
|
|
fi
|
|
nix --extra-experimental-features 'nix-command flakes' develop --command bash -lc "${{ inputs.commands }}"
|