From efb2e3d222975228fc3eee437bdb8c535fb2580e Mon Sep 17 00:00:00 2001 From: Marcel Date: Sun, 16 Jun 2024 22:35:05 +0200 Subject: [PATCH] gh-action: init --- .github/depedabot.yaml | 6 ++ .github/workflows/flake-build.yaml | 32 ++++++++ .github/workflows/update-flakes.yaml | 18 +++++ flake.nix | 117 +++++++++++++++------------ 4 files changed, 122 insertions(+), 51 deletions(-) create mode 100644 .github/depedabot.yaml create mode 100644 .github/workflows/flake-build.yaml create mode 100644 .github/workflows/update-flakes.yaml diff --git a/.github/depedabot.yaml b/.github/depedabot.yaml new file mode 100644 index 0000000..1230149 --- /dev/null +++ b/.github/depedabot.yaml @@ -0,0 +1,6 @@ +version: 2 +updates: + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "daily" diff --git a/.github/workflows/flake-build.yaml b/.github/workflows/flake-build.yaml new file mode 100644 index 0000000..cf83fb2 --- /dev/null +++ b/.github/workflows/flake-build.yaml @@ -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 + diff --git a/.github/workflows/update-flakes.yaml b/.github/workflows/update-flakes.yaml new file mode 100644 index 0000000..a22cdf6 --- /dev/null +++ b/.github/workflows/update-flakes.yaml @@ -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 }} diff --git a/flake.nix b/flake.nix index 5abf746..d42e306 100644 --- a/flake.nix +++ b/flake.nix @@ -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; + }; + }); }