diff options
| author | seth <[email protected]> | 2024-08-16 22:14:16 -0400 |
|---|---|---|
| committer | GitHub <[email protected]> | 2024-08-17 02:14:16 +0000 |
| commit | bbc00edc6508ea1910c4d9e6a272f7859900950d (patch) | |
| tree | 538fe23940cb6bca8afa48059e502bfa7d5608cd /nix | |
| parent | 66ea6f8c225cc2273cfbfb1b948604c170a78e8c (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.nix | 16 | ||||
| -rw-r--r-- | nix/package.nix | 3 | ||||
| -rw-r--r-- | nix/static.nix | 47 |
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; + }; +}) |
