sass --version;
mage -v check;
env:
- HUGO_BUILD_TAGS: extended
+ HUGO_BUILD_TAGS: extended,withdeploy
- if: matrix.os == 'windows-latest'
# See issue #11052. We limit the build to regular test (no -race flag) on Windows for now.
name: Test
run: |
mage -v test;
env:
- HUGO_BUILD_TAGS: extended
+ HUGO_BUILD_TAGS: extended,withdeploy
- name: Build tags
run: |
- go install -tags extended,nodeploy
+ go install -tags extended
- if: matrix.os == 'ubuntu-latest'
name: Build for dragonfly
run: |
*.test
-imports.*
\ No newline at end of file
+imports.*
+dist/
+public/
ARG TARGETPLATFORM
RUN xx-apk add musl-dev gcc g++
-# Optionally set HUGO_BUILD_TAGS to "none" or "nodeploy" when building like so:
-# docker build --build-arg HUGO_BUILD_TAGS=nodeploy .
+# Optionally set HUGO_BUILD_TAGS to "none" or "withdeploy" when building like so:
+# docker build --build-arg HUGO_BUILD_TAGS=withdeploy .
#
# We build the extended version by default.
ARG HUGO_BUILD_TAGS="extended"
// See the License for the specific language governing permissions and
// limitations under the License.
-//go:build !nodeploy
-// +build !nodeploy
-
-// Copyright 2024 The Hugo Authors. All rights reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
+//go:build withdeploy
+// +build withdeploy
package commands
// See the License for the specific language governing permissions and
// limitations under the License.
-//go:build nodeploy
-// +build nodeploy
+//go:build !withdeploy
+// +build !withdeploy
// Copyright 2024 The Hugo Authors. All rights reserved.
//
import (
"context"
+ "errors"
"github.com/bep/simplecobra"
"github.com/spf13/cobra"
return &simpleCommand{
name: "deploy",
run: func(ctx context.Context, cd *simplecobra.Commandeer, r *rootCommand, args []string) error {
- return nil
+ return errors.New("deploy not supported in this version of Hugo; install a release with 'withdeploy' in the archive filename or build yourself with the 'withdeploy' build tag. Also see https://github.com/gohugoio/hugo/pull/12995")
},
withc: func(cmd *cobra.Command, r *rootCommand) {
cmd.Hidden = true
// See the License for the specific language governing permissions and
// limitations under the License.
-//go:build !nodeploy
-// +build !nodeploy
+//go:build withdeploy
+// +build withdeploy
package deploy
// See the License for the specific language governing permissions and
// limitations under the License.
-//go:build !nodeploy
-// +build !nodeploy
+//go:build withdeploy
+// +build withdeploy
package deploy
// See the License for the specific language governing permissions and
// limitations under the License.
-//go:build !solaris && !nodeploy
-// +build !solaris,!nodeploy
+//go:build !solaris && withdeploy
+// +build !solaris,withdeploy
package deploy
// See the License for the specific language governing permissions and
// limitations under the License.
-//go:build !nodeploy
-// +build !nodeploy
+//go:build withdeploy
+// +build withdeploy
package deploy
// See the License for the specific language governing permissions and
// limitations under the License.
-//go:build !nodeploy
-// +build !nodeploy
+//go:build withdeploy
+// +build withdeploy
package deployconfig
// See the License for the specific language governing permissions and
// limitations under the License.
-//go:build !nodeploy
-// +build !nodeploy
+//go:build withdeploy
+// +build withdeploy
package deploy
[[builds.os.archs]]
goarch = "amd64"
+[[builds]]
+ path = "container1/unix/extended-withdeploy"
+
+ [builds.build_settings]
+ flags = ["-buildmode", "exe", "-tags", "extended,withdeploy"]
+ env = ["CGO_ENABLED=1"]
+
+ [[builds.os]]
+ goos = "darwin"
+ [builds.os.build_settings]
+ env = ["CGO_ENABLED=1", "CC=o64-clang", "CXX=o64-clang++"]
+ [[builds.os.archs]]
+ goarch = "universal"
+ [[builds.os]]
+ goos = "linux"
+ [[builds.os.archs]]
+ goarch = "amd64"
+
[[builds]]
path = "container2/linux/extended"
paths = ["builds/container1/unix/extended/**"]
[archives.archive_settings]
name_template = "{{ .Project }}_extended_{{ .Tag | trimPrefix `v` }}_{{ .Goos }}-{{ .Goarch }}"
+[[archives]]
+ paths = ["builds/container1/unix/extended-withdeploy/**"]
+ [archives.archive_settings]
+ name_template = "{{ .Project }}_extended_withdeploy_{{ .Tag | trimPrefix `v` }}_{{ .Goos }}-{{ .Goarch }}"
[[archives]]
# Only extended builds in container2.
paths = ["builds/container2/**"]
func buildTags() string {
// To build the extended Hugo SCSS/SASS enabled version, build with
// HUGO_BUILD_TAGS=extended mage install etc.
- // To build without `hugo deploy` for smaller binary, use HUGO_BUILD_TAGS=nodeploy
+ // To build with `hugo deploy`, use HUGO_BUILD_TAGS=withdeploy
if envtags := os.Getenv("HUGO_BUILD_TAGS"); envtags != "" {
return envtags
}
--- /dev/null
+// Copyright 2024 The Hugo Authors. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+//go:build withdeploy
+// +build withdeploy
+
+package main
+
+import (
+ "testing"
+
+ "github.com/rogpeppe/go-internal/testscript"
+)
+
+func TestWithdeploy(t *testing.T) {
+ p := commonTestScriptsParam
+ p.Dir = "testscripts/withdeploy"
+ testscript.Run(t, p)
+}
+++ /dev/null
-# Test the deploy command.
-
-hugo deploy -h
-stdout 'Deploy your site to a cloud provider'
-mkdir mybucket
-hugo deploy --target mydeployment --invalidateCDN=false
-grep 'hello' mybucket/index.html
-replace public/index.html 'hello' 'changed'
-hugo deploy --target mydeployment --dryRun
-stdout 'Would upload: index.html'
-stdout 'Would invalidate CloudFront CDN with ID foobar'
--- hugo.toml --
-disableKinds = ["RSS", "sitemap", "robotsTXT", "404", "taxonomy", "term"]
-baseURL = "https://example.org/"
-[deployment]
-[[deployment.targets]]
-name = "myfirst"
-url="gs://asdfasdf"
-[[deployment.targets]]
-name = "mydeployment"
-url="file://./mybucket"
-cloudFrontDistributionID = "foobar"
--- public/index.html --
-<html><body>hello</body></html>
# Test the gen commands.
-# Note that adding new commands will require updating the NUM_COMMANDS value.
-env NUM_COMMANDS=44
hugo gen -h
stdout 'Generate documentation for your project using Hugo''s documentation engine, including syntax highlighting for various programming languages\.'
-
hugo gen doc --dir clidocs
-checkfilecount $NUM_COMMANDS clidocs
hugo gen man -h
stdout 'up-to-date man pages'
hugo gen man --dir manpages
-checkfilecount $NUM_COMMANDS manpages
hugo gen chromastyles -h
stdout 'Generate CSS stylesheet for the Chroma code highlighter'
--- /dev/null
+# Test the deploy command.
+
+hugo deploy -h
+stdout 'Deploy your site to a cloud provider'
+mkdir mybucket
+hugo deploy --target mydeployment --invalidateCDN=false
+grep 'hello' mybucket/index.html
+replace public/index.html 'hello' 'changed'
+hugo deploy --target mydeployment --dryRun
+stdout 'Would upload: index.html'
+stdout 'Would invalidate CloudFront CDN with ID foobar'
+-- hugo.toml --
+disableKinds = ["RSS", "sitemap", "robotsTXT", "404", "taxonomy", "term"]
+baseURL = "https://example.org/"
+[deployment]
+[[deployment.targets]]
+name = "myfirst"
+url="gs://asdfasdf"
+[[deployment.targets]]
+name = "mydeployment"
+url="file://./mybucket"
+cloudFrontDistributionID = "foobar"
+-- public/index.html --
+<html><body>hello</body></html>