diff options
Diffstat (limited to 'ci/plugins.taskfile.yaml')
-rw-r--r-- | ci/plugins.taskfile.yaml | 162 |
1 files changed, 115 insertions, 47 deletions
diff --git a/ci/plugins.taskfile.yaml b/ci/plugins.taskfile.yaml index d67c56e..dda3838 100644 --- a/ci/plugins.taskfile.yaml +++ b/ci/plugins.taskfile.yaml @@ -5,132 +5,200 @@ version: "3" +includes: + install: + taskfile: install.taskfile.yaml + vars: + CORE_VERSION: '1b590c2517fef110564943ed8a10edd11fa758b0' + ESSENTIALS_VERSION: '451091e93b5feee7a5e01d3a81f5d63efa7ea8be' + CACHE_VERSION: '930980a1e6b5db24dd4d8beeb115e4279ea79ee2' + USERS_VERSION: '6d48be92c39d0046c5d827fb86af7ea1f3877e69' + SESSION_VERSION: 'f2dedded2a8646273c4dd13013b8334d64e02d6f' + EXTENSIONS_VERSION: '1350c983c371fdd6a93596c8474345f9168284e1' tasks: all: + deps: + - install-rpmalloc + - install-compressor-lib + - install-argon2-lib + - install-compression + - install-sqlite + - install-router + - install-accounts + - install-sessions + - install-vncache + - install-vncache-sessions + - install-users cmds: + - echo "Installing and configuring plugins and UI" - - task: install-accounts - - task: install-sessions - - task: install-vncache - - task: install-vncache-sessions - - task: install-router - - task: install-users - - task: install-argon2-lib - - task: build-cmnext - - build-cmnext: + - task: build-proj + + build-proj: cmds: - #build js libraries - - cd ../lib/admin && npm install && npm run build - - cd ../front-end && npm install && npm run build + #build front-end + - cd ../front-end && task ci-build #move dist files to web root - - powershell -Command "cp -Recurse -Force ../front-end/dist {{.USER_WORKING_DIR}}" + - cmd: powershell -Command "cp -Recurse -Force ../front-end/dist {{.USER_WORKING_DIR}}" #build the plugin - cmd: cd ../back-end/src && task build - - powershell -Command "mkdir plugins/CMNext -Force" + - powershell -Command "mkdir plugins/{{.PROJECT_NAME}} -Force" #copy the plugin output - - powershell -Command "cp -Recurse -Force ../back-end/src/bin/release/net8.0/publish/* plugins/CMNext/" + - powershell -Command "cp -Recurse -Force ../back-end/src/bin/release/net8.0/publish/* plugins/{{.PROJECT_NAME}}/" install-accounts: cmds: #install accounts plugin - - task: install-plugin + - task: install:install vars: PROJECT_NAME: 'VNLib.Plugins.Essentials.Accounts' MODULE_NAME: "Plugins.Essentials" FILE_NAME: "release.tgz" DIR: './plugins/Essentials.Accounts' + VERSION: '{{.ESSENTIALS_VERSION}}' install-router: cmds: #install router plugin - - task: install-plugin + - task: install:install vars: PROJECT_NAME: 'VNLib.Plugins.Essentials.Content.Routing' MODULE_NAME: "Plugins.Essentials" FILE_NAME: "release.tgz" DIR: './plugins/PageRouter' + VERSION: '{{.ESSENTIALS_VERSION}}' install-sessions: cmds: #install sessions plugin - - task: install-plugin + - task: install:install vars: PROJECT_NAME: 'SessionProvider' MODULE_NAME: "VNLib.Plugins.Sessions" FILE_NAME: "release.tgz" DIR: './plugins/SessionProvider' + VERSION: '{{.SESSION_VERSION}}' + + install-vncache-sessions: + cmds: + #install vncache-web-sessions plugin + - task: install:install + vars: + PROJECT_NAME: 'VNLib.Plugins.Sessions.VNCache' + MODULE_NAME: "VNLib.Plugins.Sessions" + FILE_NAME: "release.tgz" + DIR: './plugins/assets/VNLib.Plugins.Sessions.VNCache' + VERSION: '{{.SESSION_VERSION}}' install-users: cmds: #install users plugin - - task: install-plugin + - task: install:install vars: PROJECT_NAME: 'VNLib.Plugins.Essentials.Users' MODULE_NAME: "VNLib.Plugins.Essentials.Users" FILE_NAME: "release.tgz" DIR: './plugins/assets/VNLib.Plugins.Essentials.Users' + VERSION: '{{.USERS_VERSION}}' install-vncache: cmds: #install vncache global cache provider plugin - - task: install-plugin + - task: install:install vars: PROJECT_NAME: 'VNLib.Data.Caching.Providers.VNCache' MODULE_NAME: "VNLib.Data.Caching" FILE_NAME: "release.tgz" DIR: './plugins/assets/VNLib.Data.Caching.Providers.VNCache' + VERSION: '{{.CACHE_VERSION}}' - install-vncache-sessions: + install-sqlite: cmds: - #install vncache-web-sessions plugin - - task: install-plugin + #install SQLite asset package + - task: install:install vars: - PROJECT_NAME: 'VNLib.Plugins.Sessions.VNCache' - MODULE_NAME: "VNLib.Plugins.Sessions" + PROJECT_NAME: 'VNLib.Plugins.Extensions.Loading.Sql.SQLite' + MODULE_NAME: "VNLib.Plugins.Extensions" FILE_NAME: "release.tgz" - DIR: './plugins/assets/VNLib.Plugins.Sessions.VNCache' + DIR: './plugins/assets/VNLib.Plugins.Extensions.Loading.Sql.SQLite' + VERSION: '{{.EXTENSIONS_VERSION}}' + + install-compression: + cmds: + #install compression plugin + - task: install:install + vars: + PROJECT_NAME: 'VNLib.Net.Compression' + MODULE_NAME: "VNLib.Core" + FILE_NAME: "release.tgz" + DIR: './lib/vnlib.net.compression' + VERSION: '{{.CORE_VERSION}}' + + install-compressor-lib: + cmds: + #install the compressor binary for Windows + - task: install:install + vars: + PROJECT_NAME: 'vnlib_compress' + MODULE_NAME: "VNLib.Core" + FILE_NAME: "msvc-x64-release-vnlib_compress.tgz" + DIR: './lib/vnlib_compress' + VERSION: '{{.CORE_VERSION}}' + + #install compressor plugin + - task: install:install + vars: + PROJECT_NAME: 'vnlib_compress' + MODULE_NAME: "VNLib.Core" + FILE_NAME: "src.tgz" + DIR: './lib/vnlib_compress' + VERSION: '{{.CORE_VERSION}}' install-argon2-lib: cmds: #install the argon2 binary for Windows - - task: install-plugin + - task: install:install vars: PROJECT_NAME: 'phc-winner-argon2' MODULE_NAME: "VNLib.Core" - FILE_NAME: "win-x64-release-Argon2.tgz" + FILE_NAME: "msvc-x64-release-Argon2.tgz" DIR: './lib/argon2' + VERSION: '{{.CORE_VERSION}}' #install the argon2 source code package for Linux and Mac - - task: install-plugin + - task: install:install vars: PROJECT_NAME: 'phc-winner-argon2' MODULE_NAME: "VNLib.Core" FILE_NAME: "src.tgz" DIR: './lib/argon2' + VERSION: '{{.CORE_VERSION}}' #remove unneeded files - - cmd: powershell -Command "rm ./lib/argon2/man -Recurse" - ignore_error: true - - cmd: powershell -Command "rm ./lib/argon2/latex -Recurse" - ignore_error: true - - cmd: powershell -Command "rm ./lib/argon2/kats -Recurse" - ignore_error: true - - cmd: powershell -Command "rm ./lib/argon2/argon2-specs.pdf" - ignore_error: true - - cmd: powershell -Command "rm ./lib/argon2/package.json" + - for: [ man, latex, kats, argon2-specs.pdf ] + cmd: powershell -Command "rm ./lib/argon2/{{.ITEM}} -Recurse" ignore_error: true - install-plugin: + install-rpmalloc: cmds: - #make the plugin directory - - cmd: powershell -Command "mkdir {{.DIR}} -Force" - ignore_error: true - - cd {{.DIR}} && powershell "{{.USER_WORKING_DIR}}/install.ps1" -BaseUrl {{.BUILDS_URL}} -ModuleName {{.MODULE_NAME}} -ProjectName {{.PROJECT_NAME}} -FileName {{.FILE_NAME}} - - cd {{.DIR}} && tar -xzf {{.FILE_NAME}} - #remove the archive file - - cd {{.DIR}} && powershell -Command "rm {{.FILE_NAME}}"
\ No newline at end of file + #install the rpmalloc source code package for Linux and Mac + - task: install:install + vars: + PROJECT_NAME: 'vnlib_rpmalloc' + MODULE_NAME: "VNLib.Core" + FILE_NAME: "src.tgz" + DIR: './lib/vnlib_rpmalloc' + VERSION: '{{.CORE_VERSION}}' + + #install the rpmalloc binary for Windows + - task: install:install + vars: + PROJECT_NAME: 'vnlib_rpmalloc' + MODULE_NAME: "VNLib.Core" + FILE_NAME: "msvc-x64-release-vnlib_rpmalloc.tgz" + DIR: './lib/vnlib_rpmalloc' + VERSION: '{{.CORE_VERSION}}' |