# https://taskfile.dev #Called by the vnbuild system to produce builds for my website #https://www.vaughnnugent.com/resources/software version: "3" includes: install: taskfile: install.taskfile.yaml vars: CORE_VERSION: 'e07537a3dde8e16100ef1bcc2a54f9ade8ae856f' ESSENTIALS_VERSION: 'a7cf7c8987b8847984629293d8eb27908f3de3dd' CACHE_VERSION: '49c3641def5ae1b7557ed61ed7bb28bbf425ccc9' USERS_VERSION: 'cbe49da211039957b431b307a0cb2c3a20bd2c10' SESSION_VERSION: '9c8da6ea8fabe1d752bb28fd5eaeeb0b1d06d94d' EXTENSIONS_VERSION: '40c634b0f37ce9922dbc32c86e26d5a771daeca3' tasks: all: deps: - install-rpmalloc - install-compressor-lib - install-argon2-lib - install-compression - install-sqlite cmds: - task: install-accounts - task: install-router - task: install-sessions - task: install-vncache - task: install-vncache-sessions - task: install-users - echo "Installing and configuring plugins and UI" - task: build-bookmarks build-bookmarks: cmds: #build front-end - cd ../front-end && npm install && npm run build #move dist files to web root - 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/SimpleBookmark -Force" #copy the plugin output - powershell -Command "cp -Recurse -Force ../back-end/src/bin/release/net8.0/publish/* plugins/SimpleBookmark/" install-accounts: cmds: #install accounts 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: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: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: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: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-sqlite: cmds: #install SQLite asset package - task: install:install vars: PROJECT_NAME: 'VNLib.Plugins.Extensions.Loading.Sql.SQLite' MODULE_NAME: "VNLib.Plugins.Extensions" FILE_NAME: "release.tgz" 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}}' - cd 'lib/vnlib_compress' && powershell rm package.json install-argon2-lib: cmds: #install the argon2 binary for Windows - task: install:install vars: PROJECT_NAME: 'phc-winner-argon2' MODULE_NAME: "VNLib.Core" 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:install vars: PROJECT_NAME: 'phc-winner-argon2' MODULE_NAME: "VNLib.Core" FILE_NAME: "src.tgz" DIR: './lib/argon2' VERSION: '{{.CORE_VERSION}}' #remove unneeded files - for: [ man, latex, kats, argon2-specs.pdf, package.json ] cmd: powershell -Command "rm ./lib/argon2/{{.ITEM}} -Recurse" ignore_error: true install-rpmalloc: cmds: #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}}'