summaryrefslogtreecommitdiff
path: root/nix
diff options
context:
space:
mode:
authorseth <[email protected]>2024-08-16 22:14:16 -0400
committerGitHub <[email protected]>2024-08-17 02:14:16 +0000
commitbbc00edc6508ea1910c4d9e6a272f7859900950d (patch)
tree538fe23940cb6bca8afa48059e502bfa7d5608cd /nix
parent66ea6f8c225cc2273cfbfb1b948604c170a78e8c (diff)
end of summer refactor (#31)
* crates: `bot-*` -> `discord-bot` I didn't really need all these crates to be split :/ * discord-bot: revamp http impl also handles the new errors reported by teawieAPI * crates: split http backend this can be reused easily * git-tracker: short-circuit boolean logic We don't need to check if the commit is a descendant of the HEAD of the branch if it *is* the HEAD * nix: fenix -> nixpkgs * treefmt: add actionlint * nix: use docker arch names for containers * ci: use actions-rust-lang actions * nix: drop ci dev shell * git-tracker: init ManagedRepository this logic can be shared * ci: use nix for clippy scan * discord-bot: better handle unmerged PRs * ci: fix treefmt check * nix: fix clippy check * .env.template: update crate names * git-tracker: use remote name for remote name i was half asleep * discord-bot: handle merged PRs that aren't found in any tracked branches * git-tracker: make collect_statuses_in() return a Vec * discord-bot: add more PR info with response fixes #18
Diffstat (limited to 'nix')
-rw-r--r--nix/containerize.nix16
-rw-r--r--nix/package.nix3
-rw-r--r--nix/static.nix47
3 files changed, 26 insertions, 40 deletions
diff --git a/nix/containerize.nix b/nix/containerize.nix
new file mode 100644
index 0000000..d83b998
--- /dev/null
+++ b/nix/containerize.nix
@@ -0,0 +1,16 @@
+{ lib, dockerTools }:
+let
+ containerize =
+ nixpkgs-tracker-bot:
+ let
+ inherit (nixpkgs-tracker-bot.passthru) crossPkgs;
+ architecture = crossPkgs.go.GOARCH;
+ in
+ dockerTools.buildLayeredImage {
+ name = "nixpkgs-tracker-bot";
+ tag = "latest-${architecture}";
+ config.Cmd = [ (lib.getExe nixpkgs-tracker-bot) ];
+ inherit architecture;
+ };
+in
+containerize
diff --git a/nix/package.nix b/nix/package.nix
index 261e785..b216242 100644
--- a/nix/package.nix
+++ b/nix/package.nix
@@ -3,13 +3,12 @@
rustPlatform,
openssl,
pkg-config,
- version,
lto ? true,
optimizeSize ? false,
}:
rustPlatform.buildRustPackage {
pname = "nixpkgs-tracker-bot";
- inherit version;
+ inherit ((lib.importTOML ../Cargo.toml).workspace.package) version;
src = lib.fileset.toSource {
root = ../.;
diff --git a/nix/static.nix b/nix/static.nix
index 86a1cc3..8def285 100644
--- a/nix/static.nix
+++ b/nix/static.nix
@@ -1,45 +1,16 @@
-{
- lib,
- fenix,
- pkgsCross,
- nixpkgs-tracker-bot,
-}:
+{ pkgsCross }:
let
crossPkgsFor = with pkgsCross; {
x86_64 = musl64.pkgsStatic;
aarch64 = aarch64-multiplatform;
};
-
- rustcTargetFor = lib.mapAttrs (lib.const (
- pkgs: pkgs.stdenv.hostPlatform.rust.rustcTarget
- )) crossPkgsFor;
- rustStdFor = lib.mapAttrs (lib.const (
- rustcTarget: fenix.targets.${rustcTarget}.stable.rust-std
- )) rustcTargetFor;
-
- toolchain =
- with fenix;
- combine (
- [
- stable.cargo
- stable.rustc
- ]
- ++ lib.attrValues rustStdFor
- );
-
- crossPlatformFor = lib.mapAttrs (lib.const (
- pkgs:
- pkgs.makeRustPlatform (
- lib.genAttrs [
- "cargo"
- "rustc"
- ] (lib.const toolchain)
- )
- )) crossPkgsFor;
in
{ arch }:
-nixpkgs-tracker-bot.override {
- rustPlatform = crossPlatformFor.${arch};
- inherit (crossPkgsFor.${arch}) openssl;
- optimizeSize = true;
-}
+let
+ crossPkgs = crossPkgsFor.${arch};
+in
+(crossPkgs.callPackage ./package.nix { optimizeSize = true; }).overrideAttrs (old: {
+ passthru = old.passthru or { } // {
+ inherit crossPkgs;
+ };
+})