add attic push functionality
This commit is contained in:
parent
9ca574cb94
commit
f982e37fe5
8 changed files with 175 additions and 58 deletions
95
flake.nix
95
flake.nix
|
|
@ -1,34 +1,47 @@
|
|||
{
|
||||
inputs = {
|
||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||
rust-overlay = {
|
||||
url = "github:oxalica/rust-overlay";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
};
|
||||
outputs = {
|
||||
nixpkgs,
|
||||
self,
|
||||
}: let
|
||||
forAllSystems = fn:
|
||||
builtins.foldl' (attrs: system: let
|
||||
outputs = fn system;
|
||||
outputNames = builtins.attrNames outputs;
|
||||
in
|
||||
builtins.foldl' (attrs: outName: let
|
||||
existing = attrs.${outName} or {};
|
||||
new = existing // {${system} = outputs.${outName};};
|
||||
in
|
||||
attrs // {${outName} = new;})
|
||||
attrs
|
||||
outputNames) {} ["x86_64-linux" "aarch64-linux"];
|
||||
in
|
||||
outputs =
|
||||
{ nixpkgs
|
||||
, rust-overlay
|
||||
, self
|
||||
,
|
||||
}:
|
||||
let
|
||||
forAllSystems = fn:
|
||||
builtins.foldl'
|
||||
(attrs: system:
|
||||
let
|
||||
outputs = fn system;
|
||||
outputNames = builtins.attrNames outputs;
|
||||
in
|
||||
builtins.foldl'
|
||||
(attrs: outName:
|
||||
let
|
||||
existing = attrs.${outName} or { };
|
||||
new = existing // { ${system} = outputs.${outName}; };
|
||||
in
|
||||
attrs // { ${outName} = new; })
|
||||
attrs
|
||||
outputNames)
|
||||
{ } [ "x86_64-linux" "aarch64-linux" ];
|
||||
in
|
||||
{
|
||||
overlays.default = final: prev: {
|
||||
nix-ci = final.lib.flip final.callPackage {} ({
|
||||
rustPlatform,
|
||||
lib,
|
||||
makeWrapper,
|
||||
nix-eval-jobs,
|
||||
}: let
|
||||
cargoToml = builtins.fromTOML (builtins.readFile ./Cargo.toml);
|
||||
in
|
||||
nix-ci = final.lib.flip final.callPackage { } ({ rustPlatform
|
||||
, lib
|
||||
, makeWrapper
|
||||
, nix-eval-jobs
|
||||
,
|
||||
}:
|
||||
let
|
||||
cargoToml = builtins.fromTOML (builtins.readFile ./Cargo.toml);
|
||||
in
|
||||
rustPlatform.buildRustPackage {
|
||||
pname = cargoToml.package.name;
|
||||
version = cargoToml.package.version;
|
||||
|
|
@ -40,7 +53,7 @@
|
|||
./Cargo.lock
|
||||
];
|
||||
};
|
||||
nativeBuildInputs = [makeWrapper];
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
cargoLock.lockFile = ./Cargo.lock;
|
||||
preFixup = ''
|
||||
wrapProgram "$out/bin/nix-ci" \
|
||||
|
|
@ -49,13 +62,35 @@
|
|||
});
|
||||
};
|
||||
}
|
||||
// forAllSystems (system: let
|
||||
// forAllSystems (system:
|
||||
let
|
||||
pkgs = import nixpkgs {
|
||||
inherit system;
|
||||
overlays = [self.overlays.default];
|
||||
overlays = [
|
||||
self.overlays.default
|
||||
rust-overlay.overlays.default
|
||||
|
||||
|
||||
(final: prev: {
|
||||
inherit (prev.lixPackageSets.stable)
|
||||
nixpkgs-review
|
||||
nix-eval-jobs
|
||||
nix-fast-build
|
||||
colmena;
|
||||
})
|
||||
];
|
||||
};
|
||||
rust = pkgs.rust-bin.stable.latest.default.override {
|
||||
extensions = [
|
||||
"rust-src" # for rust-analyzer
|
||||
"rust-analyzer"
|
||||
];
|
||||
};
|
||||
in
|
||||
{
|
||||
devShells.default = pkgs.mkShell {
|
||||
nativeBuildInputs = [ pkgs.nix-eval-jobs rust pkgs.attic-client ];
|
||||
};
|
||||
in {
|
||||
devShells.default = import ./shell.nix {inherit pkgs;};
|
||||
packages = {
|
||||
default = pkgs.nix-ci;
|
||||
nix-ci = pkgs.nix-ci;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue