Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
e3809c4
some cleanup before summaries
reeceappling Mar 13, 2026
a12df53
Update client info. Add a couple I missed earlier
reeceappling Mar 14, 2026
76e324d
fix projects
reeceappling Mar 14, 2026
e35e2ca
fix subject matters on new projects
reeceappling Mar 14, 2026
4f6435f
fix new platforms
reeceappling Mar 14, 2026
da05851
fix another subject matter on a platform
reeceappling Mar 14, 2026
1739a97
add Teams to runners because they report back to it on failure
reeceappling Mar 14, 2026
f133cdb
now jamf
reeceappling Mar 14, 2026
4ebefde
should actually run this time. Fixed missing subject matter for spring
reeceappling Mar 14, 2026
442f23f
api tags in places
reeceappling Mar 14, 2026
7bb7ef0
add force deploy tag
reeceappling Mar 14, 2026
4003454
make link referencing easier
reeceappling Mar 14, 2026
4e4c1a1
added raster render, and a lookup function for already-created things
reeceappling Mar 14, 2026
5d91866
added another project
reeceappling Mar 14, 2026
30c686e
finish adding to client
reeceappling Mar 14, 2026
37ab873
last client links for now
reeceappling Mar 14, 2026
5b560ca
should be good for now
reeceappling Mar 14, 2026
ff2be2f
try cplusplus instead of cpp
reeceappling Mar 14, 2026
26c7aa2
a comment
reeceappling Mar 14, 2026
9db00c6
fix tech tags
reeceappling Mar 14, 2026
943a307
EOF
reeceappling Mar 14, 2026
7a01376
Route53 in one spot
reeceappling Mar 14, 2026
d862702
a little bit of cleanup
reeceappling Mar 14, 2026
b8d37bb
retry cicd sm linking
reeceappling Mar 14, 2026
55cad5e
revert CICD
reeceappling Mar 14, 2026
7e94bde
some quick fixes
reeceappling Mar 14, 2026
4e1a036
disable read times
reeceappling Mar 14, 2026
587c6a6
remove publish dates from directory views
reeceappling Mar 14, 2026
4394ba3
disable dates at the top of pages
reeceappling Mar 14, 2026
38fa797
Fix an import
reeceappling Mar 14, 2026
a7f3c08
leave a comment on what was removed
reeceappling Mar 14, 2026
71ce522
say file in date area to keep formatting stable
reeceappling Mar 14, 2026
58caaab
project tags
reeceappling Mar 14, 2026
ecacb8b
fix metadata import
reeceappling Mar 14, 2026
881718d
More links in footer
reeceappling Mar 14, 2026
8ebaf6b
fix
reeceappling Mar 14, 2026
e09b8e7
fix project tags
reeceappling Mar 14, 2026
0d15850
fix formatting on client-company area of projects
reeceappling Mar 14, 2026
6d91fc0
add projects to positions
reeceappling Mar 14, 2026
62888b9
TODOS on positions
reeceappling Mar 14, 2026
e857745
Add resume file
reeceappling Mar 15, 2026
3804b03
Rename resume file and move to static
reeceappling Mar 15, 2026
58c1895
Update resume link to point to new PDF location
reeceappling Mar 15, 2026
49505c6
Add tags to several technology entries
reeceappling Mar 16, 2026
494b310
lost of changes. Probably wont deploy properly
reeceappling Mar 22, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 38 additions & 4 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
name: Build and Deploy
run-name: ${{ github.ref_name }} - "${{ github.event.head_commit.message }}"
on:
# TODO: other environments?
pull_request:
paths:
- 'generator/**'
Expand Down Expand Up @@ -83,6 +82,7 @@ jobs:
with:
sparse-checkout: |
quartzModified
scripts
- name: Clone Quartz 4
run: git clone https://github.com/jackyzha0/quartz.git
- uses: actions/setup-node@v4
Expand Down Expand Up @@ -126,13 +126,45 @@ jobs:
compression-level: 6
overwrite: true
include-hidden-files: false

