mirror of
https://github.com/unraid/api.git
synced 2026-05-03 21:50:20 -05:00
feat: split plugin builds
<!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Introduced containerized plugin deployment support with updated Docker Compose configurations. - Added continuous build watch modes for API, web, and UI components for smoother development iterations. - Added a new job for API testing in the CI/CD workflow. - Added a new shell script to determine the local host's IP address for Docker configurations. - Introduced a new entry point and HTTP server setup in the plugin's Docker environment. - Added new scripts for building and watching plugin changes in real-time. - Added a new script for building the project in watch mode for the API and UI components. - **Improvements** - Streamlined the plugin installation process and refined release workflows for a more reliable user experience. - Enhanced overall CI/CD pipelines to ensure efficient, production-ready deployments. - Updated artifact upload paths and job definitions for clarity and efficiency. - Implemented new utility functions for better URL management and changelog generation. - Modified the `.dockerignore` file to ignore all contents within the `node_modules` directory. - Added new constants and functions for managing plugin paths and configurations. - Updated the build process in the Dockerfile to focus on release operations. - **Tests** - Expanded automated testing to validate environment setups and build stability, ensuring higher reliability during updates. - Introduced new test suites for validating plugin environment setups and configurations. - Added tests for validating environment variables and handling of manifest files. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Michael Datelle <mdatelle@icloud.com> Co-authored-by: mdatelle <mike@datelle.net> Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> Co-authored-by: Pujit Mehrotra <pujit@lime-technology.com>
This commit is contained in:
+14
-16
@@ -3,11 +3,11 @@
|
||||
"version": "4.1.3",
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"commander": "^13.1.0",
|
||||
"conventional-changelog": "^6.0.0",
|
||||
"date-fns": "^4.1.0",
|
||||
"glob": "^11.0.1",
|
||||
"html-sloppy-escaper": "^0.1.0",
|
||||
"http-server": "^14.1.1",
|
||||
"semver": "^7.7.1",
|
||||
"tsx": "^4.19.2",
|
||||
"zod": "^3.24.1",
|
||||
@@ -17,29 +17,27 @@
|
||||
"license": "GPL-2.0-only",
|
||||
"scripts": {
|
||||
"// Build scripts": "",
|
||||
"build": "tsx scripts/build-plugin-and-txz.ts",
|
||||
"build": "pnpm run build:txz && pnpm run build:plugin",
|
||||
"build:txz": "tsx builder/build-txz.ts",
|
||||
"build:plugin": "tsx builder/build-plugin.ts",
|
||||
"build:validate": "npm run env:validate && npm run build",
|
||||
"build:watcher": "nodemon --watch 'source/**/*' --exec 'pnpm run build'",
|
||||
"// Docker commands": "",
|
||||
"docker:build": "docker build -t plugin-builder .",
|
||||
"docker:run": "docker run --env-file .env -v $(pwd)/:/app/ -v $(cd ../ && pwd)/.git:/app/.git -v $(pwd)/source:/app/source -v $(pwd)/scripts:/app/scripts plugin-builder",
|
||||
"docker:build-and-run": "npm run docker:build && npm run docker:run",
|
||||
"http-server": "http-server ./deploy/release/ -p 8080 --cors",
|
||||
"build:watch": "./scripts/dc.sh pnpm run build:watcher",
|
||||
"docker:build": "docker compose build",
|
||||
"docker:run": "./scripts/dc.sh /bin/bash",
|
||||
"docker:build-and-run": "pnpm run docker:build && pnpm run docker:run",
|
||||
"// Environment management": "",
|
||||
"env:init": "cp .env.example .env",
|
||||
"env:validate": "test -f .env || (echo 'Error: .env file missing. Run npm run env:init first' && exit 1)",
|
||||
"env:clean": "rm -f .env",
|
||||
"// Composite commands": "",
|
||||
"start": "npm run env:validate && npm run docker:build-and-run",
|
||||
"test": "npm run env:init && npm run start && npm run env:clean",
|
||||
"// Watchers for Other Changes": "",
|
||||
"wc:clean": "rm -r ./source/dynamix.unraid.net/usr/local/emhttp/plugins/dynamix.my.servers/unraid-components/*",
|
||||
"wc:watch": "cpx -w -v \"../web/.nuxt/nuxt-custom-elements/dist/unraid-components/**/*\" ./source/dynamix.unraid.net/usr/local/emhttp/plugins/dynamix.my.servers/unraid-components",
|
||||
"api:watch": "cpx -w -C -v \"../api/deploy/pack/**/*\" ./source/dynamix.unraid.net/usr/local/unraid-api",
|
||||
"ui:watch": "cpx -w -v \"../unraid-ui/dist/**/*\" ./source/dynamix.unraid.net/usr/local/emhttp/plugins/dynamix.my.servers/unraid-components",
|
||||
"watch:all": "npm run wc:clean && npm run wc:watch & npm run api:watch & npm run ui:watch"
|
||||
"// Testing": "",
|
||||
"test": "vitest"
|
||||
},
|
||||
"devDependencies": {
|
||||
"cpx2": "^8.0.0"
|
||||
"http-server": "^14.1.1",
|
||||
"nodemon": "^3.1.7",
|
||||
"vitest": "^3.0.7"
|
||||
},
|
||||
"packageManager": "pnpm@10.4.1"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user