Skip to content
Merged
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
29 changes: 29 additions & 0 deletions .github/workflows/jekyll-gh-pages.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,35 @@ jobs:
with:
source: ./
destination: ./_site
- name: Overlay the canonical www bundle
shell: bash
run: |
set -euo pipefail
# Publish the canonical bundle alongside whatever the SSG produced.
#
# www/public/ -> the servable site root
# www/.well-known/ -> must be reachable at /.well-known/ on this
# origin (RFC 9116, and RSR check
# www/.well-known/security.txt)
#
# Everything else under www/ (dns/, policies/, profiles/, runbooks/,
# errors/) is source material and is deliberately NOT published, so
# only these two subtrees are copied rather than all of www/.
#
# Deliberately additive: the generated site is left intact, so this
# cannot regress the existing pages.
if [ -d www/public ]; then
cp -a www/public/. _site/
fi
if [ -d www/.well-known ]; then
mkdir -p _site/.well-known
cp -a www/.well-known/. _site/.well-known/
fi
# Jekyll copied the repository tree, so the bundle *source* would be
# served at /www/. The canonical location is the root, above.
rm -rf _site/www
echo "published tree:"
find _site -maxdepth 2 | sort
- name: Upload artifact
uses: actions/upload-pages-artifact@v5.0.0

Expand Down
11 changes: 6 additions & 5 deletions .github/workflows/wellknown-enforcement.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,11 @@ on:
push:
branches: [main, master]
paths:
- '.well-known/**'
- 'www/.well-known/**'
- 'security.txt'
pull_request:
paths:
- '.well-known/**'
- 'www/.well-known/**'
schedule:
# Weekly expiry check
- cron: '0 9 * * *'
Expand All @@ -30,6 +30,7 @@ jobs:
- name: RFC 9116 security.txt validation
run: |
SECTXT=""
[ -f "www/.well-known/security.txt" ] && SECTXT="www/.well-known/security.txt"
[ -f ".well-known/security.txt" ] && SECTXT=".well-known/security.txt"
[ -f "security.txt" ] && SECTXT="security.txt"

Expand Down Expand Up @@ -64,9 +65,9 @@ jobs:
- name: RSR well-known compliance
run: |
MISSING=""
[ ! -f ".well-known/security.txt" ] && [ ! -f "security.txt" ] && MISSING="$MISSING security.txt"
[ ! -f ".well-known/ai.txt" ] && MISSING="$MISSING ai.txt"
[ ! -f ".well-known/humans.txt" ] && MISSING="$MISSING humans.txt"
for f in security.txt ai.txt humans.txt; do
[ -f "www/.well-known/$f" ] || [ -f ".well-known/$f" ] || [ -f "$f" ] || MISSING="$MISSING $f"
done

if [ -n "$MISSING" ]; then
echo "::warning::Missing RSR recommended files:$MISSING"
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
Loading