Skip to content

Commit 930edbe

Browse files
committed
Add Jekyll site infrastructure with GitHub Pages deployment
- Add GitHub Actions workflow for automatic Jekyll deployment to GitHub Pages - Configure Jekyll with Minima theme and essential plugins - Include Docker setup for local development (Dockerfile, docker-compose.yml, serve.sh) - Update .gitignore to exclude Jekyll build artifacts and caches - Set up workflow to convert README.md to site index page - Enable manual and automatic deployment on main branch changes
1 parent a3c4e4b commit 930edbe

File tree

7 files changed

+272
-1
lines changed

7 files changed

+272
-1
lines changed
Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
name: Deploy Jekyll Site to GitHub Pages
2+
3+
on:
4+
push:
5+
branches:
6+
- main # Change to your default branch if different
7+
paths:
8+
- 'README.md'
9+
- 'assets/**'
10+
- '.github/workflows/jekyll-deploy.yml'
11+
workflow_dispatch: # Allow manual trigger
12+
13+
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
14+
permissions:
15+
contents: read
16+
pages: write
17+
id-token: write
18+
19+
# Allow only one concurrent deployment
20+
concurrency:
21+
group: "pages"
22+
cancel-in-progress: false
23+
24+
jobs:
25+
build:
26+
runs-on: ubuntu-latest
27+
steps:
28+
- name: Checkout repository
29+
uses: actions/checkout@v4
30+
31+
- name: Setup Ruby
32+
uses: ruby/setup-ruby@v1
33+
with:
34+
ruby-version: '3.1'
35+
bundler-cache: true
36+
working-directory: ./assets/jekyll-site
37+
38+
- name: Setup Pages
39+
uses: actions/configure-pages@v4
40+
41+
- name: Copy README to Jekyll site
42+
run: |
43+
cp README.md assets/jekyll-site/index.md
44+
echo "---" > assets/jekyll-site/index.md.tmp
45+
echo "layout: default" >> assets/jekyll-site/index.md.tmp
46+
echo "title: Home" >> assets/jekyll-site/index.md.tmp
47+
echo "---" >> assets/jekyll-site/index.md.tmp
48+
echo "" >> assets/jekyll-site/index.md.tmp
49+
cat README.md >> assets/jekyll-site/index.md.tmp
50+
mv assets/jekyll-site/index.md.tmp assets/jekyll-site/index.md
51+
52+
- name: Copy assets to Jekyll site
53+
run: |
54+
mkdir -p assets/jekyll-site/assets
55+
cp -r assets/images assets/jekyll-site/assets/ || true
56+
57+
- name: Build Jekyll site
58+
working-directory: ./assets/jekyll-site
59+
run: bundle exec jekyll build
60+
env:
61+
JEKYLL_ENV: production
62+
63+
- name: Upload artifact
64+
uses: actions/upload-pages-artifact@v3
65+
with:
66+
path: ./assets/jekyll-site/_site
67+
68+
deploy:
69+
environment:
70+
name: github-pages
71+
url: ${{ steps.deployment.outputs.page_url }}
72+
runs-on: ubuntu-latest
73+
needs: build
74+
steps:
75+
- name: Deploy to GitHub Pages
76+
id: deployment
77+
uses: actions/deploy-pages@v4

.gitignore

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,4 +45,15 @@ cdk.context.json
4545
codeql-db/
4646
codeql-demo-db/
4747
codeql/
48-
codeql-bundle-osx64.tar.gz
48+
codeql-bundle-osx64.tar.gz
49+
50+
# Jekyll
51+
assets/jekyll-site/_site/
52+
assets/jekyll-site/.jekyll-cache/
53+
assets/jekyll-site/.jekyll-metadata
54+
assets/jekyll-site/Gemfile.lock
55+
assets/jekyll-site/.sass-cache/
56+
assets/jekyll-site/README.md
57+
assets/jekyll-site/index.md
58+
assets/jekyll-site/images/
59+
assets/jekyll-site/assets/

