Skip to content
Merged
Show file tree
Hide file tree
Changes from 31 commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
4afbce7
feat: bring prsdm up to date
Quantumplate Feb 17, 2026
e8d5fdb
feat: bring prsdm up to date
Quantumplate Feb 17, 2026
e3f348c
feat: bring prsdm up to date
Quantumplate Feb 17, 2026
273db27
feat: bring prsdm up to date
Quantumplate Feb 17, 2026
f770f57
feat: PRSDM-10268 bring Presidium Open Source up to date
Quantumplate Feb 18, 2026
a7e0a15
feat: PRSDM-10268 bring Presidium Open Source up to date
Quantumplate Feb 18, 2026
c670378
feat: PRSDM-10268 fix landing page
Quantumplate Feb 18, 2026
139d5dc
feat: PRSDM-10268 bring Presidium Open Source up to date
Quantumplate Feb 19, 2026
89420cc
feat: PRSDM-10268 bring Presidium Open Source up to date
Quantumplate Feb 19, 2026
be585b9
feat: PRSDM-10268 bring Presidium Open Source up to date
Quantumplate Feb 19, 2026
cbe773f
feat: PRSDM-10268 bring Presidium Open Source up to date
Quantumplate Feb 19, 2026
b1cc45e
feat: PRSDM-10268 bring Presidium Open Source up to date
Quantumplate Feb 19, 2026
a0366b7
feat: PRSDM-10268 embed themes in binary
Quantumplate Feb 20, 2026
04bdcfb
feat: PRSDM-10268 bring Presidium Open Source up to date
Quantumplate Feb 20, 2026
cbd3a87
feat: PRSDM-10268 bring Presidium Open Source up to date
Quantumplate Feb 20, 2026
89f64f7
feat: PRSDM-10268 bring Presidium Open Source up to date
Quantumplate Feb 20, 2026
a35d16f
Merge pull request #269 from SPANDigital/feat/bring-prsdm-os-up-to-da…
Quantumplate Feb 20, 2026
ac1d58d
feat: PRSDM-10268 embed themes in binary
Quantumplate Feb 20, 2026
5e211d6
feat: PRSDM-10268 embed themes in binary
Quantumplate Feb 20, 2026
7aea566
feat: PRSDM-10268 embed themes in binary
Quantumplate Feb 20, 2026
7d48f52
feat: PRSDM-10268 embed themes in binary
Quantumplate Feb 20, 2026
30addd2
feat: PRSDM-10268 embed themes in binary
Quantumplate Feb 20, 2026
ca2b8f7
feat: PRSDM-10268 embed themes in binary
Quantumplate Feb 20, 2026
b67ced7
Merge branch 'develop' into feat/PRSDM-10268-incl-themes-in-binary
Quantumplate Feb 20, 2026
f0e0217
feat: PRSDM-10268 embed themes in binary
Quantumplate Feb 20, 2026
577d63e
Merge branch 'feat/PRSDM-10268-incl-themes-in-binary' of https://gith…
Quantumplate Feb 20, 2026
13a732d
feat: PRSDM-10268 embed themes in binary
Quantumplate Feb 23, 2026
b70604c
feat: PRSDM-10268 embed themes in binary
Quantumplate Feb 23, 2026
361decb
feat: PRSDM-10368 incl themes in binary PR feedback
Quantumplate Feb 25, 2026
0f492c0
Merge pull request #270 from SPANDigital/feat/PRSDM-10268-incl-themes…
Quantumplate Feb 25, 2026
af03037
Update pkg/configtranslation/configfile.go
Quantumplate Feb 25, 2026
02c69d3
Update README.md
Quantumplate Feb 25, 2026
30a4b99
Update Makefile
Quantumplate Feb 25, 2026
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
61 changes: 61 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
name: CI
on:
push:
branches:
- main
- develop
- feat/**
pull_request:
branches:
- main
- develop
- feat/**

jobs:
cli-lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
with:
submodules: true
- uses: actions/setup-go@v6
with:
go-version: stable
- name: Prepare themes for embedding
run: make prepare-themes
- name: cli-lint
uses: golangci/golangci-lint-action@v9
with:
version: latest
args: --timeout=10m
test:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v6
with:
submodules: true
- name: Set up Go
uses: actions/setup-go@v6
with:
go-version: stable
- name: Run Tests
run: make test || exit 1
- name: Upload Test Reports
uses: actions/upload-artifact@v6
with:
name: test-reports
path: reports/tests-cov.out
build:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v6
with:
submodules: true
- name: Set up Go
uses: actions/setup-go@v6
with:
go-version: stable
- name: Run Build
run: make build || exit 1
8 changes: 4 additions & 4 deletions .github/workflows/gh-pages.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,22 +13,22 @@ jobs:
run:
working-directory: ./docs
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
with:
ref: master
submodules: true
submodules: true
fetch-depth: 0

- name: Setup Hugo
uses: peaceiris/actions-hugo@v2
uses: peaceiris/actions-hugo@v3
with:
hugo-version: 'latest'
extended: true
- name: Build
run: hugo --minify

- name: Deploy
uses: peaceiris/actions-gh-pages@v3
uses: peaceiris/actions-gh-pages@v4
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./docs/public
Expand Down
31 changes: 0 additions & 31 deletions .github/workflows/goreleaser.yml

This file was deleted.

31 changes: 31 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
name: goreleaser

on:
push:
tags:
- "*"

jobs:
goreleaser:
environment: releaser
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
submodules: true
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: 1.25.x
- name: Prepare themes for embedding
run: make prepare-themes
- name: Run GoReleaser
uses: goreleaser/goreleaser-action@v6
with:
distribution: goreleaser
version: latest
args: release --clean
env:
GITHUB_TOKEN: ${{ github.token }}
6 changes: 4 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@ presidium
dist/
.DS_Store
resources/

dist/
docs/resources
docs/resources
reports/
reports/tests-cov.out
.claude/
20 changes: 20 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
[submodule "tools/hugo"]
path = tools/hugo
url = https://github.com/gohugoio/hugo
branch = master
shallow = true
[submodule "themes/presidium-layouts-base"]
path = themes/presidium-layouts-base
url = https://github.com/SPANDigital/presidium-layouts-base
branch = main
shallow = true
[submodule "themes/presidium-layouts-blog"]
path = themes/presidium-layouts-blog
url = https://github.com/SPANDigital/presidium-layouts-blog
branch = main
shallow = true
[submodule "themes/presidium-styling-base"]
path = themes/presidium-styling-base
url = https://github.com/SPANDigital/presidium-styling-base
branch = main
shallow = true
30 changes: 30 additions & 0 deletions .golangci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
version: "2"
linters:
default: none
enable:
- errcheck
- govet
- ineffassign
- staticcheck
- unused
- gocyclo
exclusions:
generated: lax
presets:
- comments
- common-false-positives
- legacy
- std-error-handling
paths:
- third_party$
- builtin$
- examples$
formatters:
enable:
- gofmt
exclusions:
generated: lax
paths:
- third_party$
- builtin$
- examples$
5 changes: 3 additions & 2 deletions .goreleaser.yaml
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
before:
hooks:
- go mod tidy
- packr2
builds:
- env:
- tags:
- extended
env:
- CGO_ENABLED=0
goos:
- linux
Expand Down
80 changes: 80 additions & 0 deletions Dockerfile.test
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
# Multi-stage Dockerfile to test presidium with embedded themes
# This tests that themes work without network access

# Stage 1: Build presidium binary for Linux
FROM golang:1.25-alpine AS builder

# Install build dependencies
RUN apk add --no-cache git gcc g++ musl-dev make

# Copy source code
WORKDIR /build
COPY . .

# Build presidium binary (prepare-themes renames go.mod files so they can be embedded)
RUN make prepare-themes && go build -tags extended -o presidium .

# Stage 2: Test without network access
FROM golang:1.25-alpine AS test

# Install runtime dependencies (C++ libraries required by Hugo/presidium)
RUN apk add --no-cache curl libstdc++ libgcc

# Copy the docs site
COPY ./docs /workspace/docs

# Copy the built presidium binary from builder stage
COPY --from=builder /build/presidium /usr/local/bin/presidium
RUN chmod +x /usr/local/bin/presidium

# Set working directory to the docs site
WORKDIR /workspace/docs

# Verify presidium binary
RUN presidium --version || echo "Presidium version check completed"

# Run hugo build using presidium (this will use embedded themes)
# This should work without network access, proving themes are embedded
RUN echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" && \
echo "Building site with embedded themes..." && \
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" && \
presidium hugo && \
echo "" && \
echo "✓ Build successful! Themes were loaded from embedded binary." && \
echo "" && \
echo "Generated files:" && \
ls -lh public/ | head -20

# Verify the build output exists and contains expected files
RUN test -d public && \
test -f public/index.html && \
test -f public/sitemap.xml && \
echo "" && \
echo "✓ Hugo site built successfully!" && \
echo "✓ All expected files generated" && \
echo "✓ Themes loaded from binary (no GitHub fetch required)"

# Create a test script that will run with --network=none
RUN echo '#!/bin/sh' > /test.sh && \
echo 'echo "╔═══════════════════════════════════════════════════════════╗"' >> /test.sh && \
echo 'echo "║ Network Isolation Test ║"' >> /test.sh && \
echo 'echo "╚═══════════════════════════════════════════════════════════╝"' >> /test.sh && \
echo 'echo ""' >> /test.sh && \
echo 'echo "Testing network isolation..."' >> /test.sh && \
echo 'if curl -s --max-time 2 https://github.com >/dev/null 2>&1; then' >> /test.sh && \
echo ' echo "❌ FAIL: Network access detected!"' >> /test.sh && \
echo ' exit 1' >> /test.sh && \
echo 'else' >> /test.sh && \
echo ' echo "✓ Confirmed: No network access"' >> /test.sh && \
echo 'fi' >> /test.sh && \
echo 'echo ""' >> /test.sh && \
echo 'echo "Build artifacts:"' >> /test.sh && \
echo 'ls -lh public/ | head -15' >> /test.sh && \
echo 'echo ""' >> /test.sh && \
echo 'echo "╔═══════════════════════════════════════════════════════════╗"' >> /test.sh && \
echo 'echo "║ ✅ SUCCESS: Embedded themes work without network! ║"' >> /test.sh && \
echo 'echo "╚═══════════════════════════════════════════════════════════╝"' >> /test.sh && \
chmod +x /test.sh

# Default command runs the test script
CMD ["/test.sh"]
Loading