Gráfico de commits

249 Commits

Autor SHA1 Mensagem Data
Collin J. Doering d194575f06
infra/manifest.scm: Remove unused template provider 2023-12-26 21:07:18 -05:00
Collin J. Doering 2ebb239e8c
README.org: Add section 'Verifying a Release' 2023-12-26 21:06:50 -05:00
Collin J. Doering e4032ba6b3
site: Vendor MathJax from guix, removing dependency on CDN
* .gitignore: Ignore lib/MathJax symlink.
* README.org: Variety of changes, most notably using the README.org file as a literate source
file, which generates various development scripts and a Makefile. One such script is the
vendoring script, which is used to setup vendor symlinks.
* bootstrap.sh: Run emacs to tangle the literate README.org file, after which, run setup
vendored dependency links.
* guix.scm: Depend on js-mathjax, and vendor its built files into lib/MathJax before building
the site.
* pages/index.markdown: Remove stale reference to jquery-address.
* src/site.hs: Adjust hakyll rules to include MathJax from its now locally vendored location.
Additionally, do a tiny bit of rule tidying.
* templates/default.html: Remove stale reference to appcache. Remove reference to MathJax via
cdn and reference the now vendored variant.
2023-12-26 18:01:14 -05:00
Collin J. Doering bad2d07ce9
Improve development environment setup and documentation
* src/site.hs (siteRules): Refactor site building Rules into a new variable allowing for
reuse. Remove duplicate rules ()
(myConfig): Set deployCommand to something temporary.
(_devWatch): Entrypoint mean for use in development; it rebuilds the site builder, then
rebuilds the site.

* site (Removed file): Removed as it is no longer necessary. If additional cli functionality
is required, this can be done directly in haskell.

* guix.scm: Symlink 'site' now that it is no longer provided as a script.
(setenv): setenv only applies to the first (non-cached) run of `guix shell ...`,
because of this, remove setting PS1.
(native-inputs): Include development environment dependencies

* channels.scm (channel): Update rekahsoft-guix channel (noop, but originally updated while
looking at using overmind).

* bootstrap.sh: A script that generates various development scripts from the projects
README.org file.

* README.org: Cleanup and minor restructuring.
(Repository Structure): New (incomplete) section
(Prerequisites): New section
(Quick Start): New section
(Hakyll Site Commands): New section, with subheadings for various hakyll sub-commands.
(Makefile): New section; generates a makefile useful for development

* .gitignore: Ignore files generated by ./bootstrap.sh

* .ghci: ghci configuration file for hakyll development.

* .envrc: direnv configuration that loads a development environment for those who have
allowed it
2023-06-03 00:10:33 -04:00
Collin J. Doering fa89f9f158
Fix broken links (discovered via 'site check') 2023-05-28 22:04:47 -04:00
Collin J. Doering ce9d1fe54c
Update guix channels; make necessary adjustments (new ghc & clay)
* channels.scm (channel): Update all channels (guix and rekahsoft-guix)

* blog-rekahsoft-ca.cabal (cabal-version): Adjust base version now that ghc version 9.2.5 is in use; adjust clay to match ghc-clay package provided by updated guix channels.

