Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
60 changes: 60 additions & 0 deletions .github/workflows/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
# GitHub Actions Workflows

This directory contains the automated build and deployment workflows for the portfolio site.

## Build and Deploy Workflow (`eleventy_build.yml`)

### Overview
Automates the build and deployment process for GitHub Pages using Eleventy static site generator.

### Triggers
- **Push to main branch**: Builds and deploys to GitHub Pages
- **Pull requests to main**: Builds only (for validation, no deployment)

### Jobs

#### Build Job
1. **Checkout repository**: Gets the latest code
2. **Setup Node.js**: Installs Node.js 22 with npm caching
3. **Install dependencies**: Runs `npm ci --ignore-scripts`
4. **Build site**: Executes `npm run build` which:
- Cleans previous build (`docs/` folder)
- Optimizes images from `src/assets/img-raw/`
- Compiles Sass to CSS with Bootstrap
- Generates static site with Eleventy
- Processes CSS with PostCSS (autoprefixer, minification)
5. **Upload artifacts**: Saves build output for deployment job

#### Deploy Job (main branch only)
1. **Download artifacts**: Gets build output from build job
2. **Deploy to GitHub Pages**: Uses `peaceiris/actions-gh-pages` to:
- Push `docs/` content to `gh-pages` branch
- Update GitHub Pages deployment

### Output
- **Generated files**: ~724 static files in `docs/` directory
- **Total size**: ~42MB of optimized content
- **Deployment target**: `gh-pages` branch → GitHub Pages

### Dependencies
- **Node.js**: Version 22 (specified in package.json)
- **Build tools**: Eleventy, Sass, PostCSS, Sharp (image optimization)
- **Deployment**: GitHub Pages via gh-pages branch

### Expected Warnings
- **Sass deprecation warnings**: 144+ warnings from Bootstrap (safe to ignore)
- **npm vulnerabilities**: 74+ audit warnings (non-critical for static site)
- **Node version warnings**: Package requires Node 22, runs on 20+ (safe to ignore)

### Local Development
To run the same build process locally:
```bash
npm install
npm run build # Production build
npm run start # Development server with watch
```

### Configuration Files
- **Eleventy config**: `.eleventy.js` (input: `src/`, output: `docs/`)
- **Package scripts**: `package.json` (build commands)
- **Deploy key**: `ACTIONS_DEPLOY_KEY` secret (for gh-pages push)
30 changes: 27 additions & 3 deletions .github/workflows/eleventy_build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,25 +4,49 @@ on:
push:
branches:
- main
pull_request:
branches:
- main

jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/[email protected]
- name: Setup Node
uses: actions/[email protected]
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '22.x'

- name: Install dependencies using a safe clean install, build and test
run: |
npm config set '//npm.fontawesome.com/:_authToken' "${{ secrets.FONT_AWESOME_TOKEN }}"
npm ci --ignore-scripts

- name: Run Build
run: npm run build

- name: Deploy
uses: peaceiris/[email protected]
with:
deploy_key: ${{ secrets.ACTIONS_DEPLOY_KEY }}
publish_dir: ./docs
publish_branch: gh-pages
commit_message: ${{ github.event.head_commit.message }}

- name: Download build artifacts
uses: actions/download-artifact@v4
with:
name: site-build
path: docs/

