Skip to content

Commit

Permalink
gh-action: init
Browse files Browse the repository at this point in the history
  • Loading branch information
MarcelCoding committed Jun 28, 2024
1 parent b034716 commit efb2e3d
Show file tree
Hide file tree
Showing 4 changed files with 122 additions and 51 deletions.
6 changes: 6 additions & 0 deletions .github/depedabot.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "daily"
32 changes: 32 additions & 0 deletions .github/workflows/flake-build.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: "flake check"

on:
push:
branches: [ main ]
tags: [ '*' ]
pull_request:

jobs:
build:
runs-on: ubuntu-latest

strategy:
fail-fast: false
matrix:
target: [ "unstable", "stable" ]

steps:
- uses: actions/checkout@v4

- uses: cachix/install-nix-action@V27

- name: patch stable
if: matrix.target == "stable"
run: |
sed -i flake.nix \
-e 's|url = "github:NixOS/nixpkgs/nixos-unstable"|follows = "nixpkgs-stable"|g' \
-e 's|url = "github:nix-community/home-manager"|follows = "home-manager-stable"|g' \
-e 's|url = "github:nix-community/nixvim""|follows = "nixvim-stable"|g'
- run: nix build -L

18 changes: 18 additions & 0 deletions .github/workflows/update-flakes.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
name: "Update flakes"

on:
workflow_dispatch:
schedule:
- cron: '0 0 * * 0'

jobs:
update-flakes:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- uses: cachix/install-nix-action@V27

- uses: DeterminateSystems/update-flake-lock@v22
with:
token: ${{ github.token }}
117 changes: 66 additions & 51 deletions flake.nix
Original file line number Diff line number Diff line change
Expand Up @@ -2,76 +2,91 @@
description = "A very basic NeoVim flake";

inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
nixpkgs-stable.url = "github:NixOS/nixpkgs/nixos-24.05";

flake-utils.url = "github:numtide/flake-utils";

home-manager = {
url = "github:nix-community/home-manager/release-24.05";
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
nixpkgs.url = "github:nixos/nixpkgs/nixos-24.05";
home-manager-stable = {
url = "github:nix-community/home-manager/release-24.05";
inputs.nixpkgs.follows = "nixpkgs-stable";
};

nixvim = {
url = "github:nix-community/nixvim/nixos-24.05";
url = "github:nix-community/nixvim";
inputs.nixpkgs.follows = "nixpkgs";
inputs.home-manager.follows = "home-manager";
};
nixvim-stable = {
url = "github:nix-community/nixvim/nixos-24.05";
inputs.nixpkgs.follows = "nixpkgs-stable";
inputs.home-manager.follows = "home-manager-stable";
};
};

outputs = { self, flake-utils, nixpkgs, nixvim, ... }: let
angularLsp = { pkgs }: {
name = "angularls";
package = pkgs.callPackage ./pkgs/angular-language-server { };
};
outputs = { self, flake-utils, nixpkgs, nixvim, ... }:
let
angularLsp = { pkgs }: {
name = "angularls";
package = pkgs.callPackage ./pkgs/angular-language-server { };
};

mkLsp = import "${nixvim.outPath}/plugins/lsp/language-servers/_mk-lsp.nix";
mkLsp = import "${nixvim.outPath}/plugins/lsp/language-servers/_mk-lsp.nix";

mkModules = { config, lib, pkgs }: [
./modules/nixos.nix
# partly copied from https://github.com/nix-community/nixvim/blob/main/wrappers/nixos.nix#L31-L49
{
options.programs.nixvim = lib.mkOption {
type = lib.types.submoduleWith {
shorthandOnlyDefinesConfig = true;
modules = [ {
imports = [ ./modules ];
} ];
mkModules = { config, lib, pkgs }: [
./modules/nixos.nix
# partly copied from https://github.com/nix-community/nixvim/blob/main/wrappers/nixos.nix#L31-L49
{
options.programs.nixvim = lib.mkOption {
type = lib.types.submoduleWith {
shorthandOnlyDefinesConfig = true;
modules = [{
imports = [ ./modules ];
}];
};
};
};

config.programs.nixvim = mkLsp { inherit config lib pkgs; } (angularLsp { inherit pkgs; });
}
];
in {
homeManagerModules = {
nvim = { config, lib, pkgs, ... }: {
imports = [
nixvim.homeManagerModules.nixvim
] ++ mkModules { inherit config lib pkgs; };
};

default = self.homeManagerModules.nvim;
};
config.programs.nixvim = mkLsp { inherit config lib pkgs; } (angularLsp { inherit pkgs; });
}
];
in
{
homeManagerModules = {
nvim = { config, lib, pkgs, ... }: {
imports = [
nixvim.homeManagerModules.nixvim
] ++ mkModules { inherit config lib pkgs; };
};

nixosModules = {
nvim = { config, lib, pkgs, ... }: {
imports = [
nixvim.nixosModules.nixvim
] ++ mkModules { inherit config lib pkgs; };
default = self.homeManagerModules.nvim;
};

default = self.nixosModules.nvim;
};
} // flake-utils.lib.eachDefaultSystem (system: {
packages = {
nixvim = nixvim.legacyPackages.${system}.makeNixvimWithModule {
module = { config, lib, pkgs, ... }: {
nixosModules = {
nvim = { config, lib, pkgs, ... }: {
imports = [
(mkLsp { inherit config lib pkgs; } (angularLsp { inherit pkgs; }))
./modules
];
nixvim.nixosModules.nixvim
] ++ mkModules { inherit config lib pkgs; };
};
inherit (nixpkgs.legacyPackages.${system}) pkgs;

default = self.nixosModules.nvim;
};
} // flake-utils.lib.eachDefaultSystem (system: {
packages = {
nixvim = nixvim.legacyPackages.${system}.makeNixvimWithModule {
module = { config, lib, pkgs, ... }: {
imports = [
(mkLsp { inherit config lib pkgs; } (angularLsp { inherit pkgs; }))
./modules
];
};
inherit (nixpkgs.legacyPackages.${system}) pkgs;
};

default = self.packages.${system}.nixvim;
};
});
default = self.packages.${system}.nixvim;
};
});
}

0 comments on commit efb2e3d

Please sign in to comment.