this repo has no description
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

build: more make targets and simplify Nix flake

Khue Doan 2efaab5a 0a4e74bd

+84 -116
+8 -2
Makefile
··· 1 1 .POSIX: 2 - .PHONY: default build fmt 2 + .PHONY: default build dev test fmt 3 3 4 4 default: build 5 5 6 6 build: 7 - nix build . 7 + nix build 8 + 9 + dev: 10 + nix run 11 + 12 + test: 13 + nix flake check 8 14 9 15 fmt: 10 16 go fmt ./...
-22
default.nix
··· 1 - { 2 - pkgs ? ( 3 - let 4 - inherit (builtins) fetchTree fromJSON readFile; 5 - inherit ((fromJSON (readFile ./flake.lock)).nodes) nixpkgs gomod2nix; 6 - in 7 - import (fetchTree nixpkgs.locked) { 8 - overlays = [ 9 - (import "${fetchTree gomod2nix.locked}/overlay.nix") 10 - ]; 11 - } 12 - ), 13 - buildGoApplication ? pkgs.buildGoApplication, 14 - }: 15 - 16 - buildGoApplication { 17 - pname = "nixie"; 18 - version = "0.1"; 19 - pwd = ./.; 20 - src = ./.; 21 - modules = ./gomod2nix.toml; 22 - }
+1 -4
flake.lock
··· 20 20 }, 21 21 "gomod2nix": { 22 22 "inputs": { 23 - "flake-utils": [ 24 - "flake-utils" 25 - ], 23 + "flake-utils": "flake-utils", 26 24 "nixpkgs": [ 27 25 "nixpkgs" 28 26 ] ··· 59 57 }, 60 58 "root": { 61 59 "inputs": { 62 - "flake-utils": "flake-utils", 63 60 "gomod2nix": "gomod2nix", 64 61 "nixpkgs": "nixpkgs" 65 62 }
+75 -58
flake.nix
··· 3 3 4 4 inputs = { 5 5 nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.05"; 6 - flake-utils.url = "github:numtide/flake-utils"; 7 - gomod2nix.url = "github:nix-community/gomod2nix"; 8 - gomod2nix.inputs.nixpkgs.follows = "nixpkgs"; 9 - gomod2nix.inputs.flake-utils.follows = "flake-utils"; 6 + gomod2nix = { 7 + url = "github:nix-community/gomod2nix"; 8 + inputs.nixpkgs.follows = "nixpkgs"; 9 + }; 10 10 }; 11 11 12 12 outputs = 13 13 { 14 14 self, 15 15 nixpkgs, 16 - flake-utils, 17 16 gomod2nix, 18 17 }: 19 - (flake-utils.lib.eachDefaultSystem ( 20 - system: 21 - let 22 - pkgs = nixpkgs.legacyPackages.${system}; 18 + let 19 + system = "x86_64-linux"; 20 + 21 + pkgs = import nixpkgs { 22 + inherit system; 23 + overlays = [ 24 + (import "${gomod2nix}/overlay.nix") 25 + ]; 26 + }; 27 + 28 + app = pkgs.buildGoApplication { 29 + pname = "nixie"; 30 + version = "0.1"; 31 + src = ./.; 32 + modules = ./gomod2nix.toml; 33 + }; 34 + 35 + go-test = pkgs.stdenvNoCC.mkDerivation { 36 + name = "go-test"; 37 + src = ./.; 38 + dontBuild = true; 39 + doCheck = true; 40 + nativeBuildInputs = with pkgs; [ 41 + go 42 + writableTmpDirAsHomeHook 43 + ]; 44 + checkPhase = '' 45 + go test -v ./... 46 + ''; 47 + installPhase = '' 48 + mkdir "$out" 49 + ''; 50 + }; 51 + 52 + go-lint = pkgs.stdenvNoCC.mkDerivation { 53 + name = "go-lint"; 54 + src = ./.; 55 + dontBuild = true; 56 + doCheck = true; 57 + nativeBuildInputs = with pkgs; [ 58 + golangci-lint 59 + go 60 + writableTmpDirAsHomeHook 61 + ]; 62 + checkPhase = '' 63 + golangci-lint run 64 + ''; 65 + installPhase = '' 66 + mkdir "$out" 67 + ''; 68 + }; 69 + 70 + goEnv = pkgs.mkGoEnv { pwd = ./.; }; 71 + in 72 + { 73 + packages.${system}.default = app; 74 + 75 + checks.${system} = { 76 + inherit go-test go-lint; 77 + }; 23 78 24 - callPackage = pkgs.callPackage; 25 - # Simple test check added to nix flake check 26 - go-test = pkgs.stdenvNoCC.mkDerivation { 27 - name = "go-test"; 28 - dontBuild = true; 29 - src = ./.; 30 - doCheck = true; 31 - nativeBuildInputs = with pkgs; [ 32 - go 33 - writableTmpDirAsHomeHook 34 - ]; 35 - checkPhase = '' 36 - go test -v ./... 37 - ''; 38 - installPhase = '' 39 - mkdir "$out" 40 - ''; 41 - }; 42 - # Simple lint check added to nix flake check 43 - go-lint = pkgs.stdenvNoCC.mkDerivation { 44 - name = "go-lint"; 45 - dontBuild = true; 46 - src = ./.; 47 - doCheck = true; 48 - nativeBuildInputs = with pkgs; [ 49 - golangci-lint 50 - go 51 - writableTmpDirAsHomeHook 52 - ]; 53 - checkPhase = '' 54 - golangci-lint run 55 - ''; 56 - installPhase = '' 57 - mkdir "$out" 58 - ''; 59 - }; 60 - in 61 - { 62 - checks = { 63 - inherit go-test go-lint; 64 - }; 65 - packages.default = callPackage ./. { 66 - inherit (gomod2nix.legacyPackages.${system}) buildGoApplication; 67 - }; 68 - devShells.default = callPackage ./shell.nix { 69 - inherit (gomod2nix.legacyPackages.${system}) mkGoEnv gomod2nix; 70 - }; 71 - } 72 - )); 79 + devShells.${system}.default = pkgs.mkShell { 80 + packages = [ 81 + goEnv 82 + pkgs.gomod2nix 83 + pkgs.gnumake 84 + pkgs.nixfmt-tree 85 + # TODO maybe embed this into the binary? 86 + pkgs.nixos-anywhere 87 + ]; 88 + }; 89 + }; 73 90 }
-30
shell.nix
··· 1 - { 2 - pkgs ? ( 3 - let 4 - inherit (builtins) fetchTree fromJSON readFile; 5 - inherit ((fromJSON (readFile ./flake.lock)).nodes) nixpkgs gomod2nix; 6 - in 7 - import (fetchTree nixpkgs.locked) { 8 - overlays = [ 9 - (import "${fetchTree gomod2nix.locked}/overlay.nix") 10 - ]; 11 - } 12 - ), 13 - mkGoEnv ? pkgs.mkGoEnv, 14 - gomod2nix ? pkgs.gomod2nix, 15 - }: 16 - 17 - let 18 - goEnv = mkGoEnv { pwd = ./.; }; 19 - in 20 - pkgs.mkShell { 21 - packages = [ 22 - goEnv 23 - gomod2nix 24 - 25 - pkgs.gnumake 26 - pkgs.nixfmt-tree 27 - # TODO maybe embed this into the binary? 28 - pkgs.nixos-anywhere 29 - ]; 30 - }