aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorEric Hagman <[email protected]>2020-10-23 03:03:41 -0400
committerGitHub <[email protected]>2020-10-23 09:03:41 +0200
commitf465c5c3079261eb7fa513e2d2793851b9c52b83 (patch)
tree9d39a3601ad2563d939e6b0e53eb24553cfb5077
parent3400aff2588cbf9dd4629c05537d16b019d0fdf5 (diff)
downloadhugo-f465c5c3079261eb7fa513e2d2793851b9c52b83.tar.gz
hugo-f465c5c3079261eb7fa513e2d2793851b9c52b83.zip
build: Allow optional "nodeploy" tag to exclude deploy command from bin
Fixes #7826
-rwxr-xr-xDockerfile2
-rw-r--r--commands/deploy.go2
-rw-r--r--commands/nodeploy.go49
-rw-r--r--deploy/cloudfront.go2
-rw-r--r--deploy/deploy.go2
-rw-r--r--deploy/deployConfig.go2
-rw-r--r--deploy/deployConfig_test.go2
-rw-r--r--deploy/deploy_azure.go2
-rw-r--r--deploy/deploy_test.go2
-rw-r--r--deploy/google.go2
-rw-r--r--magefile.go1
11 files changed, 66 insertions, 2 deletions
diff --git a/Dockerfile b/Dockerfile
index 528c12e3b..75ed38969 100755
--- a/Dockerfile
+++ b/Dockerfile
@@ -4,7 +4,7 @@
FROM golang:1.15-alpine AS build
-# Optionally set HUGO_BUILD_TAGS to "extended" when building like so:
+# Optionally set HUGO_BUILD_TAGS to "extended" or "nodeploy" when building like so:
# docker build --build-arg HUGO_BUILD_TAGS=extended .
ARG HUGO_BUILD_TAGS
diff --git a/commands/deploy.go b/commands/deploy.go
index 7133f9a0e..2e1557609 100644
--- a/commands/deploy.go
+++ b/commands/deploy.go
@@ -11,6 +11,8 @@
// See the License for the specific language governing permissions and
// limitations under the License.
+// +build !nodeploy
+
package commands
import (
diff --git a/commands/nodeploy.go b/commands/nodeploy.go
new file mode 100644
index 000000000..146a61f17
--- /dev/null
+++ b/commands/nodeploy.go
@@ -0,0 +1,49 @@
+// Copyright 2019 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.
+
+// +build nodeploy
+
+package commands
+
+import (
+ "errors"
+ "github.com/spf13/cobra"
+)
+
+var _ cmder = (*deployCmd)(nil)
+
+// deployCmd supports deploying sites to Cloud providers.
+type deployCmd struct {
+ *baseBuilderCmd
+}
+
+func (b *commandsBuilder) newDeployCmd() *deployCmd {
+ cc := &deployCmd{}
+
+ cmd := &cobra.Command{
+ Use: "deploy",
+ Short: "Deploy your site to a Cloud provider.",
+ Long: `Deploy your site to a Cloud provider.
+
+See https://gohugo.io/hosting-and-deployment/hugo-deploy/ for detailed
+documentation.
+`,
+ RunE: func(cmd *cobra.Command, args []string) error {
+ return errors.New("build without HUGO_BUILD_TAGS=nodeploy to use this command")
+ },
+ }
+
+ cc.baseBuilderCmd = b.newBuilderBasicCmd(cmd)
+
+ return cc
+}
diff --git a/deploy/cloudfront.go b/deploy/cloudfront.go
index dbdf9baf4..5e9a7a409 100644
--- a/deploy/cloudfront.go
+++ b/deploy/cloudfront.go
@@ -11,6 +11,8 @@
// See the License for the specific language governing permissions and
// limitations under the License.
+// +build !nodeploy
+
package deploy
import (
diff --git a/deploy/deploy.go b/deploy/deploy.go
index f6b5b5785..aac0bf354 100644
--- a/deploy/deploy.go
+++ b/deploy/deploy.go
@@ -11,6 +11,8 @@
// See the License for the specific language governing permissions and
// limitations under the License.
+// +build !nodeploy
+
package deploy
import (
diff --git a/deploy/deployConfig.go b/deploy/deployConfig.go
index cc2b15280..d4f78011e 100644
--- a/deploy/deployConfig.go
+++ b/deploy/deployConfig.go
@@ -11,6 +11,8 @@
// See the License for the specific language governing permissions and
// limitations under the License.
+// +build !nodeploy
+
package deploy
import (
diff --git a/deploy/deployConfig_test.go b/deploy/deployConfig_test.go
index c385510fe..413b1211b 100644
--- a/deploy/deployConfig_test.go
+++ b/deploy/deployConfig_test.go
@@ -11,6 +11,8 @@
// See the License for the specific language governing permissions and
// limitations under the License.
+// +build !nodeploy
+
package deploy
import (
diff --git a/deploy/deploy_azure.go b/deploy/deploy_azure.go
index 6251429ff..77bbf5b3d 100644
--- a/deploy/deploy_azure.go
+++ b/deploy/deploy_azure.go
@@ -11,7 +11,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-// +build !solaris
+// +build !solaris,!nodeploy
package deploy
diff --git a/deploy/deploy_test.go b/deploy/deploy_test.go
index 0ae10b539..987c472ca 100644
--- a/deploy/deploy_test.go
+++ b/deploy/deploy_test.go
@@ -11,6 +11,8 @@
// See the License for the specific language governing permissions and
// limitations under the License.
+// +build !nodeploy
+
package deploy
import (
diff --git a/deploy/google.go b/deploy/google.go
index be3ce52f0..9eae10da5 100644
--- a/deploy/google.go
+++ b/deploy/google.go
@@ -11,6 +11,8 @@
// See the License for the specific language governing permissions and
// limitations under the License.
+// +build !nodeploy
+
package deploy
import (
diff --git a/magefile.go b/magefile.go
index 89b7c895d..02e49b66e 100644
--- a/magefile.go
+++ b/magefile.go
@@ -354,6 +354,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
if envtags := os.Getenv("HUGO_BUILD_TAGS"); envtags != "" {
return envtags
}