* 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)
* 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.
* 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).
* 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
* .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
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 ...').
* .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.
* 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
* 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