particle-os-schema/.forgejo/workflows/ci.yml
Workflow config file is invalid. Please check your config file: yaml: line 65: could not find expected ':'
2025-08-26 10:13:49 -07:00

142 lines
3.2 KiB
YAML

---
name: Blue Build Schema CI/CD
on:
push:
branches: [main, develop]
pull_request:
branches: [main]
workflow_dispatch:
env:
NODE_VERSION: "20"
DEBIAN_FRONTEND: noninteractive
jobs:
build-and-package:
name: Build and Package Node.js Schemas
runs-on: ubuntu-latest
container:
image: node:20-bullseye
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Node.js environment
run: |
node --version
npm --version
- name: Install build dependencies
run: |
apt-get update
apt-get install -y \
build-essential \
devscripts \
debhelper \
git \
ca-certificates
- name: Install Node.js dependencies
run: |
npm ci
if [ -f package.json ]; then
npm run build || echo "No build script found"
fi
- name: Create debian directory
run: |
mkdir -p debian
cat > debian/control << EOF
Source: blue-build-schema
Section: javascript
Priority: optional
Maintainer: Blue Build Team <team@blue-build.org>
Build-Depends: debhelper (>= 13), nodejs, npm, git, ca-certificates
Standards-Version: 4.6.2
Package: blue-build-schema
Architecture: all
Depends: \${misc:Depends}, nodejs
Description: Blue Build Schema Definitions
Node.js schemas for the blue-build ecosystem including
package schemas, metadata schemas, and validation schemas.
EOF
cat > debian/rules << EOF
#!/usr/bin/make -f
%:
dh \$@
override_dh_auto_install:
dh_auto_install
mkdir -p debian/blue-build-schema/usr/lib/node_modules/blue-build-schema
cp -r *.py debian/blue-build-schema/usr/lib/node_modules/blue-build-schema/
if [ -d node_modules ]; then
cp -r node_modules debian/blue-build-schema/usr/lib/node_modules/blue-build-schema/
fi
EOF
cat > debian/changelog << EOF
blue-build-schema (1.0.0-1) unstable; urgency=medium
* Initial release
* Blue Build schema definitions implementation
-- Blue Build Team <team@blue-build.org> $(date -R)
EOF
cat > debian/compat << EOF
13
EOF
chmod +x debian/rules
- name: Build Debian package
run: |
dpkg-buildpackage -us -uc -b
ls -la ../*.deb
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: blue-build-schema-deb
path: ../*.deb
retention-days: 30
test:
name: Test Node.js Schemas
runs-on: ubuntu-latest
container:
image: node:20-bullseye
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Node.js environment
run: |
node --version
npm --version
- name: Install Node.js dependencies
run: npm ci
- name: Run Node.js tests
run: |
if [ -f package.json ] && npm run test; then
npm test
else
echo "No test script found, skipping tests"
fi
- name: Test schema files
run: |
ls -la *.py
echo "Schema files present:"
for file in *.py; do
if [ -f "$file" ]; then
echo " - $file"
fi
done