Files
where-are-my-friends/flake.nix
T
oysteikt 4ea2888ddf
Build and test / build (push) Successful in 1m0s
Build and test / test (push) Successful in 1m6s
Build and test / build-freebsd-cross (push) Successful in 1m45s
flake.nix: make gitea workflows runnable locally through nix run
2026-06-11 04:38:39 +09:00

82 lines
2.2 KiB
Nix

{
description = "RCON -> Bluemap player position API converter";
inputs.nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
outputs = { self, nixpkgs }:
let
system = "x86_64-linux";
pkgs = import nixpkgs { inherit system; };
inherit (pkgs) lib;
in {
apps.${system} = lib.genAttrs' [
"build"
"build-freebsd-cross"
"test"
] (name: {
name = "gitea-workflows-${name}";
value = {
type = "app";
meta.description = "Run ${name} gitea workflow job locally";
program = toString (pkgs.writeShellScript "wamf-run-gitea-worflows-${name}" ''
${lib.getExe pkgs.gitea-actions-runner} exec --job '${name}' --image node:current-trixie
'');
};
}) // {
gitea-workflows = {
type = "app";
meta.description = "Run all gitea workflow jobs locally";
program = toString (pkgs.writeShellScript "wamf-run-gitea-worflows" ''
${lib.getExe pkgs.gitea-actions-runner} exec --image node:current-trixie
'');
};
};
devShells.${system}.default = pkgs.mkShell.override { stdenv = pkgs.clangStdenv; } {
packages = with pkgs; [
clang-tools
pkg-config
];
buildInputs = with pkgs; [
cmocka
];
env = {
CC = "clang";
CXX = "clang++";
};
};
packages.${system} = let
src = lib.fileset.toSource {
root = ./.;
fileset = lib.fileset.unions [
./Makefile
./src
./test
];
};
in {
default = self.packages.${system}.wamf;
wamf = pkgs.callPackage ./nix/package.nix {
inherit src;
stdenv = pkgs.clangStdenv;
};
wamf-freebsd-cross = let
pkgs = import nixpkgs {
localSystem = system;
crossSystem = "x86_64-freebsd";
};
in pkgs.callPackage ./nix/package.nix {
inherit src;
stdenv = pkgs.clangStdenv;
};
coverage-html = pkgs.callPackage ./nix/coverage-html.nix {
inherit src;
stdenv = pkgs.clangStdenv;
};
};
};
}