summaryrefslogtreecommitdiff
path: root/modules/flake/githubWorkflow.nix
diff options
context:
space:
mode:
Diffstat (limited to 'modules/flake/githubWorkflow.nix')
-rw-r--r--modules/flake/githubWorkflow.nix114
1 files changed, 0 insertions, 114 deletions
diff --git a/modules/flake/githubWorkflow.nix b/modules/flake/githubWorkflow.nix
deleted file mode 100644
index 923682d..0000000
--- a/modules/flake/githubWorkflow.nix
+++ /dev/null
@@ -1,114 +0,0 @@
-workflowLib': {
- config,
- lib,
- self,
- ...
-}: let
- cfg = config.githubWorkflowGenerator;
-
- inherit
- (builtins)
- attrNames
- filter
- ;
-
- inherit
- (lib)
- elem
- getAttrs
- literalExpression
- mapAttrsToList
- mdDoc
- mkIf
- mkOption
- types
- ;
-
- workflowLib = workflowLib' (
- {inherit self;}
- // mkIf (cfg.platforms != {}) {
- inherit (cfg) platforms;
- }
- );
-
- supportedOutputs = [
- "apps"
- "checks"
- "devShells"
- "darwinConfigurations"
- "homeConfigurations"
- "nixosConfigurations"
- "packages"
- ];
-
- platformMap = {
- options = {
- arch = mkOption {
- description = mdDoc "the architecture of a system";
- type = types.str;
- default = null;
- example = literalExpression "x86_64";
- };
-
- os = mkOption {
- description = mdDoc "the name of an os supported by github runners";
- type = types.str;
- default = null;
- example = literalExpression "ubuntu-latest";
- };
- };
- };
-
- overrides = {
- options = {
- systems = mkOption {
- description = mdDoc "list of systems to build an output for";
- type = types.listOf types.str;
- default = builtins.attrNames cfg.platforms;
- };
- };
- };
-in {
- options = {
- githubWorkflowGenerator = {
- outputs = mkOption {
- description = mdDoc "outputs to include in workflow";
- type = types.listOf types.str;
- default = filter (output: elem output supportedOutputs) (attrNames self);
- };
-
- platforms = mkOption {
- description = mdDoc ''
- an attrset that can map a nix system to an architecture and os supported by github
- '';
- type = types.attrsOf (types.submodule platformMap);
- default = {};
- };
-
- overrides = mkOption {
- description = mdDoc "overrides for mkMatrix args";
- type = types.attrsOf (types.submodule overrides);
- default = {};
- example = literalExpression ''
- {
- githubWorkflowGenerator.overrides = {
- checks.systems = [ "x86_64-linux" ];
- };
- }
- '';
- };
- };
- };
-
- config.flake = {
- githubWorkflow = {
- matrix.include = lib.concatLists (
- mapAttrsToList (
- output: _:
- workflowLib.mkMatrix ({inherit output;} // cfg.overrides.${output} or {})
- )
- (getAttrs cfg.outputs self)
- );
- };
- };
-}