Allow configurable BRIEFCASE env var for CI
These were hard-coded as $HOME/BRIEFCASE, which won't work in CI, since CI runs as the user buildkite-agent-socrates, whose $HOME directory doesn't exist.
This commit is contained in:
		
							parent
							
								
									8f46684c23
								
							
						
					
					
						commit
						e166e74c2c
					
				
					 2 changed files with 55 additions and 38 deletions
				
			
		|  | @ -1,16 +1,14 @@ | |||
| { briefcase, pkgs, ... }: | ||||
| 
 | ||||
| let | ||||
|   elispLintSrc = builtins.fetchGit { | ||||
|   inherit (builtins) fetchGit path toJSON; | ||||
|   inherit (briefcase.emacs) initEl runScript; | ||||
| 
 | ||||
|   elispLintSrc = fetchGit { | ||||
|     url = "https://github.com/gonewest818/elisp-lint"; | ||||
|     rev = "2b645266be8010a6a49c6d0ebf6a3ad5bd290ff4"; | ||||
|   }; | ||||
| 
 | ||||
|   scriptEl = builtins.path { | ||||
|     path = ./script.el; | ||||
|     name = "script.el"; | ||||
|   }; | ||||
| 
 | ||||
|   pipeline.steps = [ | ||||
|     { | ||||
|       key = "lint-secrets"; | ||||
|  | @ -27,16 +25,27 @@ let | |||
|     } | ||||
|     { | ||||
|       key = "init-emacs"; | ||||
|       command = '' | ||||
|         ${briefcase.emacs.runScript scriptEl} ${briefcase.emacs.initEl} | ||||
|       ''; | ||||
|       command = let | ||||
|         scriptEl = path { | ||||
|           path = ./script.el; | ||||
|           name = "script.el"; | ||||
|         }; | ||||
|         runScriptEl = runScript { | ||||
|           script = scriptEl; | ||||
|           briefcasePath = "$(pwd)"; | ||||
|         }; | ||||
|       in "${runScriptEl} ${initEl}"; | ||||
|       label = ":gnu: initialize Emacs"; | ||||
|       depends_on = "build-briefcase"; | ||||
|     } | ||||
|     { | ||||
|       key = "lint-emacs"; | ||||
|       command = '' | ||||
|         ${briefcase.emacs.nixos}/bin/wpcarros-emacs \ | ||||
|       command = let | ||||
|         nixosEmacs = briefcase.emacs.nixos { | ||||
|           briefcasePath = "$(pwd)"; | ||||
|         }; | ||||
|       in '' | ||||
|         ${nixosEmacs}/bin/wpcarros-emacs \ | ||||
|           --quick \ | ||||
|           --batch \ | ||||
|           --load ${elispLintSrc}/elisp-lint.el \ | ||||
|  | @ -61,4 +70,4 @@ let | |||
|       depends_on = "build-briefcase"; | ||||
|     } | ||||
|   ]; | ||||
| in pkgs.writeText "pipeline.yaml" (builtins.toJSON pipeline) | ||||
| in pkgs.writeText "pipeline.yaml" (toJSON pipeline) | ||||
|  |  | |||
|  | @ -134,9 +134,10 @@ let | |||
|     name = "init.el"; | ||||
|   }; | ||||
| 
 | ||||
|   withEmacsPath = emacsBin: pkgs.writeShellScriptBin "wpcarros-emacs" '' | ||||
|   withEmacsPath = { emacsBin, briefcasePath }: | ||||
|     pkgs.writeShellScriptBin "wpcarros-emacs" '' | ||||
|       export XMODIFIERS=emacs | ||||
|     export BRIEFCASE=$HOME/briefcase | ||||
|       export BRIEFCASE=${briefcasePath} | ||||
|       export PATH="${emacsBinPath}:$PATH" | ||||
|       export EMACSLOADPATH="${wpcDir}:${vendorDir}:${wpcarrosEmacs.deps}/share/emacs/site-lisp:" | ||||
|       exec ${emacsBin} \ | ||||
|  | @ -151,8 +152,9 @@ in { | |||
|   inherit initEl; | ||||
| 
 | ||||
|   # I need to start my Emacs from CI without the call to `--load ${initEl}`. | ||||
|   runScript = script: pkgs.writeShellScript "run-emacs-script" '' | ||||
|     export BRIEFCASE=$HOME/briefcase | ||||
|   runScript = { script, briefcasePath }: | ||||
|     pkgs.writeShellScript "run-emacs-script" '' | ||||
|       export BRIEFCASE=${briefcasePath} | ||||
|       export PATH="${emacsBinPath}:$PATH" | ||||
|       export EMACSLOADPATH="${wpcDir}:${vendorDir}:${wpcarrosEmacs.deps}/share/emacs/site-lisp" | ||||
|       exec ${wpcarrosEmacs}/bin/emacs \ | ||||
|  | @ -165,9 +167,15 @@ in { | |||
| 
 | ||||
|   # Use `nix-env -f '<briefcase>' emacs.glinux` to install `wpcarro-emacs` on | ||||
|   # gLinux machines. This will ensure that X and GL linkage behaves as expected. | ||||
|   glinux = withEmacsPath "/usr/bin/google-emacs"; | ||||
|   glinux = { briefcasePath ? "$HOME/briefcase" }: withEmacsPath { | ||||
|     inherit briefcasePath; | ||||
|     emacsBin = "/usr/bin/google-emacs"; | ||||
|   }; | ||||
| 
 | ||||
|   # Use `nix-env -f '<briefcase>' emacs.nixos` to install `wpcarros-emacs` on | ||||
|   # NixOS machines. | ||||
|   nixos = withEmacsPath "${wpcarrosEmacs}/bin/emacs"; | ||||
|   nixos = { briefcasePath ? "$HOME/briefcase" }: withEmacsPath { | ||||
|     inherit briefcasePath; | ||||
|     emacsBin = "${wpcarrosEmacs}/bin/emacs"; | ||||
|   }; | ||||
| } | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue