Frontend + backend sample package that follows the package guide and neo-cat style artifact layout.
Package name is derived from the git origin repository name.
- Shell:
./scripts/project-name.sh - PowerShell:
./scripts/project-name.ps1
Example:
https://github.com/max-kim98/neo-sample-package.git->neo-sample-package
The resolved project name is used for:
- backend binary names:
.backend/<project-name>and.backend/<project-name>.exe - frontend homepage:
/web/apps/<project-name>/ /api/versionresponsename
Version is resolved from a single source using:
- Shell:
./scripts/version.sh - PowerShell:
./scripts/version.ps1
Resolution order:
PACKAGE_VERSIONenvironment variable- current tag/ref (
vX.Y.ZorX.Y.Z) - fallback
0.0.0-dev
/api/version response version is injected at build time through go build -ldflags.
GET /api/healthGET /api/versionPOST /api/echoGET /api/itemsPOST /api/itemsDELETE /api/items/{id}
Final install output is frontend/build/ with these required files:
frontend/build/index.htmlfrontend/build/.backend.ymlfrontend/build/.backend/<project-name>frontend/build/.backend/<project-name>.exefrontend/build/.backend/start.shfrontend/build/.backend/stop.shfrontend/build/.backend/start.cmdfrontend/build/.backend/stop.cmd
go test ./backend -count=1cd frontend
npm install --no-audit --no-fund
CI=true npm test./scripts/package.sh
./scripts/smoke.shTag-style version override example:
PACKAGE_VERSION=v1.2.3 ./scripts/package.sh
PACKAGE_VERSION=v1.2.3 ./scripts/smoke.shOn Windows:
scripts\\package.cmd
powershell -ExecutionPolicy Bypass -File scripts\\smoke.ps1- CI workflow:
.github/workflows/ci.yml- triggers:
pushtomain,pull_request - matrix:
ubuntu-latest,macos-latest,windows-latest - runs backend tests, frontend tests, package validation, smoke tests
- triggers:
- Release workflow:
.github/workflows/release.yml- trigger: version tags (
v*orx.y.z) - validates tag/version consistency before build
- runs verification first, then creates GitHub release
- trigger: version tags (
- create work branches as
issue-<number> - open a PR per issue branch
- merge only after CI passes
Pipeline must fail when:
- release tag and resolved package version do not match
- smoke test
/api/versiondoes not match resolved version - packaging output contract is violated