Commit Graph

251 Commits

Author SHA1 Message Date
1e5ea8e220
drone-ci: Use guix-builder images instead of legacy guix image 2024-05-18 12:43:55 -04:00
9adc412a3c
Supply gpg public key via wkd
* files/collin-doering.gpg: Removed file.
* templates/partials/business-card.html: Adjusted gpg public key link to point at wkd address.
2024-05-18 10:59:23 -04:00
d194575f06
infra/manifest.scm: Remove unused template provider 2023-12-26 21:07:18 -05:00
2ebb239e8c
README.org: Add section 'Verifying a Release' 2023-12-26 21:06:50 -05:00
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
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
fa89f9f158
Fix broken links (discovered via 'site check') 2023-05-28 22:04:47 -04:00
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
c51be05eb4
infra/main.tf: Correct typo in b9bee14 2023-05-04 23:00:14 -04:00
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
b11aa217af
infra/main.tf: Correct typo in 93dfdb0 2023-05-02 22:01:23 -04:00
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
cee5d48466
guix.scm: Reuse %srcdir instead of calling getcwd 2023-04-30 21:16:37 -04:00
143b38c89c
TODO.org: Remove TODOs 2023-04-30 17:21:00 -04:00
f16712cc38
Update copyright year in a variety of files 2023-04-30 13:24:05 -04:00
54c48b55b8
infra: Remove unused template provider 2022-10-16 21:24:00 -04:00
d02d329bbc
TODO.org: Move Archive section to the top and add a new TODO item 2021-12-18 21:12:31 -05:00
6b1129aa1a
TODO.org: Mark completed, but forgotten tasks and create Archive heading 2021-12-18 20:44:29 -05:00
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
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
eaf41637ab
.gitignore: Do not ignore hidden files 2021-12-11 12:53:30 -05:00
284abdf916
.drone.jsonnet: Move ci local to its own library in .drone/ci.libsonnet 2021-12-11 12:53:01 -05:00
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
572f00a79a
README.org: Set drone ci badge to use the master branch 2021-12-09 23:18:41 -05:00
4a1bbf41bf
.drone.jsonnet: Remove unnecessary comment 2021-12-09 23:18:20 -05:00
1c5aeba23e
.dron.jsonnet: Reorganize jsonnet; no change to yaml output 2021-12-09 23:03:53 -05:00
7fc316a171
README.org: Update drone status badge after repository move 2021-12-09 20:42:17 -05:00
b9ee2f8266
.drone.jsonnet: Addionally wait for pending status during promotion 2021-12-09 20:11:33 -05:00
5c4138d4d4
.drone.jsonnet: Correct promoted pipeline status checking 2021-12-09 20:08:46 -05:00
9b167b4d9d
.drone.jsonnet: Export DRONE_TOKEN so its available in subprocess 2021-12-09 19:37:02 -05:00
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
f11fbdd3f4
infra/Makefile: Remove CI env var check for terraform workspace switching 2021-12-09 12:50:08 -05:00
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
5d00301c86
.drone.jsonnet: TEST - why is the setup step not switching workspaces? 2021-12-09 12:42:00 -05:00
b162752ce6
.drone.jsonnet: Do not use guix shell containerization as it fails within non-privileged docker 2021-12-09 12:17:43 -05:00
bc19c03d75
.drone.jsonnet: Fix issue specific to running guix shell/environment via drone-ci 2021-12-09 11:59:51 -05:00
6a00da6970
.drone.jsonnet: Explicitly specify manifest to use for deploySteps 2021-12-09 10:42:47 -05:00
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
5c2f33456e
README.org: Write build and clean sections in development guide 2021-12-07 21:17:32 -05:00
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
1dae28b6f4
README.org: Improve grammar make README read more clearly 2021-12-07 00:28:45 -05:00
b1476560ec
.gitignore: Update terraform entries 2021-12-07 00:24:29 -05:00
0b47b38f61
TODO.org: (Invalid page urls load as the home page): Add new TODO 2021-12-06 23:31:09 -05:00
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
ee09fc99b8
channels.scm: Update guix and rekahsoft-guix 2021-12-05 04:08:14 -05:00
5ba926b5d2
.drone.yml: Remove --with-source option during ci builds 2021-12-01 23:38:33 -05:00
4b18054324
guix.scm: Use git commit in version string 2021-12-01 23:36:59 -05:00
29dc67c881
README.org: Move 'Known Issues' to TODO.org 2021-11-30 23:40:03 -05:00
dd6434b4ee
README.org: Update documentation now that site script is included in package 2021-11-30 23:40:00 -05:00
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