ce7cb702218693d08ea6d83464d2457c9250027c
This commit is contained in:
commit
34c5f8963c
1 changed files with 145336 additions and 0 deletions
64
services/mail-keys/k8s/delivery/build.fsx
Normal file
64
services/mail-keys/k8s/delivery/build.fsx
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
#load "projects.fsx"
|
||||
#load "image.fsx"
|
||||
|
||||
open System
|
||||
open System.IO
|
||||
open Contract
|
||||
open Image
|
||||
open Projects
|
||||
|
||||
let revision = Environment.GetEnvironmentVariable "SOURCE_REVISION"
|
||||
let project = Environment.GetEnvironmentVariable "TARGETS" |> decode<Target array> |> selectProject
|
||||
let source = "/source/repository/services/mail-keys"
|
||||
let working = directory "/output/working"
|
||||
|
||||
for path in Directory.EnumerateFiles(source, "*", SearchOption.AllDirectories) do
|
||||
let target = Path.Combine(working, Path.GetRelativePath(source, path))
|
||||
directory (Path.GetDirectoryName target) |> ignore
|
||||
File.Copy(path, target)
|
||||
|
||||
let environment =
|
||||
[ "HOME", "/tmp"; "PATH", "/toolchain/node/bin:/toolchain/usr/bin:/usr/bin:/bin"
|
||||
"LD_LIBRARY_PATH", "/toolchain/usr/lib"; "npm_config_cache", "/tmp/npm" ]
|
||||
|
||||
requireSuccess
|
||||
"/toolchain/usr/bin/busybox"
|
||||
[ "cp"; "-a"; "/toolchain/frontend/node_modules"; Path.Combine(working, "node_modules") ]
|
||||
None
|
||||
environment
|
||||
|> ignore
|
||||
|
||||
let checks =
|
||||
Directory.EnumerateFiles(Path.Combine(working, "src"), "*.test.ts")
|
||||
|> Seq.map (fun path -> Path.GetRelativePath(working, path))
|
||||
|> Seq.toList
|
||||
|
||||
for arguments in
|
||||
[ "--test" :: "--test-isolation=none" :: checks
|
||||
[ "node_modules/typescript/bin/tsc"; "--noEmit" ]
|
||||
[ "node_modules/vite/bin/vite.js"; "build" ] ] do
|
||||
requireSuccess
|
||||
"/toolchain/node/bin/node"
|
||||
arguments
|
||||
(Some working)
|
||||
environment
|
||||
|> ignore
|
||||
|
||||
let files _ =
|
||||
let dist = Path.Combine(working, "dist")
|
||||
|
||||
(Directory.EnumerateFiles(dist, "*", SearchOption.AllDirectories)
|
||||
|> Seq.map (fun path -> Path.Combine("usr/share/nginx/html/account", Path.GetRelativePath(dist, path)), path)
|
||||
|> Seq.toList)
|
||||
@ [ "etc/nginx/nginx.conf", "/orchestration/nginx.conf" ]
|
||||
|
||||
let digest =
|
||||
assemble
|
||||
"/toolchain/image-base"
|
||||
"/output"
|
||||
revision
|
||||
[ "nginx"; "-g"; "daemon off;" ]
|
||||
"/"
|
||||
files
|
||||
|
||||
printfn "build=image project=%s digest=%s" project.Name digest
|
||||
Loading…
Reference in a new issue