-
Notifications
You must be signed in to change notification settings - Fork 4
/
.build.ps1
47 lines (42 loc) · 1.51 KB
/
.build.ps1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# Copyright (c) Microsoft Corporation.
# Licensed under the MIT License.
#requires -Version 7.2
#requires -Module InvokeBuild
[cmdletbinding()]
param(
[string]$SiteBaseUrl
)
task CheckPrereqs {
if (-not (Get-Command hugo -ErrorAction Ignore)) {
throw "Hugo is not installed. Please install Hugo extended edition from https://gohugo.io/getting-started/installing/"
}
$HugoVersion = hugo version
if (-not ($HugoVersion -match 'hugo v(?<version>\d+\.\d+\.\d+)[^+]+\+extended')) {
throw "Hugo is installed but not the extended edition. Please install Hugo extended edition from https://gohugo.io/getting-started/installing/"
}
if ([version]($Matches.version) -lt [version]'0.115.0') {
throw "Hugo is installed but the version is too old. Please install Hugo extended edition, minimum version 0.115.0, from https://gohugo.io/getting-started/installing/"
}
if (-not (Get-Command go)) {
throw "Go is not installed. Please install Go 1.19 or higher from https://golang.org/dl/"
}
}
task PrepareSite CheckPrereqs, {
# Nothing to do yet, included for future use.
}
task BuildSite PrepareSite, {
Push-Location -Path "$BuildRoot/.site"
if ([string]::IsNullOrEmpty($SiteBaseUrl)) {
$SiteBaseUrl = $env:DEPLOY_PRIME_URL
}
# if ([string]::IsNullOrEmpty($SiteBaseUrl)) {
# $SiteBaseUrl = 'https://quiet-snickerdoodle-38a82c.netlify.app/'
# }
hugo --gc --minify -b $SiteBaseUrl
Pop-Location
}
task ServeSite PrepareSite, {
Push-Location -Path "$BuildRoot/.site"
hugo server
Pop-Location
}