Titles for all pages, custom entrypoint with cache invalidator etag setup so site doesn't do bad things on redeploy
All checks were successful
Build and Test - Staging / determine_version (pull_request) Successful in 35s
Build and Test - Staging / build_and_push (pull_request) Successful in 2m26s
Build and Test - Staging / test (pull_request) Successful in 3s
Build and Test - Staging / deploy_staging (pull_request) Successful in 6s
All checks were successful
Build and Test - Staging / determine_version (pull_request) Successful in 35s
Build and Test - Staging / build_and_push (pull_request) Successful in 2m26s
Build and Test - Staging / test (pull_request) Successful in 3s
Build and Test - Staging / deploy_staging (pull_request) Successful in 6s
This commit is contained in:
@@ -26,4 +26,8 @@ COPY --from=build /app/dist /usr/share/nginx/html
|
|||||||
|
|
||||||
RUN chown -R nginx:nginx /usr/share/nginx/html
|
RUN chown -R nginx:nginx /usr/share/nginx/html
|
||||||
|
|
||||||
EXPOSE 80
|
COPY entrypoint.sh /entrypoint.sh
|
||||||
|
|
||||||
|
EXPOSE 80
|
||||||
|
|
||||||
|
ENTRYPOINT ["/entrypoint.sh"]
|
||||||
14
entrypoint.sh
Executable file
14
entrypoint.sh
Executable file
@@ -0,0 +1,14 @@
|
|||||||
|
#!/usr/bin/env sh
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# Generate a unique token per container launch
|
||||||
|
TOKEN="$(cat /proc/sys/kernel/random/uuid)" # or: TOKEN="$(date +%s%N)"
|
||||||
|
|
||||||
|
# Write it into a file NGINX will include
|
||||||
|
cat >/etc/nginx/conf.d/_release_token.conf <<EOF
|
||||||
|
# auto-generated at container start
|
||||||
|
set \$release_token "$TOKEN";
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# Then exec nginx
|
||||||
|
exec nginx -g 'daemon off;'
|
||||||
@@ -12,6 +12,12 @@ http {
|
|||||||
root /usr/share/nginx/html;
|
root /usr/share/nginx/html;
|
||||||
index index.html index.htm;
|
index index.html index.htm;
|
||||||
include /etc/nginx/mime.types;
|
include /etc/nginx/mime.types;
|
||||||
|
include /etc/nginx/conf.d/_release_token.conf;
|
||||||
|
|
||||||
|
etag off;
|
||||||
|
|
||||||
|
add_header ETag "\"W/$release_token\"" always;
|
||||||
|
add_header Cache-Control "max-age=0, must-revalidate" always;
|
||||||
|
|
||||||
gzip on;
|
gzip on;
|
||||||
gzip_min_length 1000;
|
gzip_min_length 1000;
|
||||||
|
|||||||
@@ -1,13 +0,0 @@
|
|||||||
---
|
|
||||||
import BaseLayout from '../layouts/BaseLayout.astro';
|
|
||||||
---
|
|
||||||
|
|
||||||
<BaseLayout>
|
|
||||||
<div>Email:
|
|
||||||
<a href="mailto:caperren@caperren.com">caperren@caperren.com</a>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
Phone:
|
|
||||||
<a href="tel:360-298-4396">360-298-4396</a>
|
|
||||||
</div>
|
|
||||||
</BaseLayout>
|
|
||||||
@@ -2,5 +2,5 @@
|
|||||||
import ExperienceLayout from "@layouts/ExperienceLayout.astro";
|
import ExperienceLayout from "@layouts/ExperienceLayout.astro";
|
||||||
---
|
---
|
||||||
|
|
||||||
<ExperienceLayout>
|
<ExperienceLayout title="CEOAS - LeConte Glacier Deployments">
|
||||||
</ExperienceLayout>
|
</ExperienceLayout>
|
||||||
@@ -2,5 +2,5 @@
|
|||||||
import ExperienceLayout from "@layouts/ExperienceLayout.astro";
|
import ExperienceLayout from "@layouts/ExperienceLayout.astro";
|
||||||
---
|
---
|
||||||
|
|
||||||
<ExperienceLayout>
|
<ExperienceLayout title="CEOAS - Robotic Oceanographic Surface Sampler">
|
||||||
</ExperienceLayout>
|
</ExperienceLayout>
|
||||||
@@ -2,5 +2,5 @@
|
|||||||
import ExperienceLayout from "@layouts/ExperienceLayout.astro";
|
import ExperienceLayout from "@layouts/ExperienceLayout.astro";
|
||||||
---
|
---
|
||||||
|
|
||||||
<ExperienceLayout>
|
<ExperienceLayout title="OSURC - Officer">
|
||||||
</ExperienceLayout>
|
</ExperienceLayout>
|
||||||
@@ -2,5 +2,5 @@
|
|||||||
import ExperienceLayout from "@layouts/ExperienceLayout.astro";
|
import ExperienceLayout from "@layouts/ExperienceLayout.astro";
|
||||||
---
|
---
|
||||||
|
|
||||||
<ExperienceLayout>
|
<ExperienceLayout title="OSURC - Electrical Team Lead">
|
||||||
</ExperienceLayout>
|
</ExperienceLayout>
|
||||||
@@ -2,5 +2,5 @@
|
|||||||
import ExperienceLayout from "@layouts/ExperienceLayout.astro";
|
import ExperienceLayout from "@layouts/ExperienceLayout.astro";
|
||||||
---
|
---
|
||||||
|
|
||||||
<ExperienceLayout>
|
<ExperienceLayout title="OSURC - Emergency Software Team Lead">
|
||||||
</ExperienceLayout>
|
</ExperienceLayout>
|
||||||
@@ -2,5 +2,5 @@
|
|||||||
import ExperienceLayout from "@layouts/ExperienceLayout.astro";
|
import ExperienceLayout from "@layouts/ExperienceLayout.astro";
|
||||||
---
|
---
|
||||||
|
|
||||||
<ExperienceLayout>
|
<ExperienceLayout title="OSURC - Software Team Lead">
|
||||||
</ExperienceLayout>
|
</ExperienceLayout>
|
||||||
@@ -2,5 +2,5 @@
|
|||||||
import ExperienceLayout from "@layouts/ExperienceLayout.astro";
|
import ExperienceLayout from "@layouts/ExperienceLayout.astro";
|
||||||
---
|
---
|
||||||
|
|
||||||
<ExperienceLayout>
|
<ExperienceLayout title="SARL - Dechorionator">
|
||||||
</ExperienceLayout>
|
</ExperienceLayout>
|
||||||
@@ -2,5 +2,5 @@
|
|||||||
import ExperienceLayout from "@layouts/ExperienceLayout.astro";
|
import ExperienceLayout from "@layouts/ExperienceLayout.astro";
|
||||||
---
|
---
|
||||||
|
|
||||||
<ExperienceLayout>
|
<ExperienceLayout title="SARL - Denso Embryo Pick and Plate">
|
||||||
</ExperienceLayout>
|
</ExperienceLayout>
|
||||||
@@ -2,5 +2,5 @@
|
|||||||
import ExperienceLayout from "@layouts/ExperienceLayout.astro";
|
import ExperienceLayout from "@layouts/ExperienceLayout.astro";
|
||||||
---
|
---
|
||||||
|
|
||||||
<ExperienceLayout>
|
<ExperienceLayout title="SARL - Shuttlebox Behavior System">
|
||||||
</ExperienceLayout>
|
</ExperienceLayout>
|
||||||
@@ -2,5 +2,5 @@
|
|||||||
import ExperienceLayout from "@layouts/ExperienceLayout.astro";
|
import ExperienceLayout from "@layouts/ExperienceLayout.astro";
|
||||||
---
|
---
|
||||||
|
|
||||||
<ExperienceLayout>
|
<ExperienceLayout title="SARL - Team Lead">
|
||||||
</ExperienceLayout>
|
</ExperienceLayout>
|
||||||
@@ -2,5 +2,5 @@
|
|||||||
import ExperienceLayout from "@layouts/ExperienceLayout.astro";
|
import ExperienceLayout from "@layouts/ExperienceLayout.astro";
|
||||||
---
|
---
|
||||||
|
|
||||||
<ExperienceLayout>
|
<ExperienceLayout title="SARL - Zebrafish Embryo Pick and Plate">
|
||||||
</ExperienceLayout>
|
</ExperienceLayout>
|
||||||
@@ -2,5 +2,5 @@
|
|||||||
import ExperienceLayout from "@layouts/ExperienceLayout.astro";
|
import ExperienceLayout from "@layouts/ExperienceLayout.astro";
|
||||||
---
|
---
|
||||||
|
|
||||||
<ExperienceLayout>
|
<ExperienceLayout title="SARL - ZScan Processor">
|
||||||
</ExperienceLayout>
|
</ExperienceLayout>
|
||||||
@@ -27,7 +27,6 @@ const timeline: timelineEntry[] = [
|
|||||||
];
|
];
|
||||||
---
|
---
|
||||||
<ExperienceLayout title="SpaceX - Avionics Test Engineering Internship">
|
<ExperienceLayout title="SpaceX - Avionics Test Engineering Internship">
|
||||||
<!-- FIXME: Image bounds are all messed up -->
|
|
||||||
<Carousel carouselGroup={headerCarouselGroup}/>
|
<Carousel carouselGroup={headerCarouselGroup}/>
|
||||||
|
|
||||||
<h2 class="font-bold md:text-2xl my-4">Summary</h2>
|
<h2 class="font-bold md:text-2xl my-4">Summary</h2>
|
||||||
|
|||||||
@@ -2,5 +2,5 @@
|
|||||||
import HobbyLayout from "@layouts/HobbyLayout.astro";
|
import HobbyLayout from "@layouts/HobbyLayout.astro";
|
||||||
---
|
---
|
||||||
|
|
||||||
<HobbyLayout>
|
<HobbyLayout title="Homelab - Home Automation">
|
||||||
</HobbyLayout>
|
</HobbyLayout>
|
||||||
@@ -22,7 +22,7 @@ const headerCarouselGroup: carouselGroup = {
|
|||||||
}
|
}
|
||||||
---
|
---
|
||||||
|
|
||||||
<HobbyLayout title="Home Server Rack">
|
<HobbyLayout title="Homelab - Home Server Rack">
|
||||||
<Carousel carouselGroup={headerCarouselGroup}/>
|
<Carousel carouselGroup={headerCarouselGroup}/>
|
||||||
|
|
||||||
<!--<h2 class="font-bold md:text-2xl my-4">Prior Homelab</h2>-->
|
<!--<h2 class="font-bold md:text-2xl my-4">Prior Homelab</h2>-->
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ const headerCarouselGroup: carouselGroup = {
|
|||||||
}
|
}
|
||||||
---
|
---
|
||||||
|
|
||||||
<HobbyLayout title="Kubernetes Cluster">
|
<HobbyLayout title="Homelab - Kubernetes Cluster">
|
||||||
<Carousel carouselGroup={headerCarouselGroup}/>
|
<Carousel carouselGroup={headerCarouselGroup}/>
|
||||||
|
|
||||||
<!--<h2 class="font-bold md:text-2xl my-4">Prior Homelab</h2>-->
|
<!--<h2 class="font-bold md:text-2xl my-4">Prior Homelab</h2>-->
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ const headerCarouselGroup: carouselGroup = {
|
|||||||
}
|
}
|
||||||
---
|
---
|
||||||
|
|
||||||
<HobbyLayout title="Offsite Backup Rack">
|
<HobbyLayout title="Homelab - Offsite Backup Rack">
|
||||||
<Carousel carouselGroup={headerCarouselGroup}/>
|
<Carousel carouselGroup={headerCarouselGroup}/>
|
||||||
|
|
||||||
<!--<h2 class="font-bold md:text-2xl my-4">Prior Homelab</h2>-->
|
<!--<h2 class="font-bold md:text-2xl my-4">Prior Homelab</h2>-->
|
||||||
|
|||||||
@@ -30,6 +30,6 @@ const headerCarouselGroup: carouselGroup = {
|
|||||||
}
|
}
|
||||||
---
|
---
|
||||||
|
|
||||||
<HobbyLayout title="Chubby Buttons 2 Mount">
|
<HobbyLayout title="Motorcycling - Chubby Buttons 2 Mount">
|
||||||
<Carousel carouselGroup={headerCarouselGroup}/>
|
<Carousel carouselGroup={headerCarouselGroup}/>
|
||||||
</HobbyLayout>
|
</HobbyLayout>
|
||||||
@@ -2,5 +2,5 @@
|
|||||||
import HobbyLayout from "@layouts/HobbyLayout.astro";
|
import HobbyLayout from "@layouts/HobbyLayout.astro";
|
||||||
---
|
---
|
||||||
|
|
||||||
<HobbyLayout>
|
<HobbyLayout title="Motorcycling - Lineup">
|
||||||
</HobbyLayout>
|
</HobbyLayout>
|
||||||
@@ -2,5 +2,5 @@
|
|||||||
import HobbyLayout from "@layouts/HobbyLayout.astro";
|
import HobbyLayout from "@layouts/HobbyLayout.astro";
|
||||||
---
|
---
|
||||||
|
|
||||||
<HobbyLayout>
|
<HobbyLayout title="NixOS">
|
||||||
</HobbyLayout>
|
</HobbyLayout>
|
||||||
Reference in New Issue
Block a user