-
Notifications
You must be signed in to change notification settings - Fork 0
85 lines (75 loc) · 2.18 KB
/
deploy.yml
File metadata and controls
85 lines (75 loc) · 2.18 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
#==============================================================================
# GitHub Actions Deployment Workflow (.github/workflows/deploy.yml)
#
# Purpose:
# Automated deployment pipeline for Jekyll site to GitHub Pages.
# Triggers on push to main branch.
#
# Process:
# 1. Checkout repository code
# 2. Setup Ruby 3.4.7+ environment
# 3. Cache bundler dependencies
# 4. Install gems and build Jekyll site
# 5. Upload built site as artifact
# 6. Deploy to GitHub Pages
#
# Environment:
# - Runner: ubuntu-latest
# - Ruby: 3.4.7 (latest stable as of November 2025)
# - Bundler: 2.7.2+ (latest stable)
# - Jekyll: 4.4.1
#
# Deployment:
# - Uses official GitHub Pages deployment action
# - Requires Pages to be configured with "GitHub Actions" source
# - Automatically handles artifact upload and deployment
#
# Setup Instructions:
# 1. Go to repository Settings → Pages
# 2. Under "Build and deployment" → Source
# 3. Select "GitHub Actions"
#==============================================================================
name: Deploy to GitHub Pages
on:
push:
branches:
- main
workflow_dispatch: # Allow manual trigger
# Sets permissions for GitHub Pages deployment
permissions:
contents: read
pages: write
id-token: write
# Allow only one concurrent deployment
concurrency:
group: "pages"
cancel-in-progress: false
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: '3.4.7'
bundler-cache: true # Automatically cache gems
- name: Setup Pages
uses: actions/configure-pages@v4
- name: Build with Jekyll
run: bundle exec jekyll build --verbose
env:
JEKYLL_ENV: production
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
needs: build
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4