diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index b513863c507..05d9d23a2db 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -112,17 +112,17 @@ jobs: 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: | diff --git a/.gitignore b/.gitignore index b170fe204cc..a1fa54656fa 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ *.test -imports.* \ No newline at end of file +imports.* +dist/ +public/ diff --git a/Dockerfile b/Dockerfile index 65c4dbfb96f..6d1bf78c42d 100755 --- a/Dockerfile +++ b/Dockerfile @@ -21,8 +21,8 @@ COPY --from=xx / / 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" diff --git a/commands/deploy.go b/commands/deploy.go index f0bc670cadf..f9c22be48f2 100644 --- a/commands/deploy.go +++ b/commands/deploy.go @@ -11,21 +11,8 @@ // 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 diff --git a/commands/deploy_off.go b/commands/deploy_off.go index 8a481bd968a..34951a29c49 100644 --- a/commands/deploy_off.go +++ b/commands/deploy_off.go @@ -11,8 +11,8 @@ // 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. // @@ -31,6 +31,7 @@ package commands import ( "context" + "errors" "github.com/bep/simplecobra" "github.com/spf13/cobra" @@ -40,7 +41,7 @@ func newDeployCommand() simplecobra.Commander { 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 'with-deploy' 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 diff --git a/deploy/cloudfront.go b/deploy/cloudfront.go index 4481eb52aa7..29c0a7f8c2c 100644 --- a/deploy/cloudfront.go +++ b/deploy/cloudfront.go @@ -11,8 +11,8 @@ // 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 diff --git a/deploy/deploy.go b/deploy/deploy.go index a69e974b78c..0c379ffb889 100644 --- a/deploy/deploy.go +++ b/deploy/deploy.go @@ -11,8 +11,8 @@ // 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 diff --git a/deploy/deploy_azure.go b/deploy/deploy_azure.go index fc7daca3b1e..521d8f0948f 100644 --- a/deploy/deploy_azure.go +++ b/deploy/deploy_azure.go @@ -11,8 +11,8 @@ // 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 diff --git a/deploy/deploy_test.go b/deploy/deploy_test.go index 17dffc25af4..f290d6c81d8 100644 --- a/deploy/deploy_test.go +++ b/deploy/deploy_test.go @@ -11,8 +11,8 @@ // 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 diff --git a/deploy/deployconfig/deployConfig_test.go b/deploy/deployconfig/deployConfig_test.go index 0b92a5cb11e..8a3ad2d8af6 100644 --- a/deploy/deployconfig/deployConfig_test.go +++ b/deploy/deployconfig/deployConfig_test.go @@ -11,8 +11,8 @@ // 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 diff --git a/deploy/google.go b/deploy/google.go index 6e492bc01d1..e4683aa817e 100644 --- a/deploy/google.go +++ b/deploy/google.go @@ -11,8 +11,8 @@ // 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 diff --git a/hugoreleaser.toml b/hugoreleaser.toml index d516bd34bef..f8b457e9b1f 100644 --- a/hugoreleaser.toml +++ b/hugoreleaser.toml @@ -119,6 +119,24 @@ archive_alias_replacements = { "linux-amd64.tar.gz" = "Linux-64bit.tar.gz" } [[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" @@ -173,6 +191,10 @@ archive_alias_replacements = { "linux-amd64.tar.gz" = "Linux-64bit.tar.gz" } 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_with_deploy_{{ .Tag | trimPrefix `v` }}_{{ .Goos }}-{{ .Goarch }}" [[archives]] # Only extended builds in container2. paths = ["builds/container2/**"] diff --git a/magefile.go b/magefile.go index 142b9160a5a..9919e0185c4 100644 --- a/magefile.go +++ b/magefile.go @@ -334,7 +334,7 @@ func buildFlags() []string { 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 } diff --git a/main_withdeploy_test.go b/main_withdeploy_test.go new file mode 100644 index 00000000000..de50313c379 --- /dev/null +++ b/main_withdeploy_test.go @@ -0,0 +1,29 @@ +// 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) +} diff --git a/testscripts/commands/gen.txt b/testscripts/commands/gen.txt index b8fe9d2dcbf..092b4e12920 100644 --- a/testscripts/commands/gen.txt +++ b/testscripts/commands/gen.txt @@ -1,17 +1,12 @@ # 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' diff --git a/testscripts/commands/deploy.txt b/testscripts/withdeploy/deploy.txt similarity index 100% rename from testscripts/commands/deploy.txt rename to testscripts/withdeploy/deploy.txt