Removes all cd usage for likec4 tasks and passes the resource directory as argument to npx likec4. Ensures consistent execution and easier maintenance.
193 lines
4.7 KiB
YAML
193 lines
4.7 KiB
YAML
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
|
|
deps:
|
|
- deps:ensure-npm
|
|
- build:generate-info
|
|
cmds:
|
|
- "{{.HUGO_CMD}} --gc --minify"
|
|
|
|
build:dev:
|
|
desc: Build Hugo site for development
|
|
deps:
|
|
- deps:ensure-npm
|
|
- build:generate-info
|
|
cmds:
|
|
- "{{.HUGO_CMD}}"
|
|
|
|
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
|
|
|
|
serve:
|
|
desc: Start Hugo dev server
|
|
deps:
|
|
- deps:ensure-npm
|
|
- build:generate-info
|
|
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
|
|
deps:
|
|
- test:build
|
|
- test:markdown
|
|
- test:html
|
|
- test:links
|
|
- likec4:validate
|
|
|
|
test:quick:
|
|
desc: Run quick tests (without link check)
|
|
deps:
|
|
- test:build
|
|
- test:markdown
|
|
- likec4:validate
|
|
|
|
test:build:
|
|
desc: Test Hugo build
|
|
deps:
|
|
- deps:ensure-npm
|
|
- build:generate-info
|
|
cmds:
|
|
- "{{.HUGO_CMD}} --gc --minify --logLevel info"
|
|
|
|
test:markdown:
|
|
desc: Lint markdown files
|
|
deps:
|
|
- deps:ensure-npm
|
|
cmds:
|
|
- "{{.NPM_CMD}} run test:markdown"
|
|
|
|
test:html:
|
|
desc: Validate HTML
|
|
deps:
|
|
- deps:ensure-npm
|
|
cmds:
|
|
- "{{.NPM_CMD}} run test:html"
|
|
|
|
test:links:
|
|
desc: Check links
|
|
cmds:
|
|
- htmltest
|
|
|
|
# LikeC4 tasks
|
|
likec4:generate:
|
|
desc: Generate LikeC4 webcomponent (includes all architecture projects)
|
|
cmds:
|
|
- npx likec4 codegen webcomponent --webcomponent-prefix likec4 --outfile static/js/likec4-webcomponent.js resources/edp-likec4
|
|
|
|
likec4:validate:
|
|
desc: Validate LikeC4 models
|
|
cmds:
|
|
- echo "Validating EDP architecture models..."
|
|
- npx likec4 validate --ignore-layout resources/edp-likec4
|
|
- echo "Validating Documentation platform models..."
|
|
- npx likec4 validate --ignore-layout resources/doc-likec4
|
|
- echo "✓ All LikeC4 models validated successfully"
|
|
|
|
likec4:validate:layout:
|
|
desc: Validate LikeC4 models including layout
|
|
cmds:
|
|
- echo "Validating EDP architecture models (including layout)..."
|
|
- npx likec4 validate resources/edp-likec4
|
|
- echo "Validating Documentation platform models (including layout)..."
|
|
- npx likec4 validate resources/doc-likec4
|
|
- echo "✓ All LikeC4 models and layouts validated successfully"
|
|
|
|
likec4:update:
|
|
desc: Update LikeC4 to latest version
|
|
cmds:
|
|
- npm update likec4 --prefix resources/edp-likec4
|
|
- npm update likec4 --prefix resources/doc-likec4
|
|
- echo "✓ LikeC4 updated in both projects"
|
|
|
|
# Development tasks
|
|
deps:ensure-npm:
|
|
desc: Ensure npm dependencies are installed
|
|
sources:
|
|
- package.json
|
|
- package-lock.json
|
|
generates:
|
|
- node_modules/.package-lock.json
|
|
cmds:
|
|
- "{{.NPM_CMD}} install"
|
|
status:
|
|
- test -d node_modules
|
|
|
|
deps:install:
|
|
desc: Install all dependencies
|
|
cmds:
|
|
- "{{.NPM_CMD}} install"
|
|
- "{{.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
|
|
|
|
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
|