2025-10-23 14:13:31 +02:00
|
|
|
version: '3'
|
|
|
|
|
|
|
|
|
|
vars:
|
|
|
|
|
HUGO_CMD: hugo
|
|
|
|
|
NPM_CMD: npm
|
|
|
|
|
|
|
|
|
|
tasks:
|
|
|
|
|
default:
|
|
|
|
|
desc: Show available tasks
|
|
|
|
|
cmds:
|
|
|
|
|
- task --list
|
|
|
|
|
|
|
|
|
|
# Build tasks
|
|
|
|
|
build:
|
|
|
|
|
desc: Build Hugo site
|
2025-10-25 09:40:44 +02:00
|
|
|
deps:
|
|
|
|
|
- deps:ensure-npm
|
2025-10-25 23:49:48 +02:00
|
|
|
- build:generate-info
|
2025-10-23 14:13:31 +02:00
|
|
|
cmds:
|
|
|
|
|
- "{{.HUGO_CMD}} --gc --minify"
|
|
|
|
|
|
|
|
|
|
build:dev:
|
|
|
|
|
desc: Build Hugo site for development
|
2025-10-25 09:40:44 +02:00
|
|
|
deps:
|
|
|
|
|
- deps:ensure-npm
|
2025-10-25 23:49:48 +02:00
|
|
|
- build:generate-info
|
2025-10-23 14:13:31 +02:00
|
|
|
cmds:
|
|
|
|
|
- "{{.HUGO_CMD}}"
|
|
|
|
|
|
2025-10-25 23:49:48 +02:00
|
|
|
build:generate-info:
|
|
|
|
|
desc: Generate build information (git commit, version, etc.)
|
|
|
|
|
sources:
|
|
|
|
|
- .git/HEAD
|
|
|
|
|
- .git/refs/**/*
|
|
|
|
|
generates:
|
|
|
|
|
- data/build_info.json
|
|
|
|
|
cmds:
|
|
|
|
|
- ./scripts/generate-build-info.sh
|
|
|
|
|
|
2025-10-23 14:13:31 +02:00
|
|
|
serve:
|
|
|
|
|
desc: Start Hugo dev server
|
2025-10-25 09:40:44 +02:00
|
|
|
deps:
|
|
|
|
|
- deps:ensure-npm
|
2025-10-25 23:49:48 +02:00
|
|
|
- build:generate-info
|
2025-10-23 14:13:31 +02:00
|
|
|
cmds:
|
|
|
|
|
- "{{.HUGO_CMD}} server"
|
|
|
|
|
|
|
|
|
|
clean:
|
|
|
|
|
desc: Clean build artifacts
|
|
|
|
|
cmds:
|
|
|
|
|
- rm -rf public resources/_gen .hugo_build.lock
|
|
|
|
|
|
|
|
|
|
# Test tasks
|
|
|
|
|
test:
|
|
|
|
|
desc: Run all tests
|
2025-11-16 13:32:10 +01:00
|
|
|
deps:
|
|
|
|
|
- test:build
|
|
|
|
|
- test:markdown
|
|
|
|
|
- test:html
|
|
|
|
|
- likec4:validate
|
|
|
|
|
|
2025-11-16 13:48:12 +01:00
|
|
|
test:hugo:
|
|
|
|
|
desc: Run Hugo-only tests (markdown, HTML, build)
|
|
|
|
|
deps:
|
|
|
|
|
- test:build
|
|
|
|
|
- test:markdown
|
|
|
|
|
- test:html
|
|
|
|
|
|
2025-11-16 13:32:10 +01:00
|
|
|
test:full:
|
|
|
|
|
desc: Run all tests including link check (may have errors in legacy content)
|
2025-10-23 14:13:31 +02:00
|
|
|
deps:
|
|
|
|
|
- test:build
|
|
|
|
|
- test:markdown
|
|
|
|
|
- test:html
|
|
|
|
|
- test:links
|
2025-11-07 15:03:58 +01:00
|
|
|
- likec4:validate
|
2025-10-23 14:13:31 +02:00
|
|
|
|
|
|
|
|
test:quick:
|
|
|
|
|
desc: Run quick tests (without link check)
|
|
|
|
|
deps:
|
|
|
|
|
- test:build
|
|
|
|
|
- test:markdown
|
2025-11-07 15:03:58 +01:00
|
|
|
- likec4:validate
|
2025-10-23 14:13:31 +02:00
|
|
|
|
|
|
|
|
test:build:
|
|
|
|
|
desc: Test Hugo build
|
2025-10-25 09:40:44 +02:00
|
|
|
deps:
|
|
|
|
|
- deps:ensure-npm
|
2025-10-25 23:49:48 +02:00
|
|
|
- build:generate-info
|
2025-10-23 14:13:31 +02:00
|
|
|
cmds:
|
|
|
|
|
- "{{.HUGO_CMD}} --gc --minify --logLevel info"
|
|
|
|
|
|
|
|
|
|
test:markdown:
|
|
|
|
|
desc: Lint markdown files
|
2025-10-25 09:40:44 +02:00
|
|
|
deps:
|
|
|
|
|
- deps:ensure-npm
|
2025-10-23 14:13:31 +02:00
|
|
|
cmds:
|
|
|
|
|
- "{{.NPM_CMD}} run test:markdown"
|
|
|
|
|
|
|
|
|
|
test:html:
|
|
|
|
|
desc: Validate HTML
|
2025-10-25 09:40:44 +02:00
|
|
|
deps:
|
|
|
|
|
- deps:ensure-npm
|
2025-10-23 14:13:31 +02:00
|
|
|
cmds:
|
|
|
|
|
- "{{.NPM_CMD}} run test:html"
|
|
|
|
|
|
|
|
|
|
test:links:
|
2025-11-16 13:32:10 +01:00
|
|
|
desc: Check links (skips legacy content)
|
2025-10-23 14:13:31 +02:00
|
|
|
cmds:
|
2025-11-16 13:32:10 +01:00
|
|
|
- |
|
|
|
|
|
# Move legacy dirs outside public temporarily
|
|
|
|
|
mkdir -p /tmp/htmltest-backup-$$
|
|
|
|
|
if [ -d "public/docs-old" ]; then mv public/docs-old /tmp/htmltest-backup-$$/; fi
|
|
|
|
|
if [ -d "public/blog" ]; then mv public/blog /tmp/htmltest-backup-$$/; fi
|
|
|
|
|
if [ -d "public/_print/docs-old" ]; then mv public/_print/docs-old /tmp/htmltest-backup-$$/docs-old-print; fi
|
|
|
|
|
|
|
|
|
|
# Run htmltest
|
|
|
|
|
htmltest || EXIT_CODE=$?
|
|
|
|
|
|
|
|
|
|
# Restore directories
|
|
|
|
|
if [ -d "/tmp/htmltest-backup-$$/docs-old" ]; then mv /tmp/htmltest-backup-$$/docs-old public/; fi
|
|
|
|
|
if [ -d "/tmp/htmltest-backup-$$/blog" ]; then mv /tmp/htmltest-backup-$$/blog public/; fi
|
|
|
|
|
if [ -d "/tmp/htmltest-backup-$$/docs-old-print" ]; then mv /tmp/htmltest-backup-$$/docs-old-print public/_print/docs-old; fi
|
|
|
|
|
rm -rf /tmp/htmltest-backup-$$
|
|
|
|
|
|
|
|
|
|
# Exit with the original exit code
|
|
|
|
|
exit ${EXIT_CODE:-0}
|
2025-10-23 14:13:31 +02:00
|
|
|
|
2025-11-07 11:50:17 +01:00
|
|
|
# LikeC4 tasks
|
|
|
|
|
likec4:generate:
|
|
|
|
|
desc: Generate LikeC4 webcomponent (includes all architecture projects)
|
|
|
|
|
cmds:
|
2025-11-12 00:33:03 +01:00
|
|
|
- npx likec4 codegen webcomponent --webcomponent-prefix likec4 --outfile static/js/likec4-webcomponent.js resources/edp-likec4 resources/doc-likec4
|
2025-11-07 11:50:17 +01:00
|
|
|
|
2025-11-07 15:03:58 +01:00
|
|
|
likec4:validate:
|
|
|
|
|
desc: Validate LikeC4 models
|
|
|
|
|
cmds:
|
|
|
|
|
- echo "Validating EDP architecture models..."
|
2025-11-11 23:20:32 +01:00
|
|
|
- npx likec4 validate --ignore-layout resources/edp-likec4
|
2025-11-07 15:03:58 +01:00
|
|
|
- echo "Validating Documentation platform models..."
|
2025-11-11 23:20:32 +01:00
|
|
|
- npx likec4 validate --ignore-layout resources/doc-likec4
|
2025-11-07 15:03:58 +01:00
|
|
|
- echo "✓ All LikeC4 models validated successfully"
|
|
|
|
|
|
|
|
|
|
likec4:validate:layout:
|
|
|
|
|
desc: Validate LikeC4 models including layout
|
|
|
|
|
cmds:
|
|
|
|
|
- echo "Validating EDP architecture models (including layout)..."
|
2025-11-11 23:20:32 +01:00
|
|
|
- npx likec4 validate resources/edp-likec4
|
2025-11-07 15:03:58 +01:00
|
|
|
- echo "Validating Documentation platform models (including layout)..."
|
2025-11-11 23:20:32 +01:00
|
|
|
- npx likec4 validate resources/doc-likec4
|
2025-11-07 15:03:58 +01:00
|
|
|
- echo "✓ All LikeC4 models and layouts validated successfully"
|
|
|
|
|
|
|
|
|
|
likec4:update:
|
|
|
|
|
desc: Update LikeC4 to latest version
|
|
|
|
|
cmds:
|
2025-11-11 23:20:32 +01:00
|
|
|
- npm update likec4 --prefix resources/edp-likec4
|
|
|
|
|
- npm update likec4 --prefix resources/doc-likec4
|
2025-11-07 15:03:58 +01:00
|
|
|
- echo "✓ LikeC4 updated in both projects"
|
|
|
|
|
|
2025-10-23 14:13:31 +02:00
|
|
|
# Development tasks
|
2025-10-25 09:40:44 +02:00
|
|
|
deps:ensure-npm:
|
|
|
|
|
desc: Ensure npm dependencies are installed
|
|
|
|
|
sources:
|
|
|
|
|
- package.json
|
|
|
|
|
- package-lock.json
|
|
|
|
|
generates:
|
|
|
|
|
- node_modules/.package-lock.json
|
|
|
|
|
cmds:
|
2025-11-19 14:47:14 +01:00
|
|
|
- "{{.NPM_CMD}} ci"
|
2025-10-25 09:40:44 +02:00
|
|
|
status:
|
|
|
|
|
- test -d node_modules
|
|
|
|
|
|
2025-10-23 14:13:31 +02:00
|
|
|
deps:install:
|
|
|
|
|
desc: Install all dependencies
|
|
|
|
|
cmds:
|
2025-11-19 14:47:14 +01:00
|
|
|
- "{{.NPM_CMD}} ci"
|
2025-10-23 14:13:31 +02:00
|
|
|
- "{{.HUGO_CMD}} mod get -u"
|
|
|
|
|
- "{{.HUGO_CMD}} mod tidy"
|
|
|
|
|
|
|
|
|
|
deps:update:
|
|
|
|
|
desc: Update dependencies
|
|
|
|
|
cmds:
|
|
|
|
|
- devbox update
|
|
|
|
|
- "{{.NPM_CMD}} update"
|
|
|
|
|
- "{{.HUGO_CMD}} mod get -u"
|
|
|
|
|
|
|
|
|
|
# CI/CD
|
|
|
|
|
ci:
|
|
|
|
|
desc: Run CI pipeline locally
|
|
|
|
|
deps:
|
|
|
|
|
- test
|
2025-10-23 17:04:28 +02:00
|
|
|
|
|
|
|
|
build:oci-image:
|
|
|
|
|
desc: Build OCI/Docker image with versions from .env.versions
|
|
|
|
|
cmds:
|
|
|
|
|
- |
|
|
|
|
|
set -a
|
|
|
|
|
source .env.versions
|
|
|
|
|
set +a
|
|
|
|
|
echo "Building OCI image with versions:"
|
|
|
|
|
echo " NODE_VERSION=${NODE_VERSION}"
|
|
|
|
|
echo " GO_VERSION=${GO_VERSION}"
|
|
|
|
|
echo " HUGO_VERSION=${HUGO_VERSION}"
|
|
|
|
|
docker build --network=host \
|
|
|
|
|
--build-arg NODE_VERSION=${NODE_VERSION} \
|
|
|
|
|
--build-arg GO_VERSION=${GO_VERSION} \
|
|
|
|
|
--build-arg HUGO_VERSION=${HUGO_VERSION} \
|
|
|
|
|
-t ipceicis-developerframework:latest \
|
|
|
|
|
-t ipceicis-developerframework:$(git rev-parse --short HEAD) \
|
|
|
|
|
.
|
|
|
|
|
|
|
|
|
|
test:oci-image:
|
|
|
|
|
desc: Test the built OCI image
|
|
|
|
|
deps:
|
|
|
|
|
- build:oci-image
|
|
|
|
|
cmds:
|
|
|
|
|
- |
|
|
|
|
|
echo "Starting container on port 8080..."
|
|
|
|
|
docker run -d -p 8080:80 --name hugo-test ipceicis-developerframework:latest
|
|
|
|
|
sleep 2
|
|
|
|
|
echo "Testing endpoint..."
|
|
|
|
|
curl -f http://localhost:8080 > /dev/null && echo "✓ Container is running and responding" || echo "✗ Container test failed"
|
|
|
|
|
echo "Cleaning up..."
|
|
|
|
|
docker stop hugo-test
|
|
|
|
|
docker rm hugo-test
|