- name: Deploy to GitHub Pages
uses: peaceiris/actions-gh-pages@v4
with:
deploy_key: ${{ secrets.ACTIONS_DEPLOY_KEY }}
publish_dir: ./docs
publish_branch: gh-pages
commit_message: 'Deploy: ${{ github.event.head_commit.message }}'
user_name: 'github-actions[bot]'
user_email: 'github-actions[bot]@users.noreply.github.com'
3 changes: 3 additions & 0 deletions .stylelintignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
src/sass/fa/**
src/sass/fontawesome.scss
node_modules/bootstrap/scss/*.scss
src/sass/prism.scss
src/sass/print.scss
src/sass/**
3 changes: 2 additions & 1 deletion .stylelintrc.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,5 +16,6 @@
"rule-empty-line-before": null,
"at-rule-empty-line-before": null,
"scss/at-extend-no-missing-placeholder": null
}
},
"allowEmptyInput": true
}
6 changes: 6 additions & 0 deletions docs/about/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -325,7 +325,13 @@ <h2 id="education" tabindex="-1">Education <a class="anchor-link" href="#educati
</div>
<script src="https://cdn.jsdelivr.net/npm/@popperjs/[email protected]/dist/umd/popper.min.js" integrity="sha384-I7E8VVD/ismYTF4hNIPjVp/Zjvgyol6VFvRkX/vR+Vc4jQkC+hVqc2pM8ODewa9r" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.min.js" integrity="sha384-Rx+T1VzGupg4BHQYs2gCW9It+akI2MM/mndMCy36UVfodzcJcF0GGLxZIzObiEfa" crossorigin="anonymous"></script>
<<<<<<< HEAD
<script src="https://kit.fontawesome.com/0ea2a7621c.js" crossorigin="anonymous"></script>
=======

<script src="https://kit.fontawesome.com/0ea2a7621c.js" crossorigin="anonymous"></script>

>>>>>>> 87fad93 (Fix background images and colors)
<script type="application/javascript" src="/js/prism.js"></script>
<script type="application/javascript" src="/js/icon-component.js"></script>
<script type="application/javascript" src="/js/jolicoeur.js"></script>
Expand Down
6 changes: 6 additions & 0 deletions docs/alfred/workflows/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -320,7 +320,13 @@ <h2 id="created-%2F-modified" tabindex="-1">Created / Modified <a class="anchor-
</div>
<script src="https://cdn.jsdelivr.net/npm/@popperjs/[email protected]/dist/umd/popper.min.js" integrity="sha384-I7E8VVD/ismYTF4hNIPjVp/Zjvgyol6VFvRkX/vR+Vc4jQkC+hVqc2pM8ODewa9r" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.min.js" integrity="sha384-Rx+T1VzGupg4BHQYs2gCW9It+akI2MM/mndMCy36UVfodzcJcF0GGLxZIzObiEfa" crossorigin="anonymous"></script>
<<<<<<< HEAD
<script src="https://kit.fontawesome.com/0ea2a7621c.js" crossorigin="anonymous"></script>
=======

<script src="https://kit.fontawesome.com/0ea2a7621c.js" crossorigin="anonymous"></script>

>>>>>>> 87fad93 (Fix background images and colors)
<script type="application/javascript" src="/js/prism.js"></script>
<script type="application/javascript" src="/js/icon-component.js"></script>
<script type="application/javascript" src="/js/jolicoeur.js"></script>
Expand Down
6 changes: 6 additions & 0 deletions docs/apps/collectsomemore/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -307,7 +307,13 @@ <h3 id="privacy-policy" tabindex="-1">Privacy Policy <a class="anchor-link" href
</div>
<script src="https://cdn.jsdelivr.net/npm/@popperjs/[email protected]/dist/umd/popper.min.js" integrity="sha384-I7E8VVD/ismYTF4hNIPjVp/Zjvgyol6VFvRkX/vR+Vc4jQkC+hVqc2pM8ODewa9r" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.min.js" integrity="sha384-Rx+T1VzGupg4BHQYs2gCW9It+akI2MM/mndMCy36UVfodzcJcF0GGLxZIzObiEfa" crossorigin="anonymous"></script>
<<<<<<< HEAD
<script src="https://kit.fontawesome.com/0ea2a7621c.js" crossorigin="anonymous"></script>
=======

<script src="https://kit.fontawesome.com/0ea2a7621c.js" crossorigin="anonymous"></script>

>>>>>>> 87fad93 (Fix background images and colors)
<script type="application/javascript" src="/js/prism.js"></script>
<script type="application/javascript" src="/js/icon-component.js"></script>
<script type="application/javascript" src="/js/jolicoeur.js"></script>
Expand Down
6 changes: 6 additions & 0 deletions docs/apps/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -314,7 +314,13 @@ <h2 id="webapps" tabindex="-1">WebApps <a class="anchor-link" href="#webapps">#<
</div>
<script src="https://cdn.jsdelivr.net/npm/@popperjs/[email protected]/dist/umd/popper.min.js" integrity="sha384-I7E8VVD/ismYTF4hNIPjVp/Zjvgyol6VFvRkX/vR+Vc4jQkC+hVqc2pM8ODewa9r" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.min.js" integrity="sha384-Rx+T1VzGupg4BHQYs2gCW9It+akI2MM/mndMCy36UVfodzcJcF0GGLxZIzObiEfa" crossorigin="anonymous"></script>
<<<<<<< HEAD
<script src="https://kit.fontawesome.com/0ea2a7621c.js" crossorigin="anonymous"></script>
=======

<script src="https://kit.fontawesome.com/0ea2a7621c.js" crossorigin="anonymous"></script>

>>>>>>> 87fad93 (Fix background images and colors)
<script type="application/javascript" src="/js/prism.js"></script>
<script type="application/javascript" src="/js/icon-component.js"></script>
<script type="application/javascript" src="/js/jolicoeur.js"></script>
Expand Down
6 changes: 6 additions & 0 deletions docs/apps/releases/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -302,7 +302,13 @@ <h1 class="display-1 fw-bold text-break">Application Releases</h1>
</div>
<script src="https://cdn.jsdelivr.net/npm/@popperjs/[email protected]/dist/umd/popper.min.js" integrity="sha384-I7E8VVD/ismYTF4hNIPjVp/Zjvgyol6VFvRkX/vR+Vc4jQkC+hVqc2pM8ODewa9r" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.min.js" integrity="sha384-Rx+T1VzGupg4BHQYs2gCW9It+akI2MM/mndMCy36UVfodzcJcF0GGLxZIzObiEfa" crossorigin="anonymous"></script>
<<<<<<< HEAD
<script src="https://kit.fontawesome.com/0ea2a7621c.js" crossorigin="anonymous"></script>
=======

<script src="https://kit.fontawesome.com/0ea2a7621c.js" crossorigin="anonymous"></script>

>>>>>>> 87fad93 (Fix background images and colors)
<script type="application/javascript" src="/js/prism.js"></script>
<script type="application/javascript" src="/js/icon-component.js"></script>
<script type="application/javascript" src="/js/jolicoeur.js"></script>
Expand Down
6 changes: 6 additions & 0 deletions docs/archives/archives/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -294,7 +294,13 @@ <h1 class="display-1 fw-bold text-break">Archived Pages</h1>
</div>
<script src="https://cdn.jsdelivr.net/npm/@popperjs/[email protected]/dist/umd/popper.min.js" integrity="sha384-I7E8VVD/ismYTF4hNIPjVp/Zjvgyol6VFvRkX/vR+Vc4jQkC+hVqc2pM8ODewa9r" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.min.js" integrity="sha384-Rx+T1VzGupg4BHQYs2gCW9It+akI2MM/mndMCy36UVfodzcJcF0GGLxZIzObiEfa" crossorigin="anonymous"></script>
<<<<<<< HEAD
<script src="https://kit.fontawesome.com/0ea2a7621c.js" crossorigin="anonymous"></script>
=======

<script src="https://kit.fontawesome.com/0ea2a7621c.js" crossorigin="anonymous"></script>

>>>>>>> 87fad93 (Fix background images and colors)
<script type="application/javascript" src="/js/prism.js"></script>
<script type="application/javascript" src="/js/icon-component.js"></script>
<script type="application/javascript" src="/js/jolicoeur.js"></script>
Expand Down
6 changes: 6 additions & 0 deletions docs/archives/town-selectman/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -437,7 +437,13 @@ <h2 class="mb-3">FAQ</h2>
</div>
<script src="https://cdn.jsdelivr.net/npm/@popperjs/[email protected]/dist/umd/popper.min.js" integrity="sha384-I7E8VVD/ismYTF4hNIPjVp/Zjvgyol6VFvRkX/vR+Vc4jQkC+hVqc2pM8ODewa9r" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.min.js" integrity="sha384-Rx+T1VzGupg4BHQYs2gCW9It+akI2MM/mndMCy36UVfodzcJcF0GGLxZIzObiEfa" crossorigin="anonymous"></script>
<<<<<<< HEAD
<script src="https://kit.fontawesome.com/0ea2a7621c.js" crossorigin="anonymous"></script>
=======

<script src="https://kit.fontawesome.com/0ea2a7621c.js" crossorigin="anonymous"></script>

>>>>>>> 87fad93 (Fix background images and colors)
<script type="application/javascript" src="/js/prism.js"></script>
<script type="application/javascript" src="/js/icon-component.js"></script>
<script type="application/javascript" src="/js/jolicoeur.js"></script>
Expand Down
6 changes: 6 additions & 0 deletions docs/connect/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -317,7 +317,13 @@ <h1 class="display-1 fw-bold text-break">Connect</h1>
</div>
<script src="https://cdn.jsdelivr.net/npm/@popperjs/[email protected]/dist/umd/popper.min.js" integrity="sha384-I7E8VVD/ismYTF4hNIPjVp/Zjvgyol6VFvRkX/vR+Vc4jQkC+hVqc2pM8ODewa9r" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.min.js" integrity="sha384-Rx+T1VzGupg4BHQYs2gCW9It+akI2MM/mndMCy36UVfodzcJcF0GGLxZIzObiEfa" crossorigin="anonymous"></script>
<<<<<<< HEAD
<script src="https://kit.fontawesome.com/0ea2a7621c.js" crossorigin="anonymous"></script>
=======

<script src="https://kit.fontawesome.com/0ea2a7621c.js" crossorigin="anonymous"></script>

>>>>>>> 87fad93 (Fix background images and colors)
<script type="application/javascript" src="/js/prism.js"></script>
<script type="application/javascript" src="/js/icon-component.js"></script>
<script type="application/javascript" src="/js/jolicoeur.js"></script>
Expand Down
6 changes: 6 additions & 0 deletions docs/credits/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -372,7 +372,13 @@ <h2 id="tools" tabindex="-1">Tools <a class="anchor-link" href="#tools">#</a></h
</div>
<script src="https://cdn.jsdelivr.net/npm/@popperjs/[email protected]/dist/umd/popper.min.js" integrity="sha384-I7E8VVD/ismYTF4hNIPjVp/Zjvgyol6VFvRkX/vR+Vc4jQkC+hVqc2pM8ODewa9r" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.min.js" integrity="sha384-Rx+T1VzGupg4BHQYs2gCW9It+akI2MM/mndMCy36UVfodzcJcF0GGLxZIzObiEfa" crossorigin="anonymous"></script>
<<<<<<< HEAD
<script src="https://kit.fontawesome.com/0ea2a7621c.js" crossorigin="anonymous"></script>
=======

<script src="https://kit.fontawesome.com/0ea2a7621c.js" crossorigin="anonymous"></script>

>>>>>>> 87fad93 (Fix background images and colors)
<script type="application/javascript" src="/js/prism.js"></script>
<script type="application/javascript" src="/js/icon-component.js"></script>
<script type="application/javascript" src="/js/jolicoeur.js"></script>
Expand Down
Loading
Loading