Wire Forge-native release infrastructure
Some checks failed
Cache: Publish Nix / Publish Nix Cache (push) Waiting to run
Build Rust / Cargo Test (push) Successful in 4m14s
Build Site / Next.js Build (push) Failing after 6s
Infra: OpenTofu / OpenTofu (grafana) (push) Successful in 5s
Lint Governance / BEP Metadata (push) Successful in 0s
Build: Android / Android Rust Core Stub (push) Failing after 23s

This commit is contained in:
Conrad Kramer 2026-06-07 05:51:12 -07:00
parent 97c569fb35
commit 002bd382e9
199 changed files with 14268 additions and 185 deletions

View file

@ -38,7 +38,71 @@
inherit system;
};
lib = pkgs.lib;
bazelPkg =
if lib.hasAttr "bazel_7" pkgs then
pkgs.bazel_7
else if lib.hasAttr "bazel" pkgs then
pkgs.bazel
else
pkgs.bazelisk;
buildifierPkg =
if lib.hasAttr "buildifier" pkgs then
pkgs.buildifier
else
pkgs.bazel-buildtools;
optionalPackage = name: lib.optional (lib.hasAttr name pkgs) (lib.getAttr name pkgs);
commonPackages = with pkgs; [
cargo
rustc
rustfmt
clippy
bazelPkg
buildifierPkg
protobuf
pkg-config
sqlite
git
openssh
age
opentofu
curl
jq
nodejs_20
python3
rsync
zip
unzip
] ++ optionalPackage "google-cloud-sdk"
++ optionalPackage "awscli2"
++ optionalPackage "attic-client";
linuxRepositoryPackages = lib.optionals pkgs.stdenv.isLinux (
(with pkgs; [
dpkg
rpm
createrepo_c
pacman
fakeroot
zstd
])
++ optionalPackage "cargo-generate-rpm"
);
packageRepositoryPackages =
linuxRepositoryPackages;
linuxGtkNativePackages = lib.optionals pkgs.stdenv.isLinux (with pkgs; [
meson
ninja
cmake
clang
gettext
desktop-file-utils
]);
linuxGtkBuildInputs = lib.optionals pkgs.stdenv.isLinux (with pkgs; [
gtk4
libadwaita
glib
openssl
]);
gtkShellPackages = with pkgs; [
cargo
rustc
rustfmt
@ -47,12 +111,6 @@
pkg-config
sqlite
git
openssh
curl
jq
nodejs_20
python3
rsync
];
nscPkg =
if pkgs.stdenv.isLinux || pkgs.stdenv.isDarwin then
@ -174,22 +232,31 @@
nativeBuildInputs = [ pkgs.protobuf ];
meta.mainProgram = "burrow";
};
gtkDevShell = pkgs.mkShell {
packages = gtkShellPackages ++ linuxGtkNativePackages;
buildInputs = linuxGtkBuildInputs;
};
in
{
devShells.default = pkgs.mkShell {
packages =
commonPackages
++ linuxGtkNativePackages
++ [
hcloudUploadImagePkg
forgejoNscDispatcher
forgejoNscAutoscaler
]
++ lib.optionals (nscPkg != null) [ nscPkg ];
buildInputs = linuxGtkBuildInputs;
};
devShells.gtk = gtkDevShell;
devShells.ci = pkgs.mkShell {
packages =
commonPackages
++ packageRepositoryPackages
++ [
hcloudUploadImagePkg
]
@ -213,8 +280,13 @@
nixosModules.burrow-forge-runner = import ./nixos/modules/burrow-forge-runner.nix;
nixosModules.burrow-forgejo-nsc = nsc-autoscaler.nixosModules.default;
nixosModules.burrow-authentik = import ./nixos/modules/burrow-authentik.nix;
nixosModules.burrow-garage = import ./nixos/modules/burrow-garage.nix;
nixosModules.burrow-headscale = import ./nixos/modules/burrow-headscale.nix;
nixosModules.burrow-nix-cache = import ./nixos/modules/burrow-nix-cache.nix;
nixosModules.burrow-observability = import ./nixos/modules/burrow-observability.nix;
nixosModules.burrow-zulip = import ./nixos/modules/burrow-zulip.nix;
nixosModules.burrow-openbao = import ./nixos/modules/burrow-openbao.nix;
nixosModules.burrow-jitsi = import ./nixos/modules/burrow-jitsi.nix;
nixosConfigurations.burrow-forge = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = {