aboutsummaryrefslogtreecommitdiff
path: root/ci
diff options
context:
space:
mode:
Diffstat (limited to 'ci')
-rw-r--r--ci/container/Dockerfile1
-rw-r--r--ci/container/Taskfile.yaml14
-rw-r--r--ci/container/config-templates/config-template.json3
-rw-r--r--ci/container/docker-compose.yaml1
-rw-r--r--ci/install.ps111
-rw-r--r--ci/install.taskfile.yaml2
-rw-r--r--ci/plugins.taskfile.yaml58
-rw-r--r--ci/release.taskfile.yaml6
-rw-r--r--ci/taskfile.yaml6
9 files changed, 60 insertions, 42 deletions
diff --git a/ci/container/Dockerfile b/ci/container/Dockerfile
index f5ac798..b7898d4 100644
--- a/ci/container/Dockerfile
+++ b/ci/container/Dockerfile
@@ -66,6 +66,7 @@ ENV MAX_LOGIN_ATTEMPS=10
#HC Vault
ENV HC_VAULT_ADDR=""
ENV HC_VAULT_TOKEN=""
+ENV HC_VAULT_TRUST_CERT=false
#VNCACHE (default to memory only)
ENV CACHE_ASM_PATH=VNLib.Data.Caching.Providers.VNCache.dll
diff --git a/ci/container/Taskfile.yaml b/ci/container/Taskfile.yaml
index 557e48d..69dff71 100644
--- a/ci/container/Taskfile.yaml
+++ b/ci/container/Taskfile.yaml
@@ -51,9 +51,6 @@ tasks:
- task: prune-sql-runtimes
- #install rpmalloc
- - task: install-rpmalloc-lib
-
postbuild_success:
cmds:
#tar up the build directory and move it to the output bin directory
@@ -66,17 +63,6 @@ tasks:
cmds:
- cmd: powershell -Command "rm -Recurse -Force ./build"
- install-rpmalloc-lib:
- internal: true
- cmds:
- #install compressor plugin
- - task: install:install
- vars:
- PROJECT_NAME: 'vnlib_rpmalloc'
- MODULE_NAME: "VNLib.Core"
- FILE_NAME: "src.tgz"
- DIR: './build/app/lib/vnlib_rpmalloc'
-
setup-container-image:
internal: true
cmds:
diff --git a/ci/container/config-templates/config-template.json b/ci/container/config-templates/config-template.json
index 10092dd..e226efb 100644
--- a/ci/container/config-templates/config-template.json
+++ b/ci/container/config-templates/config-template.json
@@ -109,7 +109,8 @@
//HASHICORP VAULT
"hashicorp_vault": {
"url": "${HC_VAULT_ADDR}",
- "token": "${HC_VAULT_TOKEN}"
+ "token": "${HC_VAULT_TOKEN}",
+ "trust_certificate": ${HC_VAULT_TRUST_CERT},
},
//SQL CONFIG
diff --git a/ci/container/docker-compose.yaml b/ci/container/docker-compose.yaml
index 03eb815..1ffee2f 100644
--- a/ci/container/docker-compose.yaml
+++ b/ci/container/docker-compose.yaml
@@ -23,6 +23,7 @@ services:
#HC Vault
HC_VAULT_ADDR: ""
HC_VAULT_TOKEN: ""
+ HC_VAULT_TRUST_CERT: "false"
#VNCACHE (default to memory only)
CACHE_ASM_PATH: "VNLib.Data.Caching.Providers.VNCache.dll"
MEMCACHE_ONLY: "true"
diff --git a/ci/install.ps1 b/ci/install.ps1
index 4c42c18..7a5c455 100644
--- a/ci/install.ps1
+++ b/ci/install.ps1
@@ -1,15 +1,12 @@
-param([String] $BaseUrl, [String] $ModuleName, [String] $ProjectName, [String]$FileName)
+param([String] $BaseUrl, [String] $ModuleName, [String] $ProjectName, [String]$FileName, [String]$Version)
-#get the latest file
-Invoke-WebRequest "$BaseUrl/$ModuleName/@latest" -OutFile latest.txt
-#read the file into a variable
-$latest = Get-Content latest.txt
+$_src = "$BaseUrl/$ModuleName/$Version/$ProjectName/$FileName"
#download the latest version
-Invoke-WebRequest "$BaseUrl/$ModuleName/$latest/$ProjectName/$FileName" -OutFile $FileName
+Invoke-WebRequest "$_src" -OutFile $FileName
#download latest sha256
-Invoke-WebRequest "$BaseUrl/$ModuleName/$latest/$ProjectName/$FileName.sha256" -OutFile "$FileName.sha256"
+Invoke-WebRequest "$_src.sha256" -OutFile "$FileName.sha256"
#verify the file
$hash = (Get-FileHash $FileName -Algorithm SHA256).Hash
diff --git a/ci/install.taskfile.yaml b/ci/install.taskfile.yaml
index e1624a3..898958b 100644
--- a/ci/install.taskfile.yaml
+++ b/ci/install.taskfile.yaml
@@ -13,7 +13,7 @@ tasks:
#make the plugin directory
- cmd: powershell -Command "mkdir {{.DIR}} -Force"
ignore_error: true
- - cd {{.DIR}} && powershell "{{ .PROJECT_DIR }}/install.ps1" -BaseUrl {{.BUILDS_URL}} -ModuleName {{.MODULE_NAME}} -ProjectName {{.PROJECT_NAME}} -FileName {{.FILE_NAME}}
+ - cd {{.DIR}} && powershell "{{ .PROJECT_DIR }}/install.ps1" -BaseUrl {{.BUILDS_URL}} -ModuleName {{.MODULE_NAME}} -ProjectName {{.PROJECT_NAME}} -FileName {{.FILE_NAME}} -Version {{.VERSION}}
- cd {{.DIR}} && tar -xzf {{.FILE_NAME}}
#remove the archive file
- cd {{.DIR}} && powershell -Command "rm {{.FILE_NAME}}" \ No newline at end of file
diff --git a/ci/plugins.taskfile.yaml b/ci/plugins.taskfile.yaml
index cab3d53..385890a 100644
--- a/ci/plugins.taskfile.yaml
+++ b/ci/plugins.taskfile.yaml
@@ -10,14 +10,20 @@ includes:
taskfile: install.taskfile.yaml
vars:
+ CORE_VERSION: 'e07537a3dde8e16100ef1bcc2a54f9ade8ae856f'
+ ESSENTIALS_VERSION: '27b487b6d0befdb2197a58ceadb1f1ac2b337786'
+ CACHE_VERSION: '49c3641def5ae1b7557ed61ed7bb28bbf425ccc9'
+ USERS_VERSION: '884ed18f900b59be30a6e51c2ec7b714ac860bfd'
+ SESSION_VERSION: '9c8da6ea8fabe1d752bb28fd5eaeeb0b1d06d94d'
+ EXTENSIONS_VERSION: '6da9d3b34fb0dd61cf8a81290e573e54851fcd07'
tasks:
all:
deps:
- install-rpmalloc
- - install-compressor-lib
- - install-argon2-lib
+ - install-compressor-lib
+ - install-argon2-lib
- install-compression
- install-sqlite
cmds:
@@ -52,6 +58,7 @@ tasks:
MODULE_NAME: "Plugins.Essentials"
FILE_NAME: "release.tgz"
DIR: './plugins/Essentials.Accounts'
+ VERSION: '{{.ESSENTIALS_VERSION}}'
install-router:
cmds:
@@ -62,6 +69,7 @@ tasks:
MODULE_NAME: "Plugins.Essentials"
FILE_NAME: "release.tgz"
DIR: './plugins/PageRouter'
+ VERSION: '{{.ESSENTIALS_VERSION}}'
install-sessions:
cmds:
@@ -72,6 +80,18 @@ tasks:
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:
@@ -82,6 +102,7 @@ tasks:
MODULE_NAME: "VNLib.Plugins.Essentials.Users"
FILE_NAME: "release.tgz"
DIR: './plugins/assets/VNLib.Plugins.Essentials.Users'
+ VERSION: '{{.USERS_VERSION}}'
install-vncache:
cmds:
@@ -92,16 +113,7 @@ tasks:
MODULE_NAME: "VNLib.Data.Caching"
FILE_NAME: "release.tgz"
DIR: './plugins/assets/VNLib.Data.Caching.Providers.VNCache'
-
- 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: '{{.CACHE_VERSION}}'
install-sqlite:
cmds:
@@ -112,6 +124,7 @@ tasks:
MODULE_NAME: "VNLib.Plugins.Extensions"
FILE_NAME: "release.tgz"
DIR: './plugins/assets/VNLib.Plugins.Extensions.Loading.Sql.SQLite'
+ VERSION: '{{.EXTENSIONS_VERSION}}'
install-compression:
cmds:
@@ -122,9 +135,19 @@ tasks:
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:
@@ -132,6 +155,9 @@ tasks:
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:
@@ -140,8 +166,9 @@ tasks:
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:install
@@ -150,6 +177,7 @@ tasks:
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 ]
@@ -165,11 +193,13 @@ tasks:
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: "win-x64-release-vnlib_rpmalloc.tgz"
+ FILE_NAME: "msvc-x64-release-vnlib_rpmalloc.tgz"
DIR: './lib/vnlib_rpmalloc'
+ VERSION: '{{.CORE_VERSION}}'
diff --git a/ci/release.taskfile.yaml b/ci/release.taskfile.yaml
index f6fdf62..4268f25 100644
--- a/ci/release.taskfile.yaml
+++ b/ci/release.taskfile.yaml
@@ -102,10 +102,10 @@ tasks:
internal: true
dir: 'lib/'
cmds:
- - cd vnlib_compress/ && task
#build the native compressor library for linux/mac
- - cmd: cd vnlib_compress/ && cp build/libvn_compress{{if eq OS "darwin"}}.dylib{{else}}.so{{end}} ../vnlib_compress.dll
+ - cmd: cd vnlib_compress/ && task && cp build/libvn_compress{{if eq OS "darwin"}}.dylib{{else}}.so{{end}} ../vnlib_compress.dll
platforms: [ linux, darwin ]
- - cmd: powershell -Command "cp vnlib_compress/build/Release/vnlib_compress.dll vnlib_compress.dll"
+ #windows now supports pre-compiled libs
+ - cmd: powershell cp vnlib_compress/vnlib_compress.dll vnlib_compress.dll
platforms: [ windows/amd64 ] \ No newline at end of file
diff --git a/ci/taskfile.yaml b/ci/taskfile.yaml
index 43e11a8..f9168b0 100644
--- a/ci/taskfile.yaml
+++ b/ci/taskfile.yaml
@@ -8,6 +8,7 @@ version: "3"
vars:
BUILDS_URL: https://www.vaughnnugent.com/public/resources/software/builds
SQLITE_OUT_DIR: "plugins/assets/VNLib.Plugins.Extensions.Loading.Sql.SQLite"
+ WEBSERVER_VERSION: 'ed0c71876ec04528e24e612ce723d3aed8971262'
includes:
install:
@@ -46,13 +47,14 @@ tasks:
- cmd : powershell -Command "mkdir webserver -Force"
ignore_error: true
- #clone the webserver (it's cross platform when using dotnet command)
+ #clone the webserver (it's cross platform when using dotnet command so just grab the linux version)
- task: install:install
vars:
PROJECT_NAME: 'VNLib.Webserver'
MODULE_NAME: "VNLib.Webserver"
FILE_NAME: "linux-x64-release.tgz"
DIR: 'webserver/'
+ VERSION: '{{.WEBSERVER_VERSION}}'
#remove the executable since its not needed
- cmd: cd webserver/ && powershell -Command "rm VNlib.WebServer"
@@ -73,7 +75,7 @@ tasks:
TARGET_OS: '{{.ITEM}}'
#cleanup unnecessary build files that clog up the pipeline
- - for: [ build, plugins, dist, lib ]
+ - for: [ build, plugins, dist, lib, webserver ]
cmd: powershell -Command "rm -Recurse '{{.ITEM}}'"
ignore_error: true