From 4b8998c9c8ff352b0bed96f70e4c2eaa162bf4b9 Mon Sep 17 00:00:00 2001 From: William Carroll Date: Fri, 28 Jan 2022 11:55:27 -0800 Subject: feat(wpcarro/emacs): Test that my Emacs can initialize ...without warnings, errors. This was previously a step in my buildkite instance, but I'm no longer supporting that (in favor of the TVL one). Change-Id: Ifed39aef248b21a1eb5a6c9d8427ebe6996abc3a Reviewed-on: https://cl.tvl.fyi/c/depot/+/5103 Tested-by: BuildkiteCI Reviewed-by: wpcarro Autosubmit: wpcarro --- users/wpcarro/ci/pipelines/post-receive.nix | 15 ---------- users/wpcarro/ci/pipelines/script.el | 44 ----------------------------- users/wpcarro/emacs/ci.el | 44 +++++++++++++++++++++++++++++ users/wpcarro/emacs/default.nix | 37 +++++++++++++++--------- 4 files changed, 67 insertions(+), 73 deletions(-) delete mode 100644 users/wpcarro/ci/pipelines/script.el create mode 100644 users/wpcarro/emacs/ci.el diff --git a/users/wpcarro/ci/pipelines/post-receive.nix b/users/wpcarro/ci/pipelines/post-receive.nix index b69ee28af3..cb7501bdea 100644 --- a/users/wpcarro/ci/pipelines/post-receive.nix +++ b/users/wpcarro/ci/pipelines/post-receive.nix @@ -2,7 +2,6 @@ let inherit (builtins) path toJSON; - inherit (depot.users.wpcarro.emacs) initEl runScript; pipeline.steps = [ { @@ -10,19 +9,5 @@ let command = "${pkgs.git-secrets}/bin/git-secrets --scan-history"; label = ":broom: lint secrets"; } - { - key = "init-emacs"; - command = let - scriptEl = path { - path = ./script.el; - name = "script.el"; - }; - runScriptEl = runScript { - script = scriptEl; - }; - in "${runScriptEl} ${initEl}"; - label = ":gnu: initialize Emacs"; - depends_on = "lint-secrets"; - } ]; in pkgs.writeText "pipeline.yaml" (toJSON pipeline) diff --git a/users/wpcarro/ci/pipelines/script.el b/users/wpcarro/ci/pipelines/script.el deleted file mode 100644 index da079b64ba..0000000000 --- a/users/wpcarro/ci/pipelines/script.el +++ /dev/null @@ -1,44 +0,0 @@ -;; This script initializes Emacs and exits with either a zero or non-zero status -;; depending on whether or not Emacs initialized without logging warnings or -;; encountering errors. -;; -;; This script reads the location of init.el as the last argument in `argv'. - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; Dependencies -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - -(require 'prelude) -(require 'f) -(require 'dash) -(require 'buffer) - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; Script -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - -(defvar init-el-path (-last-item argv) - "Path to the init.el file that this script attempts to load.") - -(prelude-assert (f-exists? init-el-path)) - -(condition-case err - (load init-el-path) - (error - (message "Encountered an error while attempting to load init.el: %s" err) - (kill-emacs 1))) - -(when (buffer-exists? "*Errors*") - (progn - (with-current-buffer "*Errors*" - (message "Encountered errors in *Errors* buffer: %s" (buffer-string))) - (kill-emacs 1))) - -(when (buffer-exists? "*Warnings*") - (progn - (with-current-buffer "*Warnings*" - (message "Encountered warnings in *Warnings* buffer: %s" (buffer-string))) - (kill-emacs 1))) - -(message "Successfully init'd Emacs without encountering errors or warnings!") -(kill-emacs 0) diff --git a/users/wpcarro/emacs/ci.el b/users/wpcarro/emacs/ci.el new file mode 100644 index 0000000000..da079b64ba --- /dev/null +++ b/users/wpcarro/emacs/ci.el @@ -0,0 +1,44 @@ +;; This script initializes Emacs and exits with either a zero or non-zero status +;; depending on whether or not Emacs initialized without logging warnings or +;; encountering errors. +;; +;; This script reads the location of init.el as the last argument in `argv'. + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Dependencies +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +(require 'prelude) +(require 'f) +(require 'dash) +(require 'buffer) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Script +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +(defvar init-el-path (-last-item argv) + "Path to the init.el file that this script attempts to load.") + +(prelude-assert (f-exists? init-el-path)) + +(condition-case err + (load init-el-path) + (error + (message "Encountered an error while attempting to load init.el: %s" err) + (kill-emacs 1))) + +(when (buffer-exists? "*Errors*") + (progn + (with-current-buffer "*Errors*" + (message "Encountered errors in *Errors* buffer: %s" (buffer-string))) + (kill-emacs 1))) + +(when (buffer-exists? "*Warnings*") + (progn + (with-current-buffer "*Warnings*" + (message "Encountered warnings in *Warnings* buffer: %s" (buffer-string))) + (kill-emacs 1))) + +(message "Successfully init'd Emacs without encountering errors or warnings!") +(kill-emacs 0) diff --git a/users/wpcarro/emacs/default.nix b/users/wpcarro/emacs/default.nix index 20ef805dba..b8c97ac176 100644 --- a/users/wpcarro/emacs/default.nix +++ b/users/wpcarro/emacs/default.nix @@ -165,25 +165,34 @@ let --load ${initEl} \ "$@" ''; -in { - inherit initEl withEmacsPath; - # I need to start my Emacs from CI without the call to `--load ${initEl}`. - runScript = { script }: - writeShellScript "run-emacs-script" '' - export PATH="${emacsBinPath}:$PATH" - export EMACSLOADPATH="${wpcDir}:${vendorDir}:${wpcarrosEmacs.deps}/share/emacs/site-lisp" - exec ${wpcarrosEmacs}/bin/emacs \ - --no-site-file \ - --no-site-lisp \ - --no-init-file \ - --script ${script} \ - "$@" + # I need this to start my Emacs from CI without the call to + # `--load ${initEl}`. + runScript = script: writeShellScript "run-emacs-script" '' + export PATH="${emacsBinPath}:$PATH" + export EMACSLOADPATH="${loadPath}" + exec ${wpcarrosEmacs}/bin/emacs \ + --no-site-file \ + --no-site-lisp \ + --no-init-file \ + --script ${script} \ + "$@" ''; +in { + inherit withEmacsPath; + nixos = withEmacsPath { emacsBin = "${wpcarrosEmacs}/bin/emacs"; }; - meta.targets = [ "nixos" ]; + meta = { + targets = [ "nixos" ]; + extraSteps = [ + { + label = ":gnu: initialize Emacs"; + command = "${runScript ./ci.el} ${./.emacs.d/init.el}"; + } + ]; + }; } -- cgit 1.4.1