nanoc compile: Do not build frontend if nothing has changed

So, using nanoc live or nanoc compile, frontend should not be built from scratch if we only edit Markdown files. It shouldn't take two minutes to preview a Markdown change. I'm not sure there's a way to determine that, but it would be nice to have.

We define out own custom nanoc frontend command that is used in a postprocess when building the site.

I tried to skip the frontend command step by defining the following in Rules

 postprocess do
   next if ENV['SKIP_FRONTEND'] == 'true'
   raise "Failed to copy GitLab fonts. Run 'yarn install' and try again." unless system('make add-gitlab-fonts')
   raise "postprocessing error" unless system('nanoc frontend')
 end

and then run Nanoc:

SKIP_FRONTEND=true bundle exec nanoc live

For this to work, you have to build frontend at least once, so the following would do it:

bundle exec nanoc frontend

The thing is that the JS files get deleted for some reason. Is this Nanoc cleaning things up? Not sure where that comes from:

      delete  /home/axil/devel/gitlab/gdk/gitlab-docs/public/assets/images/icons.svg
      delete  /home/axil/devel/gitlab/gdk/gitlab-docs/public/assets/javascripts/lunr.min.js
      delete  /home/axil/devel/gitlab/gdk/gitlab-docs/public/assets/javascripts/vendor/mermaid.min.js
      delete  /home/axil/devel/gitlab/gdk/gitlab-docs/public/assets/javascripts/vendor/mermaid.min.js.map
      delete  /home/axil/devel/gitlab/gdk/gitlab-docs/public/frontend/search/docsearch.css
      delete  /home/axil/devel/gitlab/gdk/gitlab-docs/public/frontend/search/instantsearch.css
      delete  /home/axil/devel/gitlab/gdk/gitlab-docs/public/frontend/shared/global_imports.css
      delete  /home/axil/devel/gitlab/gdk/gitlab-docs/public/frontend/shared/index.css.map
      delete  /home/axil/devel/gitlab/gdk/gitlab-docs/public/frontend/shared/utility_classes.css.map
      delete  /home/axil/devel/gitlab/gdk/gitlab-docs/public/assets/javascripts/vendor
      update  [0.29s]  public/ee/administration/object_storage.html
Edited by Achilleas Pipinellis