* clay/*.hs: Adjust clay sources for api changes (swapping of function parameter order for
functions provided by the 'Clay.Border' module)
2023-05-20 22:32:21 -04:00
Collin J. Doering c51be05eb4
infra/main.tf: Correct typo in b9bee14 2023-05-04 23:00:14 -04:00
Collin J. Doering b9bee14f30
infra/main.tf: Adjust deployment script to account for unchange site file timestamps
* infra/main.tf: See 93dfdb0 for more detail regarding the deployment issue. In addition,
have the deployment script correctly fail if any command does not succeed.
2023-05-04 22:55:55 -04:00
Collin J. Doering b11aa217af
infra/main.tf: Correct typo in 93dfdb0 2023-05-02 22:01:23 -04:00
Collin J. Doering 93dfdb08fd
infra/main.tf: Use --size-only option until 'aws s3 sync' can use checksums
* infra/main.tf: This avoid a deployment issue after switching to guix for builds. Namely,
after to switching to guix to build this project, all built site files will have a datetime
of Unix epoch 0, which will then never be updated when running 'aws s3 sync ...' because the
files in the bucket were deployed before the site was built using guix, so they have newer
timestamps. Using the '--size-only' option improves this situation, in that files that are
modified and have a different size then the original will be updated, but files that are
changed but, by chance have the same size, will not be updated. Ironically, the update that I
discovered this on will end up resulting the same file sizes (changing the copyright date).
2023-05-02 19:14:36 -04:00
Collin J. Doering cee5d48466
guix.scm: Reuse %srcdir instead of calling getcwd 2023-04-30 21:16:37 -04:00
Collin J. Doering 143b38c89c
TODO.org: Remove TODOs 2023-04-30 17:21:00 -04:00
Collin J. Doering f16712cc38
Update copyright year in a variety of files 2023-04-30 13:24:05 -04:00
Collin J. Doering 54c48b55b8
infra: Remove unused template provider 2022-10-16 21:24:00 -04:00
Collin J. Doering d02d329bbc
TODO.org: Move Archive section to the top and add a new TODO item 2021-12-18 21:12:31 -05:00
Collin J. Doering 6b1129aa1a
TODO.org: Mark completed, but forgotten tasks and create Archive heading 2021-12-18 20:44:29 -05:00
Collin J. Doering 9171aa88ad
Replace broken piwiki analytics with self-hosted plausible
* templates/partials/analytics.html: Upon a client load of the website, determine which site
they are viewing (dev, staging, production) and setup plausible analytics appropriately.

* templates/default.html: Remove non-functional piwiki script reference and replace with a
reference to the new partial template for analytics

* src/site.hs (main): Remove remnant of application cache support

* js/default.js: Remove unneeded analytics code specific to piwiki. No additions were made here in support of plausible

* TODO.org: Mark associated TODO item DONE
2021-12-18 20:37:59 -05:00
Collin J. Doering 913c2f0e67
.drone/ci.libsonnet: Add and renamed methods relocated from .drone.jsonnet: guix.pipeline, guix.step, awsDeployStep
* .drone.yml: Update file after updates to .drone.jsonnet

* .drone.jsonnet: Relocate guix_pipeline, guix_step, and deployStep to .drone/ci.libsonnet
library. Adjust existing function names to match new names in library.

Explicitly pass PLAN environment variable to ci.awsDeployStep for plan and apply stages
2021-12-11 13:19:55 -05:00
Collin J. Doering eaf41637ab
.gitignore: Do not ignore hidden files 2021-12-11 12:53:30 -05:00
Collin J. Doering 284abdf916
.drone.jsonnet: Move ci local to its own library in .drone/ci.libsonnet 2021-12-11 12:53:01 -05:00
Collin J. Doering faad56813b
.drone.jsonnet: Remove setting of root user in /etc/passwd
Adding the root user to /etc/passwd was only required when attempting to run guix shell
`-C|--container' commands, however guix shell containers will not work without privileged
docker, so when running via ci, we depend on the provided minimal guix container (build with
guix via 'guix pack -f docker ...').
2021-12-10 22:32:42 -05:00
Collin J. Doering 572f00a79a
README.org: Set drone ci badge to use the master branch 2021-12-09 23:18:41 -05:00
Collin J. Doering 4a1bbf41bf
.drone.jsonnet: Remove unnecessary comment 2021-12-09 23:18:20 -05:00
Collin J. Doering 1c5aeba23e
.dron.jsonnet: Reorganize jsonnet; no change to yaml output 2021-12-09 23:03:53 -05:00
Collin J. Doering 7fc316a171
README.org: Update drone status badge after repository move 2021-12-09 20:42:17 -05:00
Collin J. Doering b9ee2f8266
.drone.jsonnet: Addionally wait for pending status during promotion 2021-12-09 20:11:33 -05:00
Collin J. Doering 5c4138d4d4
.drone.jsonnet: Correct promoted pipeline status checking 2021-12-09 20:08:46 -05:00
Collin J. Doering 9b167b4d9d
.drone.jsonnet: Export DRONE_TOKEN so its available in subprocess 2021-12-09 19:37:02 -05:00
Collin J. Doering 880978c9a1
.drone.jsonnet: Use correct site build during ci
This makes the assumption that the guix store is available from all drone-ci nodes
2021-12-09 18:12:57 -05:00
Collin J. Doering f11fbdd3f4
infra/Makefile: Remove CI env var check for terraform workspace switching 2021-12-09 12:50:08 -05:00
Collin J. Doering ec708bcf29
Revert ".drone.jsonnet: TEST - why is the setup step not switching workspaces?"
This reverts commit 5d00301c86.
2021-12-09 12:49:52 -05:00
Collin J. Doering 5d00301c86
.drone.jsonnet: TEST - why is the setup step not switching workspaces? 2021-12-09 12:42:00 -05:00
Collin J. Doering b162752ce6
.drone.jsonnet: Do not use guix shell containerization as it fails within non-privileged docker 2021-12-09 12:17:43 -05:00
Collin J. Doering bc19c03d75
.drone.jsonnet: Fix issue specific to running guix shell/environment via drone-ci 2021-12-09 11:59:51 -05:00
Collin J. Doering 6a00da6970
.drone.jsonnet: Explicitly specify manifest to use for deploySteps 2021-12-09 10:42:47 -05:00
Collin J. Doering 920fe7d9f4
Enhance drone pipeline and switch to jsonnet based configuration
* .drone.yml: This is now a generated file, based on .drone.jsonnet

* .drone.jsonnet: Add jsonnet drone pipeline configuration to replace existing .drone.yml
file. Note, currently this is used to manually generate .drone.yml. I need to determine how
to handle jsonnet libraries effectively as drone's built in jsonnet support does not allow
for importing libraries. In addition to converting to jsonnet, the pipeline was enhanced with
promotion and deployment functionality that has not yet been tested.
2021-12-09 10:34:37 -05:00
Collin J. Doering 5c2f33456e
README.org: Write build and clean sections in development guide 2021-12-07 21:17:32 -05:00
Collin J. Doering 46d25cd912
Remove top-level manifest.scm as package in guix.scm is sufficient
* manifest.scm: Removed in favor of guix.scm and the blog-rekahsoft-ca package definition within it

* guix.scm: Add environment variable PS1 that was formally set by manifest.scm

* README.org (Start Development Environment): Update guix commands used now that there is no top-level manifest.scm
2021-12-07 21:17:29 -05:00
Collin J. Doering 1dae28b6f4
README.org: Improve grammar make README read more clearly 2021-12-07 00:28:45 -05:00
Collin J. Doering b1476560ec
.gitignore: Update terraform entries 2021-12-07 00:24:29 -05:00
Collin J. Doering 0b47b38f61
TODO.org: (Invalid page urls load as the home page): Add new TODO 2021-12-06 23:31:09 -05:00
Collin J. Doering 1e1ae99446
Use guix for managing the required deployment environment
* infra/variables.tf: Add new variable 'site_statis_files_dir'

	* infra/manifest.scm: Add guix manifest that captures all tools required for deploying this site. This currently includes terraform, in use terraform providers, as well as awscliv2  which is used directly from a null resource

	* infra/main.tf: Pin all provider version so they are available from the rekahsoft-guix channel
	Remove the need for the template provider. It is still included as these changes need to be applied to all environments before it can be removed.
	Remove TF-UPGRAGE-TODO's
	Use the new variable 'site_static_files_dir' for the location of the static site files to be deployed

	* channels.scm (channel): Add symlink to top-level channels file

	* infra/Makefile (SELECTED_WORKSPACE): Removed the dependency on terraform
	(clean): Add new PHONY target 'clean' which cleans up terraform temporary files
	(workspace): Add new PHONY target 'workspace which switches to user provided ENV

	* channels.scm (channel): Updated rekahsoft-guix channel

	* README.org (Features): Updated sections on deployment
2021-12-06 22:25:05 -05:00
Collin J. Doering ee09fc99b8
channels.scm: Update guix and rekahsoft-guix 2021-12-05 04:08:14 -05:00
Collin J. Doering 5ba926b5d2
.drone.yml: Remove --with-source option during ci builds 2021-12-01 23:38:33 -05:00
Collin J. Doering 4b18054324
guix.scm: Use git commit in version string 2021-12-01 23:36:59 -05:00
Collin J. Doering 29dc67c881
README.org: Move 'Known Issues' to TODO.org 2021-11-30 23:40:03 -05:00
Collin J. Doering dd6434b4ee
README.org: Update documentation now that site script is included in package 2021-11-30 23:40:00 -05:00
Collin J. Doering fd15b80b62
Use git source instead of tarball for blog-rekahsoft-ca package
* manifest.scm:
* guix.scm: Prefix global variables with '%'; use git source for blog-rekahsoft-ca package
2021-11-30 23:34:19 -05:00
Collin J. Doering ff1d13a670
src/site.hs: Fix compiler warnings about unused modules/redundant imports 2021-11-29 09:48:12 -05:00
Collin J. Doering e69f751011
Include site script in package and build site as another package output 2021-11-29 09:48:03 -05:00