-
-
Notifications
You must be signed in to change notification settings - Fork 225
Created a workflow for building binaries on release #662
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
Added workflow definition Added a proxy script to fix paths Added a script for colleting data-files assets Added section on prebuilt packages to the README
I think this is a great idea! Suggestions/questions:
|
Thank you, glad you like it. Here are some comments/answers:
|
Maybe getting it from the cabal file is more robust, since then this could even be used for non-tagged commits? (Pandoc gets it from the cabal file using sed, if I recall.)
Let's drop them for now; if people request it, we could consider changing.
My suggestion will require changes in both filestore and gitit (including documentation). |
Actually I changed my mind. Maybe it makes most sense to take the version from the release tag; if the commit is not tagged, we can fall back on the commit hash. That gives a nice visual distinction between actual releases and e.g. nightlies. |
Discussed before in jgm/gitit#662
I have been working on embedding default files into the binary and an issues cropped up that I am not sure how to solve: When exporting to ODT, the images etc are embedded as absolute URL's. When we embed these in the binary, they no longer have a path on the system. The question is, how should we link them with the export? Should we dump them somewhere on the system? |
One approach would be to add these to the MediaBag before calling the writer in the export. |
@JustusAdam do you want to create a separate issue concerning ODT export and images? (The request would be to embed the images when exporting.) I don't think this is a blocking issue for the release binary workflow. |
I forgot what the main action item here is: add an |
I see that I've already removed the data files from filestore.0.6.5. |
I'll see if I can add the needed flag to gitit. |
Looking into it some more, one complication for embedding the data files is that the string template functions we're using require a directory of templates (falling back to data). |
This PR adds a new workflow, which build the project and then packages the compiled binaries and other asset files into standalone archives that users can download and use immediately without the need to install the many libraries gitit depends on and works without having GHC installed.
The workflow only executes when a release is triggered and it creates and uploads tarballs for Linux (latest Ubuntu version available on github actions) and macOS and both with and without plugins respectively. For an example you can visit the releases section of my fork.
This of course does not cater to all users of gitit, but I think it will make it significantly easier for new users to try the software. In particular because gitit depends on pandoc, the build times for a first time build are insane. I think it took over 30 minutes on my modern machine
I've described the way this PR was created in more detail including my handling of
data-dir
style assets in this blogpost.