assets/jekyll-site/Dockerfile

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
FROM ruby:3.2-slim
2+
3+
# Install dependencies
4+
RUN apt-get update && \
5+
apt-get install -y \
6+
build-essential \
7+
git \
8+
&& rm -rf /var/lib/apt/lists/*
9+
10+
# Set working directory
11+
WORKDIR /site
12+
13+
# Copy Gemfile
14+
COPY Gemfile* ./
15+
16+
# Install gems
17+
RUN bundle install
18+
19+
# Copy the rest of the site
20+
COPY . .
21+
22+
# Expose port
23+
EXPOSE 4000
24+
25+
# Run Jekyll
26+
CMD ["bundle", "exec", "jekyll", "serve", "--host", "0.0.0.0", "--livereload"]

assets/jekyll-site/Gemfile

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
source "https://rubygems.org"
2+
3+
# Use Jekyll directly instead of github-pages to avoid native extensions
4+
gem "jekyll", "~> 4.3"
5+
gem "minima", "~> 2.5"
6+
7+
# Essential plugins that don't require native compilation
8+
group :jekyll_plugins do
9+
gem "jekyll-feed", "~> 0.12"
10+
gem "jekyll-seo-tag", "~> 2.8"
11+
gem "jekyll-sitemap", "~> 1.4"
12+
gem "jekyll-relative-links"
13+
gem "jekyll-optional-front-matter"
14+
gem "jekyll-readme-index"
15+
gem "jekyll-titles-from-headings"
16+
end
17+
18+
# Windows and JRuby does not include zoneinfo files
19+
platforms :mingw, :x64_mingw, :mswin, :jruby do
20+
gem "tzinfo", ">= 1", "< 3"
21+
gem "tzinfo-data"
22+
end
23+
24+
# Performance-booster for watching directories on Windows
25+
gem "wdm", "~> 0.1", :platforms => [:mingw, :x64_mingw, :mswin]

assets/jekyll-site/_config.yml

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
# Jekyll Configuration for GitHub Pages
2+
title: Guidance for Agentic AI Accelerator on AWS
3+
description: Enterprise-grade multi-agent AI orchestration platform built on AWS managed services
4+
baseurl: "" # the subpath of your site, e.g. /blog
5+
url: "" # the base hostname & protocol for your site
6+
7+
# GitHub Pages settings
8+
theme: minima
9+
plugins:
10+
- jekyll-relative-links
11+
- jekyll-optional-front-matter
12+
- jekyll-readme-index
13+
- jekyll-titles-from-headings
14+
15+
# Build settings
16+
markdown: kramdown
17+
kramdown:
18+
input: GFM
19+
hard_wrap: false
20+
auto_ids: true
21+
syntax_highlighter: rouge
22+
23+
# Plugin settings
24+
relative_links:
25+
enabled: true
26+
collections: false
27+
28+
optional_front_matter:
29+
remove_originals: true
30+
31+
readme_index:
32+
enabled: true
33+
remove_originals: false
34+
with_frontmatter: false
35+
36+
titles_from_headings:
37+
enabled: true
38+
strip_title: true
39+
collections: false
40+
41+
# Content settings
42+
show_downloads: true
43+
google_analytics: # Add your GA tracking ID if needed
44+
45+
# Exclude from processing
46+
exclude:
47+
- Gemfile
48+
- Gemfile.lock
49+
- node_modules
50+
- vendor/bundle/
51+
- vendor/cache/
52+
- vendor/gems/
53+
- vendor/ruby/
54+
- .bundle/
55+
- .sass-cache/
56+
- .jekyll-cache/
57+
- gemfiles/
58+
59+
# Include files
60+
include:
61+
- _pages
62+
- assets
63+
64+
# Collections (if you want to add more pages later)
65+
collections:
66+
pages:
67+
output: true
68+
permalink: /:name
69+
70+
# Default front matter
71+
defaults:
72+
- scope:
73+
path: ""
74+
type: "pages"
75+
values:
76+
layout: "default"
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
version: '3.8'
2+
3+
services:
4+
jekyll:
5+
build: .
6+
ports:
7+
- "4000:4000"
8+
- "35729:35729" # LiveReload port
9+
volumes:
10+
- ../../:/repo
11+
- .:/site
12+
- jekyll-bundle:/usr/local/bundle
13+
working_dir: /site
14+
environment:
15+
- JEKYLL_ENV=development
16+
command: bash -c "cp /repo/README.md /site/index.md && mkdir -p /site/assets && cp -r /repo/assets/images /site/assets/ && bundle exec jekyll serve --host 0.0.0.0 --livereload --force_polling"
17+
18+
volumes:
19+
jekyll-bundle:

assets/jekyll-site/serve.sh

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
#!/bin/bash
2+
3+
echo "========================================="
4+
echo "Jekyll Local Development Server (Docker)"
5+
echo "=========================================="
6+
echo ""
7+
8+
# Check if podman or docker is available
9+
if command -v podman &> /dev/null; then
10+
CONTAINER_CMD="podman"
11+
COMPOSE_CMD="podman-compose"
12+
echo "✓ Using Podman"
13+
elif command -v docker &> /dev/null; then
14+
CONTAINER_CMD="docker"
15+
COMPOSE_CMD="docker compose"
16+
echo "✓ Using Docker"
17+
else
18+
echo "❌ Error: Neither Docker nor Podman found."
19+
echo "Please install Docker or Podman to run Jekyll locally."
20+
exit 1
21+
fi
22+
23+
echo ""
24+
echo "🚀 Starting Jekyll server..."
25+
echo ""
26+
echo "The site will be available at:"
27+
echo " 👉 http://localhost:4000"
28+
echo ""
29+
echo "Press Ctrl+C to stop the server"
30+
echo ""
31+
32+
# Run with docker-compose or podman compose
33+
if [ "$CONTAINER_CMD" = "podman" ]; then
34+
podman compose up --build
35+
else
36+
docker compose up --build
37+
fi

0 commit comments

Comments
 (0)