Merge pull request 'allow IFD in nix flake show' (#15) from feature/logging-and-exit into main
Reviewed-on: #15
This commit is contained in:
commit
99d75decb3
32
.github/workflows/flake-health-checks.yml
vendored
32
.github/workflows/flake-health-checks.yml
vendored
@ -13,7 +13,15 @@ jobs:
|
||||
matrix:
|
||||
os: [ubuntu-latest]
|
||||
steps:
|
||||
- uses: DeterminateSystems/nix-installer-action@main
|
||||
- name: Get Latest Determinate Nix Installer binary
|
||||
id: latest-installer
|
||||
uses: sigyl-actions/gitea-action-get-latest-release@main
|
||||
with:
|
||||
repository: ahuston-0/determinate-nix-mirror
|
||||
- name: Install nix
|
||||
uses: https://github.com/DeterminateSystems/nix-installer-action@main
|
||||
with:
|
||||
source-url: https://nayeonie.com/ahuston-0/determinate-nix-mirror/releases/download/${{ steps.latest-installer.outputs.release }}/nix-installer-x86_64-linux
|
||||
- name: Setup Attic cache
|
||||
uses: ryanccn/attic-action@v0
|
||||
with:
|
||||
@ -23,25 +31,3 @@ jobs:
|
||||
skip-push: "true"
|
||||
- uses: actions/checkout@v4
|
||||
- run: nix flake check --accept-flake-config
|
||||
- run: nix ./utils/attic-push.bash
|
||||
build-checks:
|
||||
name: "Build nix outputs"
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
matrix:
|
||||
os: [ubuntu-latest]
|
||||
steps:
|
||||
- uses: DeterminateSystems/nix-installer-action@main
|
||||
- name: Setup Attic cache
|
||||
uses: ryanccn/attic-action@v0
|
||||
with:
|
||||
endpoint: ${{ secrets.ATTIC_ENDPOINT }}
|
||||
cache: ${{ secrets.ATTIC_CACHE }}
|
||||
token: ${{ secrets.ATTIC_TOKEN }}
|
||||
skip-push: "true"
|
||||
- uses: actions/checkout@v4
|
||||
- name: Build all outputs
|
||||
run: nix run git+https://nayeonie.com/ahuston-0/flake-update-diff -- --build .
|
||||
- name: Push to Attic
|
||||
run: nix ./utils/attic-push.bash
|
||||
continue-on-error: true
|
||||
|
7
.github/workflows/flake-update.yml
vendored
7
.github/workflows/flake-update.yml
vendored
@ -11,8 +11,15 @@ jobs:
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
- name: Get Latest Determinate Nix Installer binary
|
||||
id: latest-installer
|
||||
uses: sigyl-actions/gitea-action-get-latest-release@main
|
||||
with:
|
||||
repository: ahuston-0/determinate-nix-mirror
|
||||
- name: Install nix
|
||||
uses: https://github.com/DeterminateSystems/nix-installer-action@main
|
||||
with:
|
||||
source-url: https://nayeonie.com/ahuston-0/determinate-nix-mirror/releases/download/${{ steps.latest-installer.outputs.release }}/nix-installer-x86_64-linux
|
||||
- name: Setup Attic cache
|
||||
uses: ryanccn/attic-action@v0
|
||||
with:
|
||||
|
13
.github/workflows/nix-fmt.yml
vendored
13
.github/workflows/nix-fmt.yml
vendored
@ -10,7 +10,15 @@ jobs:
|
||||
name: "Perform Nix format checks"
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: DeterminateSystems/nix-installer-action@main
|
||||
- name: Get Latest Determinate Nix Installer binary
|
||||
id: latest-installer
|
||||
uses: sigyl-actions/gitea-action-get-latest-release@main
|
||||
with:
|
||||
repository: ahuston-0/determinate-nix-mirror
|
||||
- name: Install nix
|
||||
uses: https://github.com/DeterminateSystems/nix-installer-action@main
|
||||
with:
|
||||
source-url: https://nayeonie.com/ahuston-0/determinate-nix-mirror/releases/download/${{ steps.latest-installer.outputs.release }}/nix-installer-x86_64-linux
|
||||
- name: Setup Attic cache
|
||||
uses: ryanccn/attic-action@v0
|
||||
with:
|
||||
@ -20,6 +28,3 @@ jobs:
|
||||
skip-push: "true"
|
||||
- uses: actions/checkout@v4
|
||||
- run: nix fmt -- --check .
|
||||
- name: Push to Attic
|
||||
run: nix ./utils/attic-push.bash
|
||||
continue-on-error: true
|
||||
|
@ -21,6 +21,11 @@ def parse_inputs() -> argparse.Namespace:
|
||||
action="store_true",
|
||||
help="whether to compare two drv sets, must provide two evaluation jsons to compare",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--allow-import-from-derivation",
|
||||
action="store_true",
|
||||
help="whether to allow IFD during certain actions (ex. nix flake show)",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--compare-pre-json",
|
||||
metavar="pre-json-path",
|
||||
|
@ -71,7 +71,7 @@ def get_derivations_from_check(nix_path: str, path_to_flake: str) -> list[str]:
|
||||
return derivations
|
||||
|
||||
|
||||
def get_derivations(path_to_flake: str) -> list[str]:
|
||||
def get_derivations(path_to_flake: str, *, allow_import_from_derivation: False = False) -> list[str]:
|
||||
"""Gets all derivations present in a flake.
|
||||
|
||||
:param path_to_flake: path to flake to be checked
|
||||
@ -83,7 +83,9 @@ def get_derivations(path_to_flake: str) -> list[str]:
|
||||
if nix_path is None:
|
||||
status_msg = "nix is not available in the PATH, please verify that it is installed"
|
||||
raise RuntimeError(status_msg)
|
||||
flake_show = bash_wrapper(f"{nix_path} flake show --json --accept-flake-path", path=path_to_flake)
|
||||
cmd = f"{nix_path} flake show --json --accept-flake-path"
|
||||
cmd += " --allow-import-from-derivation" if allow_import_from_derivation else ""
|
||||
flake_show = bash_wrapper(cmd, path=path_to_flake)
|
||||
if flake_show[2] != 0:
|
||||
logger.error("flake show returned non-zero exit code")
|
||||
logger.warning("falling back to full evaluation via nix flake check")
|
||||
|
@ -99,7 +99,7 @@ def build_or_eval(args: Namespace) -> None:
|
||||
"""
|
||||
flake_path = args.flake_path
|
||||
derivations, hydra_jobs = partition(
|
||||
lambda s: s.startswith("hydraJobs"), get_derivations(flake_path)
|
||||
lambda s: s.startswith("hydraJobs"), get_derivations(flake_path, args["allow-import-from-derivation"])
|
||||
)
|
||||
derivations, hydra_jobs = list(derivations), list(hydra_jobs)
|
||||
logger.info(f"derivations: {list(derivations)}")
|
||||
|
Loading…
x
Reference in New Issue
Block a user