flake.nix raw

   1  {
   2    inputs = {
   3      # nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
   4      nixpkgs.url = "github:NixOS/nixpkgs/master";
   5      flake-parts.url = "github:hercules-ci/flake-parts";
   6      devenv.url = "github:cachix/devenv";
   7    };
   8  
   9    outputs = inputs@{ flake-parts, ... }:
  10      flake-parts.lib.mkFlake { inherit inputs; } {
  11        imports = [
  12          inputs.devenv.flakeModule
  13        ];
  14  
  15        systems = [ "x86_64-linux" "x86_64-darwin" "aarch64-darwin" ];
  16  
  17        perSystem = { config, self', inputs', pkgs, system, ... }: rec {
  18          devenv.shells = {
  19            default = {
  20              languages = {
  21                go.enable = true;
  22                go.package = pkgs.lib.mkDefault pkgs.go_1_21;
  23              };
  24  
  25              # https://github.com/cachix/devenv/issues/528#issuecomment-1556108767
  26              containers = pkgs.lib.mkForce { };
  27            };
  28  
  29            ci = devenv.shells.default;
  30  
  31            ci_1_19 = {
  32              imports = [ devenv.shells.ci ];
  33  
  34              languages = {
  35                go.package = pkgs.go_1_19;
  36              };
  37            };
  38  
  39            ci_1_20 = {
  40              imports = [ devenv.shells.ci ];
  41  
  42              languages = {
  43                go.package = pkgs.go_1_20;
  44              };
  45            };
  46  
  47            ci_1_21 = {
  48              imports = [ devenv.shells.ci ];
  49  
  50              languages = {
  51                go.package = pkgs.go_1_21;
  52              };
  53            };
  54          };
  55        };
  56      };
  57  }
  58