# clean-bucket:
# needs: [build-quartz, generate-markdown]
# if: |
# contains(github.event.pull_request.labels.*.name, 'clean bucket')
# && always() && !cancelled()
# && (needs.generate-markdown.result == 'success')
# && needs.build-quartz.result == 'success'
# runs-on: ubuntu-latest
# permissions:
# id-token: write
# contents: read
# actions: write
# steps:
# # - uses: actions/checkout@v4
# # with:
# # sparse-checkout: |
# # terraform
# # static
# # - name: Setup Terraform
# # uses: hashicorp/setup-terraform@v3
# # with:
# # terraform_version: "1.14.6"
# - name: Configure AWS Credentials
# uses: aws-actions/configure-aws-credentials@v6.0.0
# with:
# role-to-assume: ${{ secrets.AWS_RUNNER_ROLE }}
# aws-region: ${{ env.AWS_REGION }}
# role-session-name: reeceSubdomainBucketCleanup
# # TODO: ensure this does not mess up the terraform!
# - name: clean out s3 bucket # Do not do this often because it is more expensive
# run: aws s3 rm s3://${{ env.TF_VAR_subdomain }}.${{ env.TF_VAR_domain }} --recursive
deploy:
needs: [build-quartz, generate-markdown]
if: |
always() && !cancelled()
(github.ref == 'refs/heads/main' || contains(github.event.pull_request.labels.*.name, 'force deploy'))
&& always() && !cancelled()
&& (needs.generate-markdown.result == 'success')
&& needs.build-quartz.result == 'success'
# && (needs.clean-bucket.result == 'success' || needs.clean-bucket.result == 'skipped')
runs-on: ubuntu-latest
permissions:
id-token: write
Expand Down Expand Up @@ -167,13 +199,15 @@ jobs:
mv -f static/* terraform/public/static/
fi
fi
# TODO: ONLY REPLACE FILES THAT HAVE CHANGED!
- name: Change file timestamps
run: go run scripts/changeTimestamps/... -path=quartz/public -date=03-22-2026 # TODO: ensure works correctly
- name: initialize terraform
run: terraform init -backend-config='bucket=${{ vars.TERRAFORM_STATE_BUCKET }}' -backend-config='region=${{ env.AWS_REGION }}'
working-directory: terraform
- name: plan terraform
run: terraform plan -var-file='deploy.tfvars' -var 'cloudflare_api_token=${{secrets.CLOUDFLARE_API_TOKEN}}' -var 'cloudflare_zone_id=${{secrets.CLOUDFLARE_ZONE_ID}}' -var 'aws_region=${{env.AWS_REGION}}' -out=plan.tf
working-directory: terraform
# TODO: ensure changed fileNames actually delete the old files! (should but unsure with terraform resources on s3 objects specifically)
- name: apply terraform
run: terraform apply -auto-approve plan.tf
working-directory: terraform
Expand Down
21 changes: 19 additions & 2 deletions generate.sh
Original file line number Diff line number Diff line change
@@ -1,2 +1,19 @@
chmod -R 777 ./quartz
go run ./generator # TODO: delete file if unused
# Execute commands in a subshell so that the final directory is the initial
(
current_dir_name=$(basename "$PWD")
case "$current_dir_name" in
"CV")
echo "working from CV directory"
;;
"scripts")
echo "working from scripts directory"
cd ../ || exit 1
;;
*)
echo "unhandled working directory: $current_dir_name"
exit 1
;;
esac
chmod -R 777 ./quartz
go run ./generator
)
36 changes: 36 additions & 0 deletions generator/aliases.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
package main

import "strings"

var aliases = map[string]linkableAlias{} // Map of link to link

func initAliases() {
newLinkableAlias("IaC", smIAC) // TODO: ADD TAGS?
newLinkableAlias("CiCd", smCiCd)
newLinkableAlias("CI/CD", smCiCd) // TODO: NOT WORKING
newLinkableAlias("k8s", techs["Kubernetes"]) // TODO: ok?
newLinkableAlias("KMS", cloudServices["Key Management Service"]) // TODO: ok?
newLinkableAlias("ASM", langs["Assembly"]) // TODO: ok?
newLinkableAlias("WebAssembly", langs["WASM"]) // TODO: ok?
}
func newLinkableAlias(name string, linkTo Linkable) {
out := linkableAlias{name: name, finalLink: linkTo}
aliases[name] = out
addLinkable(strings.ToLower(name), out)
}

type linkableAlias struct {
name string
finalLink Linkable
}

func (pg linkableAlias) Title() string {
return pg.name
}

func (pg linkableAlias) Dst() string { // TODO: ptr?
return pg.finalLink.Dst()
}
func (pg linkableAlias) EntryType() string {
return pg.name
}
3 changes: 3 additions & 0 deletions generator/blogPost.go
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,9 @@ func (post BlogPost) Bytes() []byte {
func (post BlogPost) Link() string {
return fmt.Sprintf(`[%s](blog/%s)`, post.Title, withoutSpaces(post.Title))
}
func (pg BlogPost) Dst() string {
return dstFor("blog", withoutSpaces(pg.Title))
}

const blogPostDir = "blogPosts/"

Expand Down
21 changes: 19 additions & 2 deletions generator/cache.go
Original file line number Diff line number Diff line change
@@ -1,17 +1,33 @@
package main

import "strings"

var caches = map[string]*CachePage{}

type CachePage struct {
Name string
*tracked
}

func (pg *CachePage) Link() string {
func Link(linkable Linkable) string {
return linkFor(linkable.Title(), linkable.Dst())
}

func (pg *CachePage) Dst() string {
if pg == nil {
return "NO_LINK"
}
return linkFor(pg.Name, "cv", "cache", withoutSpaces(pg.Name))
return dstFor("cv", "cache", withoutSpaces(pg.Name))
}

func (pg *CachePage) Title() string {
if pg == nil {
return "NO_TITLE"
}
return pg.Name
}
func dstFor(elems ...string) string {
return strings.Join(elems, "/")
}
func (pg *CachePage) EntryType() string {
return "Cache"
Expand All @@ -23,5 +39,6 @@ func NewCache(name string) *CachePage {
tracked: newTracked(),
}
caches[name] = out
addLinkable(strings.ToLower(name), out)
return out
}
Loading
Loading