Skip to content

Commit dc974b6

Browse files
authoredMay 2, 2024··
[static-build] Support Ruby static site generators in AL2023 build image (#11529)
* Set `GEM_HOME` env var based on the Ruby version in `$PATH` (i.e. `3.2.0` for the AL2 build image, `3.3.0` for the AL2023 build image) * Copy previous `jekyll-v4` test fixture to `jekyll-v4-al2` (uses AL2 build image) * Update `jekyll-v4` test fixture to use Jekyll 4.3.3 (required for Ruby 3.3.0), and remove `package.json` so that it uses AL2023 build image * Copy previous `middleman-v4` test fixture to `middleman-v4-al2` (uses AL2 build image) * Removed `package.json` from `middleman-v4` fixture, so that it uses AL2023 build image
1 parent 58c6755 commit dc974b6

33 files changed

+630
-46
lines changed
 

‎.changeset/new-plants-run.md

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@vercel/static-build': patch
3+
---
4+
5+
Support Ruby and Python static site generators in AL2023 build image

‎packages/static-build/src/index.ts

+12-4
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,12 @@ import fetch from 'node-fetch';
44
import getPort from 'get-port';
55
import isPortReachable from 'is-port-reachable';
66
import frameworks, { Framework } from '@vercel/frameworks';
7-
import { spawn, type ChildProcess, type SpawnOptions } from 'child_process';
7+
import {
8+
spawn,
9+
spawnSync,
10+
type ChildProcess,
11+
type SpawnOptions,
12+
} from 'child_process';
813
import { existsSync, readFileSync, statSync, readdirSync, mkdirSync } from 'fs';
914
import { cpus } from 'os';
1015
import {
@@ -48,7 +53,6 @@ import {
4853
import { getHugoUrl } from './utils/hugo';
4954
import { once } from 'events';
5055

51-
const SUPPORTED_RUBY_VERSION = '3.2.0';
5256
const sleep = (n: number) => new Promise(resolve => setTimeout(resolve, n));
5357

5458
const DEV_SERVER_PORT_BIND_TIMEOUT = ms('5m');
@@ -579,9 +583,13 @@ export const build: BuildV2 = async ({
579583
pathList.push(vendorBin); // Add `./vendor/bin`
580584
debug(`Added "${vendorBin}" to PATH env because a Gemfile was found`);
581585
const dir = path.join(workPath, 'vendor', 'bundle', 'ruby');
582-
const rubyVersion = SUPPORTED_RUBY_VERSION;
586+
const rubyVersion = spawnSync(
587+
'ruby',
588+
['-e', 'print "#{ RUBY_VERSION }"'],
589+
{ encoding: 'utf8' }
590+
);
583591
if (rubyVersion) {
584-
gemHome = path.join(dir, rubyVersion);
592+
gemHome = path.join(dir, rubyVersion.stdout.trim());
585593
debug(`Set GEM_HOME="${gemHome}" because a Gemfile was found`);
586594
}
587595
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
_site
2+
.sass-cache
3+
.jekyll-metadata
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
---
2+
layout: default
3+
---
4+
5+
<style type="text/css" media="screen">
6+
.container {
7+
margin: 10px auto;
8+
max-width: 600px;
9+
text-align: center;
10+
}
11+
h1 {
12+
margin: 30px 0;
13+
font-size: 4em;
14+
line-height: 1;
15+
letter-spacing: -1px;
16+
}
17+
</style>
18+
19+
<div class="container">
20+
<h1>404</h1>
21+
22+
<p><strong>Page not found :(</strong></p>
23+
<p>The requested page could not be found.</p>
24+
</div>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
source "https://rubygems.org"
2+
3+
# Hello! This is where you manage which Jekyll version is used to run.
4+
# When you want to use a different version, change it below, save the
5+
# file and run `bundle install`. Run Jekyll with `bundle exec`, like so:
6+
#
7+
# bundle exec jekyll serve
8+
#
9+
# This will help ensure the proper Jekyll version is running.
10+
# Happy Jekylling!
11+
gem "jekyll", "~> 4.0"
12+
13+
# This is the default theme for new Jekyll sites. You may change this to anything you like.
14+
gem "minima", "~> 2.0"
15+
16+
# If you want to use GitHub Pages, remove the "gem "jekyll"" above and
17+
# uncomment the line below. To upgrade, run `bundle update github-pages`.
18+
# gem "github-pages", group: :jekyll_plugins
19+
20+
# If you have any plugins, put them here!
21+
group :jekyll_plugins do
22+
gem "jekyll-feed", "~> 0.6"
23+
end
24+
25+
# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
26+
# and associated library.
27+
install_if -> { RUBY_PLATFORM =~ %r!mingw|mswin|java! } do
28+
gem "tzinfo", "~> 1.2"
29+
gem "tzinfo-data"
30+
end
31+
32+
# Performance-booster for watching directories on Windows
33+
gem "wdm", "~> 0.1.0", :install_if => Gem.win_platform?
34+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
GEM
2+
remote: https://rubygems.org/
3+
specs:
4+
addressable (2.8.5)
5+
public_suffix (>= 2.0.2, < 6.0)
6+
colorator (1.1.0)
7+
concurrent-ruby (1.2.2)
8+
em-websocket (0.5.3)
9+
eventmachine (>= 0.12.9)
10+
http_parser.rb (~> 0)
11+
eventmachine (1.2.7)
12+
ffi (1.16.3)
13+
forwardable-extended (2.6.0)
14+
google-protobuf (3.24.4-arm64-darwin)
15+
http_parser.rb (0.8.0)
16+
i18n (1.14.1)
17+
concurrent-ruby (~> 1.0)
18+
jekyll (4.3.2)
19+
addressable (~> 2.4)
20+
colorator (~> 1.0)
21+
em-websocket (~> 0.5)
22+
i18n (~> 1.0)
23+
jekyll-sass-converter (>= 2.0, < 4.0)
24+
jekyll-watch (~> 2.0)
25+
kramdown (~> 2.3, >= 2.3.1)
26+
kramdown-parser-gfm (~> 1.0)
27+
liquid (~> 4.0)
28+
mercenary (>= 0.3.6, < 0.5)
29+
pathutil (~> 0.9)
30+
rouge (>= 3.0, < 5.0)
31+
safe_yaml (~> 1.0)
32+
terminal-table (>= 1.8, < 4.0)
33+
webrick (~> 1.7)
34+
jekyll-feed (0.17.0)
35+
jekyll (>= 3.7, < 5.0)
36+
jekyll-sass-converter (3.0.0)
37+
sass-embedded (~> 1.54)
38+
jekyll-seo-tag (2.8.0)
39+
jekyll (>= 3.8, < 5.0)
40+
jekyll-watch (2.2.1)
41+
listen (~> 3.0)
42+
kramdown (2.4.0)
43+
rexml
44+
kramdown-parser-gfm (1.1.0)
45+
kramdown (~> 2.0)
46+
liquid (4.0.4)
47+
listen (3.8.0)
48+
rb-fsevent (~> 0.10, >= 0.10.3)
49+
rb-inotify (~> 0.9, >= 0.9.10)
50+
mercenary (0.4.0)
51+
minima (2.5.1)
52+
jekyll (>= 3.5, < 5.0)
53+
jekyll-feed (~> 0.9)
54+
jekyll-seo-tag (~> 2.1)
55+
pathutil (0.16.2)
56+
forwardable-extended (~> 2.6)
57+
public_suffix (5.0.3)
58+
rb-fsevent (0.11.2)
59+
rb-inotify (0.10.1)
60+
ffi (~> 1.0)
61+
rexml (3.2.6)
62+
rouge (4.1.3)
63+
safe_yaml (1.0.5)
64+
sass-embedded (1.68.0-arm64-darwin)
65+
google-protobuf (~> 3.23)
66+
terminal-table (3.0.2)
67+
unicode-display_width (>= 1.1.1, < 3)
68+
thread_safe (0.3.6)
69+
tzinfo (1.2.11)
70+
thread_safe (~> 0.1)
71+
tzinfo-data (1.2023.3)
72+
tzinfo (>= 1.0.0)
73+
unicode-display_width (2.5.0)
74+
wdm (0.1.1)
75+
webrick (1.8.1)
76+
77+
PLATFORMS
78+
arm64-darwin-22
79+
80+
DEPENDENCIES
81+
jekyll (~> 4.0)
82+
jekyll-feed (~> 0.6)
83+
minima (~> 2.0)
84+
tzinfo (~> 1.2)
85+
tzinfo-data
86+
wdm (~> 0.1.0)
87+
88+
BUNDLED WITH
89+
2.4.19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
# Welcome to Jekyll!
2+
#
3+
# This config file is meant for settings that affect your whole blog, values
4+
# which you are expected to set up once and rarely edit after that. If you find
5+
# yourself editing this file very often, consider using Jekyll's data files
6+
# feature for the data you need to update frequently.
7+
#
8+
# For technical reasons, this file is *NOT* reloaded automatically when you use
9+
# 'bundle exec jekyll serve'. If you change this file, please restart the server process.
10+
11+
# Site settings
12+
# These are used to personalize your new site. If you look in the HTML files,
13+
# you will see them accessed via {{ site.title }}, {{ site.email }}, and so on.
14+
# You can create any custom variable you would like, and they will be accessible
15+
# in the templates via {{ site.myvariable }}.
16+
title: Your awesome title
17+
email: your-email@example.com
18+
description: >- # this means to ignore newlines until "baseurl:"
19+
Write an awesome description for your new site here. You can edit this
20+
line in _config.yml. It will appear in your document head meta (for
21+
Google search results) and in your feed.xml site description.
22+
baseurl: "" # the subpath of your site, e.g. /blog
23+
url: "" # the base hostname & protocol for your site, e.g. http://example.com
24+
twitter_username: jekyllrb
25+
github_username: jekyll
26+
27+
# Build settings
28+
markdown: kramdown
29+
theme: minima
30+
plugins:
31+
- jekyll-feed
32+
sass:
33+
quiet_deps: true
34+
35+
# Exclude from processing.
36+
# The following items will not be processed, by default. Create a custom list
37+
# to override the default setting.
38+
# exclude:
39+
# - Gemfile
40+
# - Gemfile.lock
41+
# - node_modules
42+
# - vendor/bundle/
43+
# - vendor/cache/
44+
# - vendor/gems/
45+
# - vendor/ruby/
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{
2+
"probes": [
3+
{ "path": "/", "mustContain": "Your awesome title" },
4+
{ "path": "/about/", "mustContain": "You can find out more info" },
5+
{
6+
"path": "/jekyll/update/2019/09/06/welcome-to-jekyll.html",
7+
"mustContain": "Go ahead and edit it"
8+
}
9+
]
10+
}
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
11
_site
22
.sass-cache
3+
.jekyll-cache
34
.jekyll-metadata
5+
vendor

‎packages/static-build/test/fixtures/jekyll-v4/404.html

+1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
---
2+
permalink: /404.html
23
layout: default
34
---
45

Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
source "https://rubygems.org"
2-
32
# Hello! This is where you manage which Jekyll version is used to run.
43
# When you want to use a different version, change it below, save the
54
# file and run `bundle install`. Run Jekyll with `bundle exec`, like so:
@@ -8,27 +7,27 @@ source "https://rubygems.org"
87
#
98
# This will help ensure the proper Jekyll version is running.
109
# Happy Jekylling!
11-
gem "jekyll", "~> 4.0"
12-
10+
gem "jekyll", "~> 4.3.3"
1311
# This is the default theme for new Jekyll sites. You may change this to anything you like.
14-
gem "minima", "~> 2.0"
15-
12+
gem "minima", "~> 2.5"
1613
# If you want to use GitHub Pages, remove the "gem "jekyll"" above and
1714
# uncomment the line below. To upgrade, run `bundle update github-pages`.
1815
# gem "github-pages", group: :jekyll_plugins
19-
2016
# If you have any plugins, put them here!
2117
group :jekyll_plugins do
22-
gem "jekyll-feed", "~> 0.6"
18+
gem "jekyll-feed", "~> 0.12"
2319
end
2420

25-
# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
21+
# Windows and JRuby does not include zoneinfo files, so bundle the tzinfo-data gem
2622
# and associated library.
27-
install_if -> { RUBY_PLATFORM =~ %r!mingw|mswin|java! } do
28-
gem "tzinfo", "~> 1.2"
23+
platforms :mingw, :x64_mingw, :mswin, :jruby do
24+
gem "tzinfo", ">= 1", "< 3"
2925
gem "tzinfo-data"
3026
end
3127

3228
# Performance-booster for watching directories on Windows
33-
gem "wdm", "~> 0.1.0", :install_if => Gem.win_platform?
29+
gem "wdm", "~> 0.1.1", :platforms => [:mingw, :x64_mingw, :mswin]
3430

31+
# Lock `http_parser.rb` gem to `v0.6.x` on JRuby builds since newer versions of the gem
32+
# do not have a Java counterpart.
33+
gem "http_parser.rb", "~> 0.6.0", :platforms => [:jruby]
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,32 @@
11
GEM
22
remote: https://rubygems.org/
33
specs:
4-
addressable (2.8.5)
4+
addressable (2.8.6)
55
public_suffix (>= 2.0.2, < 6.0)
66
colorator (1.1.0)
7-
concurrent-ruby (1.2.2)
7+
concurrent-ruby (1.2.3)
88
em-websocket (0.5.3)
99
eventmachine (>= 0.12.9)
1010
http_parser.rb (~> 0)
1111
eventmachine (1.2.7)
1212
ffi (1.16.3)
1313
forwardable-extended (2.6.0)
14-
google-protobuf (3.24.4-arm64-darwin)
14+
google-protobuf (4.26.1)
15+
rake (>= 13)
16+
google-protobuf (4.26.1-aarch64-linux)
17+
rake (>= 13)
18+
google-protobuf (4.26.1-arm64-darwin)
19+
rake (>= 13)
20+
google-protobuf (4.26.1-x86-linux)
21+
rake (>= 13)
22+
google-protobuf (4.26.1-x86_64-darwin)
23+
rake (>= 13)
24+
google-protobuf (4.26.1-x86_64-linux)
25+
rake (>= 13)
1526
http_parser.rb (0.8.0)
16-
i18n (1.14.1)
27+
i18n (1.14.4)
1728
concurrent-ruby (~> 1.0)
18-
jekyll (4.3.2)
29+
jekyll (4.3.3)
1930
addressable (~> 2.4)
2031
colorator (~> 1.0)
2132
em-websocket (~> 0.5)
@@ -44,7 +55,7 @@ GEM
4455
kramdown-parser-gfm (1.1.0)
4556
kramdown (~> 2.0)
4657
liquid (4.0.4)
47-
listen (3.8.0)
58+
listen (3.9.0)
4859
rb-fsevent (~> 0.10, >= 0.10.3)
4960
rb-inotify (~> 0.9, >= 0.9.10)
5061
mercenary (0.4.0)
@@ -54,36 +65,99 @@ GEM
5465
jekyll-seo-tag (~> 2.1)
5566
pathutil (0.16.2)
5667
forwardable-extended (~> 2.6)
57-
public_suffix (5.0.3)
68+
public_suffix (5.0.5)
69+
rake (13.2.1)
5870
rb-fsevent (0.11.2)
5971
rb-inotify (0.10.1)
6072
ffi (~> 1.0)
6173
rexml (3.2.6)
62-
rouge (4.1.3)
74+
rouge (4.2.1)
6375
safe_yaml (1.0.5)
64-
sass-embedded (1.68.0-arm64-darwin)
65-
google-protobuf (~> 3.23)
76+
sass-embedded (1.76.0)
77+
google-protobuf (>= 3.25, < 5.0)
78+
rake (>= 13.0.0)
79+
sass-embedded (1.76.0-aarch64-linux-android)
80+
google-protobuf (>= 3.25, < 5.0)
81+
sass-embedded (1.76.0-aarch64-linux-gnu)
82+
google-protobuf (>= 3.25, < 5.0)
83+
sass-embedded (1.76.0-aarch64-linux-musl)
84+
google-protobuf (>= 3.25, < 5.0)
85+
sass-embedded (1.76.0-aarch64-mingw-ucrt)
86+
google-protobuf (>= 3.25, < 5.0)
87+
sass-embedded (1.76.0-arm-linux-androideabi)
88+
google-protobuf (>= 3.25, < 5.0)
89+
sass-embedded (1.76.0-arm-linux-gnueabihf)
90+
google-protobuf (>= 3.25, < 5.0)
91+
sass-embedded (1.76.0-arm-linux-musleabihf)
92+
google-protobuf (>= 3.25, < 5.0)
93+
sass-embedded (1.76.0-arm64-darwin)
94+
google-protobuf (>= 3.25, < 5.0)
95+
sass-embedded (1.76.0-riscv64-linux-android)
96+
google-protobuf (>= 3.25, < 5.0)
97+
sass-embedded (1.76.0-riscv64-linux-gnu)
98+
google-protobuf (>= 3.25, < 5.0)
99+
sass-embedded (1.76.0-riscv64-linux-musl)
100+
google-protobuf (>= 3.25, < 5.0)
101+
sass-embedded (1.76.0-x86-cygwin)
102+
google-protobuf (>= 3.25, < 5.0)
103+
sass-embedded (1.76.0-x86-linux-android)
104+
google-protobuf (>= 3.25, < 5.0)
105+
sass-embedded (1.76.0-x86-linux-gnu)
106+
google-protobuf (>= 3.25, < 5.0)
107+
sass-embedded (1.76.0-x86-linux-musl)
108+
google-protobuf (>= 3.25, < 5.0)
109+
sass-embedded (1.76.0-x86-mingw-ucrt)
110+
google-protobuf (>= 3.25, < 5.0)
111+
sass-embedded (1.76.0-x86_64-cygwin)
112+
google-protobuf (>= 3.25, < 5.0)
113+
sass-embedded (1.76.0-x86_64-darwin)
114+
google-protobuf (>= 3.25, < 5.0)
115+
sass-embedded (1.76.0-x86_64-linux-android)
116+
google-protobuf (>= 3.25, < 5.0)
117+
sass-embedded (1.76.0-x86_64-linux-gnu)
118+
google-protobuf (>= 3.25, < 5.0)
119+
sass-embedded (1.76.0-x86_64-linux-musl)
120+
google-protobuf (>= 3.25, < 5.0)
66121
terminal-table (3.0.2)
67122
unicode-display_width (>= 1.1.1, < 3)
68-
thread_safe (0.3.6)
69-
tzinfo (1.2.11)
70-
thread_safe (~> 0.1)
71-
tzinfo-data (1.2023.3)
72-
tzinfo (>= 1.0.0)
73123
unicode-display_width (2.5.0)
74-
wdm (0.1.1)
75124
webrick (1.8.1)
76125

77126
PLATFORMS
78-
arm64-darwin-22
127+
aarch64-linux
128+
aarch64-linux-android
129+
aarch64-linux-gnu
130+
aarch64-linux-musl
131+
aarch64-mingw-ucrt
132+
arm-linux-androideabi
133+
arm-linux-gnueabihf
134+
arm-linux-musleabihf
135+
arm64-darwin
136+
riscv64-linux-android
137+
riscv64-linux-gnu
138+
riscv64-linux-musl
139+
ruby
140+
x86-cygwin
141+
x86-linux
142+
x86-linux-android
143+
x86-linux-gnu
144+
x86-linux-musl
145+
x86-mingw-ucrt
146+
x86_64-cygwin
147+
x86_64-darwin
148+
x86_64-linux
149+
x86_64-linux-android
150+
x86_64-linux-gnu
151+
x86_64-linux-musl
79152

80153
DEPENDENCIES
81-
jekyll (~> 4.0)
82-
jekyll-feed (~> 0.6)
83-
minima (~> 2.0)
84-
tzinfo (~> 1.2)
154+
http_parser.rb (~> 0.6.0)
155+
jekyll (~> 4.3.3)
156+
jekyll-feed (~> 0.12)
157+
minima (~> 2.5)
158+
tzinfo (>= 1, < 3)
85159
tzinfo-data
86-
wdm (~> 0.1.0)
160+
wdm (~> 0.1.1)
87161

88162
BUNDLED WITH
89-
2.4.19
163+
2.5.9

‎packages/static-build/test/fixtures/jekyll-v4/_config.yml

+17-7
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,17 @@
77
#
88
# For technical reasons, this file is *NOT* reloaded automatically when you use
99
# 'bundle exec jekyll serve'. If you change this file, please restart the server process.
10-
10+
#
11+
# If you need help with YAML syntax, here are some quick references for you:
12+
# https://learn-the-web.algonquindesign.ca/topics/markdown-yaml-cheat-sheet/#yaml
13+
# https://learnxinyminutes.com/docs/yaml/
14+
#
1115
# Site settings
1216
# These are used to personalize your new site. If you look in the HTML files,
1317
# you will see them accessed via {{ site.title }}, {{ site.email }}, and so on.
1418
# You can create any custom variable you would like, and they will be accessible
1519
# in the templates via {{ site.myvariable }}.
20+
1621
title: Your awesome title
1722
email: your-email@example.com
1823
description: >- # this means to ignore newlines until "baseurl:"
@@ -25,20 +30,25 @@ twitter_username: jekyllrb
2530
github_username: jekyll
2631

2732
# Build settings
28-
markdown: kramdown
2933
theme: minima
3034
plugins:
3135
- jekyll-feed
32-
sass:
33-
quiet_deps: true
3436

3537
# Exclude from processing.
36-
# The following items will not be processed, by default. Create a custom list
37-
# to override the default setting.
38+
# The following items will not be processed, by default.
39+
# Any item listed under the `exclude:` key here will be automatically added to
40+
# the internal "default list".
41+
#
42+
# Excluded items can be processed by explicitly listing the directories or
43+
# their entries' file path in the `include:` list.
44+
#
3845
# exclude:
46+
# - .sass-cache/
47+
# - .jekyll-cache/
48+
# - gemfiles/
3949
# - Gemfile
4050
# - Gemfile.lock
41-
# - node_modules
51+
# - node_modules/
4252
# - vendor/bundle/
4353
# - vendor/cache/
4454
# - vendor/gems/
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
---
2+
layout: post
3+
title: "Welcome to Jekyll!"
4+
date: 2024-05-01 20:47:19 -0700
5+
categories: jekyll update
6+
---
7+
You’ll find this post in your `_posts` directory. Go ahead and edit it and re-build the site to see your changes. You can rebuild the site in many different ways, but the most common way is to run `jekyll serve`, which launches a web server and auto-regenerates your site when a file is updated.
8+
9+
Jekyll requires blog post files to be named according to the following format:
10+
11+
`YEAR-MONTH-DAY-title.MARKUP`
12+
13+
Where `YEAR` is a four-digit number, `MONTH` and `DAY` are both two-digit numbers, and `MARKUP` is the file extension representing the format used in the file. After that, include the necessary front matter. Take a look at the source for this post to get an idea about how it works.
14+
15+
Jekyll also offers powerful support for code snippets:
16+
17+
{% highlight ruby %}
18+
def print_hi(name)
19+
puts "Hi, #{name}"
20+
end
21+
print_hi('Tom')
22+
#=> prints 'Hi, Tom' to STDOUT.
23+
{% endhighlight %}
24+
25+
Check out the [Jekyll docs][jekyll-docs] for more info on how to get the most out of Jekyll. File all bugs/feature requests at [Jekyll’s GitHub repo][jekyll-gh]. If you have questions, you can ask them on [Jekyll Talk][jekyll-talk].
26+
27+
[jekyll-docs]: https://jekyllrb.com/docs/home
28+
[jekyll-gh]: https://github.com/jekyll/jekyll
29+
[jekyll-talk]: https://talk.jekyllrb.com/
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
---
2+
layout: page
3+
title: About
4+
permalink: /about/
5+
---
6+
7+
This is the base Jekyll theme. You can find out more info about customizing your Jekyll theme, as well as basic Jekyll usage documentation at [jekyllrb.com](https://jekyllrb.com/)
8+
9+
You can find the source code for Minima at GitHub:
10+
[jekyll][jekyll-organization] /
11+
[minima](https://github.com/jekyll/minima)
12+
13+
You can find the source code for Jekyll at GitHub:
14+
[jekyll][jekyll-organization] /
15+
[jekyll](https://github.com/jekyll/jekyll)
16+
17+
18+
[jekyll-organization]: https://github.com/jekyll
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
# Feel free to add content and custom Front Matter to this file.
3+
# To modify the layout, see https://jekyllrb.com/docs/themes/#overriding-theme-defaults
4+
5+
layout: home
6+
---

‎packages/static-build/test/fixtures/jekyll-v4/probes.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
{ "path": "/", "mustContain": "Your awesome title" },
44
{ "path": "/about/", "mustContain": "You can find out more info" },
55
{
6-
"path": "/jekyll/update/2019/09/06/welcome-to-jekyll.html",
6+
"path": "/jekyll/update/2024/05/02/welcome-to-jekyll.html",
77
"mustContain": "Go ahead and edit it"
88
}
99
]
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
.bundle
2+
.cache
3+
.DS_Store
4+
.sass-cache
5+
build/
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
source 'https://rubygems.org'
2+
3+
gem 'middleman', '~> 4.2'
4+
gem 'middleman-autoprefixer', '~> 2.7'
5+
gem 'tzinfo-data', platforms: [:mswin, :mingw, :jruby, :x64_mingw]
6+
gem 'wdm', '~> 0.1', platforms: [:mswin, :mingw, :x64_mingw]
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,115 @@
1+
GEM
2+
remote: https://rubygems.org/
3+
specs:
4+
activesupport (7.0.8)
5+
concurrent-ruby (~> 1.0, >= 1.0.2)
6+
i18n (>= 1.6, < 2)
7+
minitest (>= 5.1)
8+
tzinfo (~> 2.0)
9+
addressable (2.8.5)
10+
public_suffix (>= 2.0.2, < 6.0)
11+
autoprefixer-rails (9.8.6.5)
12+
execjs
13+
backports (3.24.1)
14+
coffee-script (2.4.1)
15+
coffee-script-source
16+
execjs
17+
coffee-script-source (1.12.2)
18+
concurrent-ruby (1.2.2)
19+
contracts (0.17)
20+
dotenv (2.8.1)
21+
erubis (2.7.0)
22+
execjs (2.9.1)
23+
fast_blank (1.0.1)
24+
fastimage (2.2.7)
25+
ffi (1.16.3)
26+
haml (6.2.3)
27+
temple (>= 0.8.2)
28+
thor
29+
tilt
30+
hamster (3.0.0)
31+
concurrent-ruby (~> 1.0)
32+
hashie (3.6.0)
33+
i18n (1.6.0)
34+
concurrent-ruby (~> 1.0)
35+
kramdown (2.4.0)
36+
rexml
37+
listen (3.8.0)
38+
rb-fsevent (~> 0.10, >= 0.10.3)
39+
rb-inotify (~> 0.9, >= 0.9.10)
40+
memoist (0.16.2)
41+
middleman (4.5.0)
42+
coffee-script (~> 2.2)
43+
haml (>= 4.0.5)
44+
kramdown (>= 2.3.0)
45+
middleman-cli (= 4.5.0)
46+
middleman-core (= 4.5.0)
47+
middleman-autoprefixer (2.10.1)
48+
autoprefixer-rails (~> 9.1)
49+
middleman-core (>= 3.3.3)
50+
middleman-cli (4.5.0)
51+
thor (>= 0.17.0, < 2.0)
52+
middleman-core (4.5.0)
53+
activesupport (>= 6.1, < 7.1)
54+
addressable (~> 2.4)
55+
backports (~> 3.6)
56+
bundler (~> 2.0)
57+
contracts (~> 0.13)
58+
dotenv
59+
erubis
60+
execjs (~> 2.0)
61+
fast_blank
62+
fastimage (~> 2.0)
63+
hamster (~> 3.0)
64+
hashie (~> 3.4)
65+
i18n (~> 1.6.0)
66+
listen (~> 3.0)
67+
memoist (~> 0.14)
68+
padrino-helpers (~> 0.15.0)
69+
parallel
70+
rack (>= 1.4.5, < 3)
71+
sassc (~> 2.0)
72+
servolux
73+
tilt (~> 2.0.9)
74+
toml
75+
uglifier (~> 3.0)
76+
webrick
77+
minitest (5.20.0)
78+
padrino-helpers (0.15.3)
79+
i18n (>= 0.6.7, < 2)
80+
padrino-support (= 0.15.3)
81+
tilt (>= 1.4.1, < 3)
82+
padrino-support (0.15.3)
83+
parallel (1.23.0)
84+
parslet (2.0.0)
85+
public_suffix (5.0.3)
86+
rack (2.2.8)
87+
rb-fsevent (0.11.2)
88+
rb-inotify (0.10.1)
89+
ffi (~> 1.0)
90+
rexml (3.2.6)
91+
sassc (2.4.0)
92+
ffi (~> 1.9)
93+
servolux (0.13.0)
94+
temple (0.10.3)
95+
thor (1.2.2)
96+
tilt (2.0.11)
97+
toml (0.3.0)
98+
parslet (>= 1.8.0, < 3.0.0)
99+
tzinfo (2.0.6)
100+
concurrent-ruby (~> 1.0)
101+
uglifier (3.2.0)
102+
execjs (>= 0.3.0, < 3)
103+
webrick (1.8.1)
104+
105+
PLATFORMS
106+
arm64-darwin-22
107+
108+
DEPENDENCIES
109+
middleman (~> 4.2)
110+
middleman-autoprefixer (~> 2.7)
111+
tzinfo-data
112+
wdm (~> 0.1)
113+
114+
BUNDLED WITH
115+
2.4.19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
# Activate and configure extensions
2+
# https://middlemanapp.com/advanced/configuration/#configuring-extensions
3+
4+
activate :autoprefixer do |prefix|
5+
prefix.browsers = "last 2 versions"
6+
end
7+
8+
# Layouts
9+
# https://middlemanapp.com/basics/layouts/
10+
11+
# Per-page layout changes
12+
page '/*.xml', layout: false
13+
page '/*.json', layout: false
14+
page '/*.txt', layout: false
15+
16+
# With alternative layout
17+
# page '/path/to/file.html', layout: 'other_layout'
18+
19+
# Proxy pages
20+
# https://middlemanapp.com/advanced/dynamic-pages/
21+
22+
# proxy(
23+
# '/this-page-has-no-template.html',
24+
# '/template-file.html',
25+
# locals: {
26+
# which_fake_page: 'Rendering a fake page with a local variable'
27+
# },
28+
# )
29+
30+
# Helpers
31+
# Methods defined in the helpers block are available in templates
32+
# https://middlemanapp.com/basics/helper-methods/
33+
34+
# helpers do
35+
# def some_helper
36+
# 'Helping'
37+
# end
38+
# end
39+
40+
# Build-specific configuration
41+
# https://middlemanapp.com/advanced/configuration/#environment-specific-settings
42+
43+
# configure :build do
44+
# activate :minify_css
45+
# activate :minify_javascript
46+
# end
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"probes": [
3+
{ "path": "/", "mustContain": "Middleman is Running" },
4+
{ "path": "/pages/hello.html/", "mustContain": "Hello from Middleman" }
5+
]
6+
}

‎packages/static-build/test/fixtures/middleman-v4-al2/source/images/.keep

Whitespace-only changes.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
---
2+
title: Welcome to Middleman
3+
---
4+
5+
<h1>
6+
Middleman is Running
7+
</h1>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
// This is where it all goes :)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<!doctype html>
2+
<html>
3+
<head>
4+
<meta charset="utf-8">
5+
<meta http-equiv="x-ua-compatible" content="ie=edge">
6+
<meta name="viewport"
7+
content="width=device-width, initial-scale=1, shrink-to-fit=no">
8+
<!-- Use the title from a page's frontmatter if it has one -->
9+
<title><%= current_page.data.title || "Middleman" %></title>
10+
<%= stylesheet_link_tag "site" %>
11+
<%= javascript_include_tag "site" %>
12+
</head>
13+
<body>
14+
<%= yield %>
15+
</body>
16+
</html>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Hello from Middleman
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
body {
2+
background-color: #fbc547;
3+
color: #333;
4+
font-family: -apple-system, BlinkMacSystemFont, "Avenir Next", "Avenir",
5+
"Segoe UI", "Lucida Grande", "Helvetica Neue", "Helvetica", "Fira Sans",
6+
"Roboto", "Noto", "Droid Sans", "Cantarell", "Oxygen", "Ubuntu",
7+
"Franklin Gothic Medium", "Century Gothic", "Liberation Sans", sans-serif;
8+
padding: 18vh 1rem;
9+
text-align: center;
10+
}
11+
12+
a {
13+
color: rgba(#000, 0.7);
14+
15+
&:focus,
16+
&:hover {
17+
color: rgba(#000, 0.6);
18+
}
19+
}
20+
21+
.middleman-logo {
22+
margin-bottom: 1rem;
23+
width: 10rem;
24+
}

0 commit comments

Comments
 (0)
Please sign in to comment.