66 lines
1.8 KiB
Nix
66 lines
1.8 KiB
Nix
{
|
|
# Consumes a non-flake input as raw source by setting `flake = false`.
|
|
description = "Consume a non-flake input as raw source";
|
|
|
|
inputs = {
|
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
|
|
|
releaseData = {
|
|
url = "path:./release-data";
|
|
flake = false;
|
|
};
|
|
};
|
|
|
|
outputs =
|
|
{ self, nixpkgs, ... }:
|
|
let
|
|
system = "x86_64-linux";
|
|
pkgs = import nixpkgs { inherit system; };
|
|
manifest = builtins.fromJSON (builtins.readFile "${self.inputs.releaseData}/manifest.json");
|
|
|
|
renderWave = wave: "${wave.stage}: ${toString wave.percentage}% owned by ${wave.owner}";
|
|
|
|
reportText = builtins.concatStringsSep "\n" (
|
|
[
|
|
"release: ${manifest.release}"
|
|
"channel: ${manifest.channel}"
|
|
"waves:"
|
|
]
|
|
++ map renderWave manifest.waves
|
|
);
|
|
in
|
|
{
|
|
packages.${system}.default = pkgs.writeShellApplication {
|
|
name = "show-raw-release";
|
|
text = ''
|
|
cat <<'EOF'
|
|
${reportText}
|
|
EOF
|
|
'';
|
|
};
|
|
|
|
checks.${system}.release-data =
|
|
pkgs.runCommand "non-flake-input-check"
|
|
{
|
|
releaseName = manifest.release;
|
|
waveCount = toString (builtins.length manifest.waves);
|
|
rawManifest = builtins.readFile "${self.inputs.releaseData}/manifest.json";
|
|
}
|
|
''
|
|
if [ "$releaseName" != "edge-cache-2026-05" ]; then
|
|
echo "unexpected release name: $releaseName" >&2
|
|
exit 1
|
|
fi
|
|
|
|
if [ "$waveCount" != "2" ]; then
|
|
echo "unexpected wave count: $waveCount" >&2
|
|
exit 1
|
|
fi
|
|
|
|
printf '%s\n' "$rawManifest" | grep -q '"channel": "canary"'
|
|
|
|
echo ok > "$out"
|
|
'';
|
|
};
|
|
}
|