netlify / netlifyctl Goto Github PK
View Code? Open in Web Editor NEWLicense: MIT License
License: MIT License
Deploying in windows creates paths with backslashes that don't work once deployed.
While version 0.3.2 was released to address this, the issue still persists:
Deploy.find("5a8c9c467b6ee80bfd6616ed").files.map{|f| puts f.path }; nil
/index.html
/subtest\subbing.html
=> nil
And to confirm the version of the CTL being used:
.\netlifyctl version
Version: 0.3.2
Git SHA: a1b86648871d4a5888a6a50e5e524cf650d5fa61
I just downloaded the pre-built Linux version and experimented with my site, It failed with the following log.
environment: Linux version 4.13.0-39-generic (buildd@lgw01-amd64-038) (gcc version 7.2.0 (Ubuntu 7.2.0-8ubuntu3.2)) #44-Ubuntu SMP Thu Apr 5 14:25:01 UTC 2018
it looks like some memory leak as my laptop has 8GB memory with nothing else but Firefox on while running the command.
CCCCCCCCCCounting objects: 494 total objects ✔
RRRRResolving deltas: 3 objects to upload ✔
UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUploading objects: 0/3 🌎UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUploading objects: 0/3 🌍UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUploading objects: 0/3 🌏UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUploading objects: 0/3 🌎UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUploading objects: 0/3 🌍UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUploading objects: 0/3 🌎UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUploading objects: 0/3 🌏UUUUUUUUUUUUUUUUUUUUploading objects ✘
fatal error: runtime: out of memory
runtime stack:
runtime.throw(0xcb150b, 0x16)
/usr/local/go/src/runtime/panic.go:619 +0x81
runtime.sysMap(0xc6d9b10000, 0xbc860000, 0x0, 0x11bfcf8)
/usr/local/go/src/runtime/mem_linux.go:216 +0x20a
runtime.(*mheap).sysAlloc(0x11a6880, 0xbc860000, 0x1)
/usr/local/go/src/runtime/malloc.go:470 +0xd4
runtime.(*mheap).grow(0x11a6880, 0x5e42d, 0x0)
/usr/local/go/src/runtime/mheap.go:907 +0x60
runtime.(*mheap).allocSpanLocked(0x11a6880, 0x5e42d, 0x11bfd08, 0x2cd16)
/usr/local/go/src/runtime/mheap.go:820 +0x301
runtime.(*mheap).alloc_m(0x11a6880, 0x5e42d, 0x101, 0xc4205d9f10)
/usr/local/go/src/runtime/mheap.go:686 +0x118
runtime.(*mheap).alloc.func1()
/usr/local/go/src/runtime/mheap.go:753 +0x4d
runtime.(*mheap).alloc(0x11a6880, 0x5e42d, 0xc420010101, 0xc42047bc80)
/usr/local/go/src/runtime/mheap.go:752 +0x8a
runtime.largeAlloc(0xbc858f0f, 0x11a0101, 0xc42047bc01)
/usr/local/go/src/runtime/malloc.go:826 +0x94
runtime.mallocgc.func1()
/usr/local/go/src/runtime/malloc.go:721 +0x46
runtime.systemstack(0x11a4e74100000000)
/usr/local/go/src/runtime/asm_amd64.s:409 +0x79
runtime.mstart()
/usr/local/go/src/runtime/proc.go:1170
goroutine 31 [running]:
runtime.systemstack_switch()
/usr/local/go/src/runtime/asm_amd64.s:363 fp=0xc4205d7658 sp=0xc4205d7650 pc=0x454000
runtime.mallocgc(0xbc858f0f, 0xb29d40, 0x45f701, 0xc4205d7730)
/usr/local/go/src/runtime/malloc.go:720 +0x8a2 fp=0xc4205d76f8 sp=0xc4205d7658 pc=0x4109c2
runtime.makeslice(0xb29d40, 0xbc858f0f, 0xbc858f0f, 0xc420146070, 0x410c68, 0x11be250)
/usr/local/go/src/runtime/slice.go:61 +0x77 fp=0xc4205d7728 sp=0xc4205d76f8 pc=0x43ff07
bytes.makeSlice(0xbc858f0f, 0x0, 0x0, 0x0)
/usr/local/go/src/bytes/buffer.go:230 +0x6d fp=0xc4205d7768 sp=0xc4205d7728 pc=0x4d18dd
bytes.(*Buffer).grow(0xc4201476c0, 0x2cd15425, 0x506d3d)
/usr/local/go/src/bytes/buffer.go:144 +0x151 fp=0xc4205d77b8 sp=0xc4205d7768 pc=0x4d1291
bytes.(*Buffer).Write(0xc4201476c0, 0xc5f6424000, 0x2cd15425, 0x59a2a849, 0x59a2a849, 0x0, 0x0)
/usr/local/go/src/bytes/buffer.go:174 +0xd9 fp=0xc4205d77e8 sp=0xc4205d77b8 pc=0x4d1569
github.com/netlify/netlifyctl/vendor/github.com/sirupsen/logrus.Entry.log(0xc4200ae140, 0xc4203a2060, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb29a05, ...)
/home/david/src/github.com/netlify/netlifyctl/vendor/github.com/sirupsen/logrus/entry.go:113 +0x357 fp=0xc4205d78c8 sp=0xc4205d77e8 pc=0x504fe7
github.com/netlify/netlifyctl/vendor/github.com/sirupsen/logrus.(*Entry).Debug(0xc4203a40f0, 0xc4205d7980, 0x1, 0x1)
/home/david/src/github.com/netlify/netlifyctl/vendor/github.com/sirupsen/logrus/entry.go:130 +0xaa fp=0xc4205d7938 sp=0xc4205d78c8 pc=0x5052da
github.com/netlify/netlifyctl/vendor/github.com/sirupsen/logrus.(*Entry).Debugf(0xc4203a40f0, 0xc5c9712000, 0x2cd10b19, 0x0, 0x0, 0x0)
/home/david/src/github.com/netlify/netlifyctl/vendor/github.com/sirupsen/logrus/entry.go:178 +0xef fp=0xc4205d79a0 sp=0xc4205d7938 pc=0x5058df
github.com/netlify/netlifyctl/vendor/github.com/go-openapi/runtime/client.(*Runtime).Submit(0xc420326000, 0xc42041c3c0, 0x0, 0x0, 0x0, 0x0)
/home/david/src/github.com/netlify/netlifyctl/vendor/github.com/go-openapi/runtime/client/runtime.go:277 +0xbec fp=0xc4205d7b28 sp=0xc4205d79a0 pc=0x795b8c
github.com/netlify/netlifyctl/vendor/github.com/netlify/open-api/go/plumbing/operations.(*Client).UploadDeployFile(0xc4203be100, 0xc420519860, 0xd2b0a0, 0xcd49d0, 0x0, 0x1, 0x2)
/home/david/src/github.com/netlify/netlifyctl/vendor/github.com/netlify/open-api/go/plumbing/operations/operations_client.go:2066 +0x30f fp=0xc4205d7b78 sp=0xc4205d7b28 pc=0x806bdf
github.com/netlify/netlifyctl/vendor/github.com/netlify/open-api/go/porcelain.(*Netlify).uploadFile.func2(0x0, 0x0)
/home/david/src/github.com/netlify/netlifyctl/vendor/github.com/netlify/open-api/go/porcelain/deploy.go:409 +0x5fa fp=0xc4205d7c68 sp=0xc4205d7b78 pc=0x85edda
github.com/netlify/netlifyctl/vendor/github.com/cenkalti/backoff.RetryNotify(0xc4207041e0, 0xd2c680, 0xc420704180, 0x0, 0xcfe3b001, 0xc4207041e0)
/home/david/src/github.com/netlify/netlifyctl/vendor/github.com/cenkalti/backoff/retry.go:37 +0x88 fp=0xc4205d7d58 sp=0xc4205d7c68 pc=0x844d68
github.com/netlify/netlifyctl/vendor/github.com/cenkalti/backoff.Retry(0xc4207041e0, 0xd2c680, 0xc420704180, 0x0, 0xc420482f08)
/home/david/src/github.com/netlify/netlifyctl/vendor/github.com/cenkalti/backoff/retry.go:25 +0x48 fp=0xc4205d7d98 sp=0xc4205d7d58 pc=0x844cb8
github.com/netlify/netlifyctl/vendor/github.com/netlify/open-api/go/porcelain.(*Netlify).uploadFile(0xc4203be120, 0x7ff0ac42e9a8, 0xc4203a2630, 0xc4203521c0, 0xc42051df40, 0xd35500, 0xc420078140, 0x0, 0x0, 0xc4203f48c0, ...)
/home/david/src/github.com/netlify/netlifyctl/vendor/github.com/netlify/open-api/go/porcelain/deploy.go:386 +0x4b7 fp=0xc4205d7f80 sp=0xc4205d7d98 pc=0x85bf37
runtime.goexit()
/usr/local/go/src/runtime/asm_amd64.s:2361 +0x1 fp=0xc4205d7f88 sp=0xc4205d7f80 pc=0x456b21
created by github.com/netlify/netlifyctl/vendor/github.com/netlify/open-api/go/porcelain.(*Netlify).uploadFiles
/home/david/src/github.com/netlify/netlifyctl/vendor/github.com/netlify/open-api/go/porcelain/deploy.go:343 +0x3a1
goroutine 1 [semacquire, 7 minutes]:
sync.runtime_Semacquire(0xc4203f48cc)
/usr/local/go/src/runtime/sema.go:56 +0x39
sync.(*WaitGroup).Wait(0xc4203f48c0)
/usr/local/go/src/sync/waitgroup.go:129 +0x72
github.com/netlify/netlifyctl/vendor/github.com/netlify/open-api/go/porcelain.(*Netlify).uploadFiles(0xc4203be120, 0x7ff0ac42e9a8, 0xc4203a2630, 0xc4203521c0, 0xc4203be860, 0xd35500, 0xc420078140, 0x0, 0x0, 0x4ded5d, ...)
/home/david/src/github.com/netlify/netlifyctl/vendor/github.com/netlify/open-api/go/porcelain/deploy.go:348 +0x461
github.com/netlify/netlifyctl/vendor/github.com/netlify/open-api/go/porcelain.(*Netlify).DoDeploy(0xc4203be120, 0x7ff0ac42e9a8, 0xc4203a2630, 0xc4203880a0, 0xc4203521c0, 0xbc3500, 0xbe7440, 0xc420440400)
/home/david/src/github.com/netlify/netlifyctl/vendor/github.com/netlify/open-api/go/porcelain/deploy.go:262 +0x96e
github.com/netlify/netlifyctl/vendor/github.com/netlify/open-api/go/porcelain.(*Netlify).DeploySite(0xc4203be120, 0x7ff0ac42e9a8, 0xc4203a2630, 0xc4200a41e0, 0x24, 0xc4200a4210, 0x24, 0x0, 0x0, 0x0, ...)
/home/david/src/github.com/netlify/netlifyctl/vendor/github.com/netlify/open-api/go/porcelain/deploy.go:144 +0x98
github.com/netlify/netlifyctl/commands/deploy.(*deployCmd).deploySite(0xc42013aea0, 0x7ff0ac42e9e0, 0xc4203a2630, 0xc4202bf200, 0x11be250, 0x0, 0x0, 0xd31200, 0x7ff0ac42e9e0)
/home/david/src/github.com/netlify/netlifyctl/commands/deploy/deploy.go:89 +0x62f
github.com/netlify/netlifyctl/commands/deploy.(*deployCmd).(github.com/netlify/netlifyctl/commands/deploy.deploySite)-fm(0x7ff0ac42e9e0, 0xc4203a2630, 0xc4202bf200, 0x11be250, 0x0, 0x0, 0xc282a0, 0xc4203a2270)
/home/david/src/github.com/netlify/netlifyctl/commands/deploy/deploy.go:45 +0x69
github.com/netlify/netlifyctl/commands/middleware.SiteConfigMiddleware.func1(0x7ff0ac42e9e0, 0xc4203a2270, 0xc4202bf200, 0x11be250, 0x0, 0x0, 0x1, 0xc4203a21b0)
/home/david/src/github.com/netlify/netlifyctl/commands/middleware/middleware.go:222 +0x252
github.com/netlify/netlifyctl/commands/middleware.ClientMiddleware.func1(0x7ff0ac42e9e0, 0xc4203a20f0, 0xc4202bf200, 0x11be250, 0x0, 0x0, 0x81b82f, 0xbc3500)
/home/david/src/github.com/netlify/netlifyctl/commands/middleware/middleware.go:183 +0x339
github.com/netlify/netlifyctl/commands/middleware.AuthMiddleware.func1(0x7ff0ac42e9e0, 0xc4203a2090, 0xc4202bf200, 0x11be250, 0x0, 0x0, 0x11a10a0, 0xd23250)
/home/david/src/github.com/netlify/netlifyctl/commands/middleware/middleware.go:128 +0x1ca
github.com/netlify/netlifyctl/commands/middleware.LoggingMiddleware.func1(0x7ff0ac3db1a8, 0xc4200a8030, 0xc4202bf200, 0x11be250, 0x0, 0x0, 0xc4203e2570, 0xc4202b9b80)
/home/david/src/github.com/netlify/netlifyctl/commands/middleware/middleware.go:116 +0x1f1
github.com/netlify/netlifyctl/commands/middleware.DebugMiddleware.func1(0x7ff0ac3db1a8, 0xc4200a8030, 0xc4202bf200, 0x11be250, 0x0, 0x0, 0x0, 0x0)
/home/david/src/github.com/netlify/netlifyctl/commands/middleware/middleware.go:89 +0x4bb
github.com/netlify/netlifyctl/commands/middleware.NewRunFunc.func1(0xc4202bf200, 0x11be250, 0x0, 0x0, 0x0, 0x0)
/home/david/src/github.com/netlify/netlifyctl/commands/middleware/middleware.go:52 +0xf2
github.com/netlify/netlifyctl/vendor/github.com/spf13/cobra.(*Command).execute(0xc4202bf200, 0x11be250, 0x0, 0x0, 0xc4202bf200, 0x11be250)
/home/david/src/github.com/netlify/netlifyctl/vendor/github.com/spf13/cobra/command.go:644 +0x3db
github.com/netlify/netlifyctl/vendor/github.com/spf13/cobra.(*Command).ExecuteC(0x118f980, 0x11bdebc, 0xca05bc, 0x3)
/home/david/src/github.com/netlify/netlifyctl/vendor/github.com/spf13/cobra/command.go:734 +0x2d4
github.com/netlify/netlifyctl/commands.Execute()
/home/david/src/github.com/netlify/netlifyctl/commands/netlify.go:41 +0x29b
main.main()
/home/david/src/github.com/netlify/netlifyctl/main.go:16 +0x79
goroutine 18 [syscall, 7 minutes]:
os/signal.signal_recv(0x0)
/usr/local/go/src/runtime/sigqueue.go:139 +0xa6
os/signal.loop()
/usr/local/go/src/os/signal/signal_unix.go:22 +0x22
created by os/signal.init.0
/usr/local/go/src/os/signal/signal_unix.go:28 +0x41
goroutine 5 [select, 7 minutes, locked to thread]:
runtime.gopark(0xcd5f30, 0x0, 0xca307f, 0x6, 0x18, 0x1)
/usr/local/go/src/runtime/proc.go:291 +0x11a
runtime.selectgo(0xc420052750, 0xc42009a780)
/usr/local/go/src/runtime/select.go:392 +0xe50
runtime.ensureSigM.func1()
/usr/local/go/src/runtime/signal_unix.go:549 +0x1f4
runtime.goexit()
/usr/local/go/src/runtime/asm_amd64.s:2361 +0x1
goroutine 49 [chan receive, 7 minutes]:
github.com/netlify/netlifyctl/commands/middleware.DebugMiddleware.func1.1(0xc42013b3e0, 0x0, 0xc4201476c0)
/home/david/src/github.com/netlify/netlifyctl/commands/middleware/middleware.go:79 +0x38
created by github.com/netlify/netlifyctl/commands/middleware.DebugMiddleware.func1
/home/david/src/github.com/netlify/netlifyctl/commands/middleware/middleware.go:78 +0x464
goroutine 30 [chan send, 5 minutes]:
github.com/netlify/netlifyctl/operations.(*DeployObserver).OnFailedUpload(0xc420078140, 0xc42051dcc0)
/home/david/src/github.com/netlify/netlifyctl/operations/deploy.go:87 +0x3b
github.com/netlify/netlifyctl/vendor/github.com/netlify/open-api/go/porcelain.(*Netlify).uploadFile(0xc4203be120, 0x7ff0ac42e9a8, 0xc4203a2630, 0xc4203521c0, 0xc42051dcc0, 0xd35500, 0xc420078140, 0x0, 0x0, 0xc4203f48c0, ...)
/home/david/src/github.com/netlify/netlifyctl/vendor/github.com/netlify/open-api/go/porcelain/deploy.go:437 +0x56b
created by github.com/netlify/netlifyctl/vendor/github.com/netlify/open-api/go/porcelain.(*Netlify).uploadFiles
/home/david/src/github.com/netlify/netlifyctl/vendor/github.com/netlify/open-api/go/porcelain/deploy.go:343 +0x3a1
Hi,
Netlify-cli follows symlinks, netlifyctl should probably have the same behavior.
I think we are dumping out the error object with a %+v
which is giving errors like this:
Error: [POST /sites][401] createSite default &{Code:401 Message:0xc4202681a0}
Step 20/22 : RUN go get github.com/netlify/netlifyctl
---> Running in 746bece28fc4
�[91m# github.com/netlify/netlifyctl/commands/init
go/src/github.com/netlify/netlifyctl/commands/init/git.go:25:34: undefined: models.RepoSetup
go/src/github.com/netlify/netlifyctl/commands/init/github.go:88:62: undefined: models.RepoSetup
go/src/github.com/netlify/netlifyctl/commands/init/github.go:95:10: undefined: models.RepoSetup
go/src/github.com/netlify/netlifyctl/commands/init/gitlab.go:66:62: undefined: models.RepoSetup
go/src/github.com/netlify/netlifyctl/commands/init/gitlab.go:73:10: undefined: models.RepoSetup
go/src/github.com/netlify/netlifyctl/commands/init/manual.go:37:61: undefined: models.RepoSetup
go/src/github.com/netlify/netlifyctl/commands/init/manual.go:40:10: undefined: models.RepoSetup
�[0mThe command '/bin/sh -c go get github.com/netlify/netlifyctl' returned a non-zero code: 2
Used to work a couple of months ago.
Go version: 1.9.2
This was a suggestion from a customer.
Scenario: You use locked deploys in the UI to prevent autopublishing from git. This works fine until you send a deploy via netlifyctl deploy
which will publish the current deploy - and leave deploys UNLOCKED.
Suggestion: before deploying, check for the current deploy being locked and output some sort of warning that you've now turned off locking and should revisit the site dashboard to re-lock deploys.
Right now when doing netlifyctl init -m
in a repository configured with an https URL in /.git/config
, we fail to detect tha,t and the repo setup ends up not working properly with our automated checkouts.
netlifyctl should detect https URLs and automatically transform them into ssh URLs for use with deploy keys.
Print errors to stderr
rather than writing everything to the file system in the CWD.
This is fairly annoying as it just pollutes the repo one is working in.
As a library this should not be logging by default. It should be something that we can enable when called from the command line, but when used as a library it shouldn't put things out unless explicitly configured to.
CONTEXT:
Unable to use the following in a netlify.toml file:
[[redirects]]
from = "/map"
to = "https://maps.google.com"
status = 200
force = true
headers = {X-From = "netlify_live", x-api-key= "LIVE API KEY"}
This causes the following error when running netlifyctl deploy
"Near line 13 (last key parsed 'redirects.headers'): Expected value but found '{' instead."
WORKAROUND:
The following format, however, works:
[[redirects]]
from = "/calculator/test"
to = "https://futuregerald-requestbin.herokuapp.com/pzyoldpz"
status = 200
force = true
[redirects.headers]
X-From = "netlify_test"
x-api-key= "TEST API KEY"
Other commands that we can implement:
$ netlifyctl deploy list
$ netlifyctl forms
$ netlifyctl site access
$ netlifyctl site edit
All the available API endpoints in https://github.com/netlify/open-api/tree/master/swagger.yml
I am using the following command to deploy my site from the public folder -
$ ./netlifyctl deploy -A $NETLIFY_ACCESS_TOKEN
Travis logs are available here.
Can somebody help me fix this issue?
Hey guys,
the previous version of netlify.toml
has:
[build]
publish = 'dist/'
But netlifyctl
now uses:
[build]
publish = 'dist/'
[settings]
path = 'dist/'
Perhaps we could streamline this to avoid redundancy and confusion?
netlifyctl/commands/deploy/deploy.go
Lines 104 to 119 in e4a6a4d
It looks like it's only possible to specify an access token using -A
or with a config file.
Would it be possible to allow this to be set using an environment variable?
Add command:
$ netlifyctl login
Detect when there is no access token and ask for credentials in the Auth middleware too.
After #67, netlifyctl deploy no longer crashes (thanks!), but it does now hang, even if I run it with a TTY. (In contrast, 0.2.0 worked fine with a TTY, just crashing when run headless).
The output I see is just the following:
Counting objects: 352 total objects ✔
Resolving deltas: 2 objects to upload ✔
Uploading objects: 0/2 🌍
(and then it appears not to make any forward progress, even though the objects it's uploading are tiny: the largest is ~50KB.)
Any idea how to debug this? I've tried running with --debug
, but that doesn't help because the upload attempt never seems to complete, and so the debug log is never written.
Given the delta between 0.2.0 and 0.2.1, I guess d0ea834 must be the cause, though I've no idea why.
I get the following error when trying to go get
, go install
or go build
netlifyctl.
commands/deploy/deploy.go:90:44: not enough arguments in call to client.WaitUntilDeployReady
have ("github.com/netlify/netlifyctl/context".Context, *models.Deploy)
want ("github.com/netlify/open-api/go/porcelain/context".Context, *models.Deploy, time.Duration)
The timeout arg is missing from the function call
ready, err := client.WaitUntilDeployReady(ctx, d)
I'd be happy to open a PR for this, though I'm not sure what the timeout value should be.
Hey guys,
in our CircleCI build we use a circleci/golang:1.9
docker image and install the netlifyctl
CLI using go get github.com/netlify/netlifyctl
.
Until a couple of days ago it was working fine but we now get this error:
$ go get github.com/netlify/netlifyctl
# github.com/netlify/netlifyctl/commands/deploy
/go/src/github.com/netlify/netlifyctl/commands/deploy/deploy.go:90:44: not enough arguments in call to client.WaitUntilDeployReady
have ("github.com/netlify/netlifyctl/context".Context, *models.Deploy)
want ("github.com/netlify/open-api/go/porcelain/context".Context, *models.Deploy, time.Duration)
Is there something wrong with the image itself or with the installation script?
Many thanks 🙏
When running netlifyctl init manual
it asks for the username (gitlab for this project)
it then pauses with no feedback
when pressing enter I get this error
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x165cf2b]
goroutine 1 [running]:
github.com/netlify/netlifyctl/vendor/github.com/xanzy/go-gitlab.(*Client).NewRequest(0xc420192000, 0x189f111, 0x4, 0x18a2b00, 0x7, 0x16ff200, 0xc4203daba0, 0xc420421680, 0x1, 0x1, ...)
/home/david/src/github.com/netlify/netlifyctl/vendor/github.com/xanzy/go-gitlab/gitlab.go:298 +0x4b
github.com/netlify/netlifyctl/commands/init.getSession(0xc4203daba0, 0xc420421680, 0x1, 0x1, 0x0, 0x0, 0x1, 0xc4204e4570)
/home/david/src/github.com/netlify/netlifyctl/commands/init/gitlab.go:131 +0xbc
github.com/netlify/netlifyctl/commands/init.newGitLabConfigurator(0x21f10d0, 0xc4204e4210, 0xc42051e100, 0xc4204e43f0, 0xc42051e100, 0xc420241038)
/home/david/src/github.com/netlify/netlifyctl/commands/init/gitlab.go:33 +0x180
github.com/netlify/netlifyctl/commands/init.loadConfigurator(0x21f10d0, 0xc4204e4210, 0xc42051e100, 0x1010199, 0xc4204e4210, 0x30, 0x30)
/home/david/src/github.com/netlify/netlifyctl/commands/init/git.go:39 +0x113
github.com/netlify/netlifyctl/commands/init.initSite(0x21f10d0, 0xc4204e4210, 0xc4204926c0, 0xc4201b9280, 0x1, 0x1, 0x1, 0xc4204e4180)
/home/david/src/github.com/netlify/netlifyctl/commands/init/init.go:38 +0x6e6
github.com/netlify/netlifyctl/commands/middleware.ClientMiddleware.func1(0x21f10d0, 0xc4204e40f0, 0xc4204926c0, 0xc4201b9280, 0x1, 0x1, 0x142370f, 0x17c1b20)
/home/david/src/github.com/netlify/netlifyctl/commands/middleware/middleware.go:183 +0x339
github.com/netlify/netlifyctl/commands/middleware.AuthMiddleware.func1(0x21f10d0, 0xc4204e4090, 0xc4204926c0, 0xc4201b9280, 0x1, 0x1, 0x1d9e9e0, 0x19214b8)
/home/david/src/github.com/netlify/netlifyctl/commands/middleware/middleware.go:128 +0x1ca
github.com/netlify/netlifyctl/commands/middleware.LoggingMiddleware.func1(0x20097d0, 0xc420034088, 0xc4204926c0, 0xc4201b9280, 0x1, 0x1, 0xc4202a3560, 0xc420421b80)
/home/david/src/github.com/netlify/netlifyctl/commands/middleware/middleware.go:116 +0x1f1
github.com/netlify/netlifyctl/commands/middleware.DebugMiddleware.func1(0x20097d0, 0xc420034088, 0xc4204926c0, 0xc4201b9280, 0x1, 0x1, 0x0,0x0)
/home/david/src/github.com/netlify/netlifyctl/commands/middleware/middleware.go:89 +0x4bb
github.com/netlify/netlifyctl/commands/middleware.NewRunFunc.func1(0xc4204926c0, 0xc4201b9280, 0x1, 0x1, 0x0, 0x0)
/home/david/src/github.com/netlify/netlifyctl/commands/middleware/middleware.go:52 +0xf2
github.com/netlify/netlifyctl/vendor/github.com/spf13/cobra.(*Command).execute(0xc4204926c0, 0xc4201b9240, 0x1, 0x1, 0xc4204926c0, 0xc4201b9240)
/home/david/src/github.com/netlify/netlifyctl/vendor/github.com/spf13/cobra/command.go:644 +0x3db
github.com/netlify/netlifyctl/vendor/github.com/spf13/cobra.(*Command).ExecuteC(0x1d8d7c0, 0x1dbb7fd, 0x189eb65, 0x3)
/home/david/src/github.com/netlify/netlifyctl/vendor/github.com/spf13/cobra/command.go:734 +0x2d4
github.com/netlify/netlifyctl/commands.Execute()
/home/david/src/github.com/netlify/netlifyctl/commands/netlify.go:41 +0x29b
main.main()
/home/david/src/github.com/netlify/netlifyctl/main.go:16 +0x79
I'm looking for the same thing that netlify init -m
does using the old netlify-cli:
Can't use the web interface to setup Deploy Previews because the repo belongs to a Github Org that has restricted 3rd party app access, and the owners are all in the IT department and it would be a long wait to get them to approve
Tried netlify-cli but web hooks only manage to trigger production builds and not Deploy Previews (pushes and PRs on other branches trigger a production deployment build)
Tried this, but it also only deploys to the production url
It's cool that I can deploy without associating with a git repo, assumed it'd be possible to pass a flag to tell it this is a preview deploy, not implemented yet or did I miss it?
edit: looking at the api docs, it looks like deploy previews aren't exposed via api?
Headers in netlify.toml
are currently ignored by netlifyctl.
I assume this is a known issue, but wanted to file it to track the progress.
Currently, the site ID must be read from the terminal (and thus entered in the toml file by netlifyctl to be used). Would be great to be able to pass this via command line!
Make sure to update the help text if this option gets added please :)
Hi there,
This recent commit has busted my programmatic use of netlifyctl.
When I now run netlifyctl, I get:
[1] SOME-WEBSITE-prod
[2] SOME-WEBSITE-staging
=> Which site?
This is a bug, as netlifyctl already knows which website I'm deploying: I specify the appropriate website api id in the supplied config file.
The "Which site?" option means that programmatic use of netlifyctl is now busted. Everything worked until I pulled in this commit.
The come from open-api and they are hard to understand.
Does this project have much support at Netlify? Seems like the pace of adding basic features is pretty slow.
For example, having decent error messages #4 has been an issue for over 18 months.
Also, the docs encourage the use of this newer, undocumented cli tool, but it seems pretty flakey. Seems better to just point to this tool as a beta.
I'm running netlifyctl headless, in a script executed on the end of a pipe. It looks like 0.2.0 crashes if the output isn't a TTY (?).
This is easy to demonstrate by running netlifyctl deploy ... | cat
, which crashes with:
Counting objects ....
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x28 pc=0x84ca01]
goroutine 1 [running]:
github.com/netlify/netlifyctl/operations.(*DeployObserver).OnSuccessfulStep(0xc4201526c0, 0xc4204eb5f0, 0xa, 0xc4204eb5f0)
/home/david/src/github.com/netlify/netlifyctl/operations/deploy.go:43 +0xc1
github.com/netlify/netlifyctl/vendor/github.com/netlify/open-api/go/porcelain.walk.func1(0xc4204eb560, 0x22, 0x10559e0, 0xc420287ba0, 0x0, 0x0, 0x0, 0x0)
/home/david/src/github.com/netlify/netlifyctl/vendor/github.com/netlify/open-api/go/porcelain/deploy.go:480 +0x343
path/filepath.walk(0xc4204eb560, 0x22, 0x10559e0, 0xc420287ba0, 0xc4204eb4a0, 0x0, 0x0)
/usr/local/go/src/path/filepath/path.go:351 +0x81
path/filepath.walk(0x7ffd72860e0f, 0x17, 0x10559e0, 0xc420287a00, 0xc4204eb4a0, 0x0, 0x30)
/usr/local/go/src/path/filepath/path.go:376 +0x414
path/filepath.Walk(0x7ffd72860e0f, 0x17, 0xc4204eb4a0, 0x0, 0xc4204eb470)
/usr/local/go/src/path/filepath/path.go:398 +0x14c
github.com/netlify/netlifyctl/vendor/github.com/netlify/open-api/go/porcelain.walk(0x7ffd72860e0f, 0x17, 0x1056920, 0xc4201526c0, 0x0, 0x0, 0xc4200c1080)
/home/david/src/github.com/netlify/netlifyctl/vendor/github.com/netlify/open-api/go/porcelain/deploy.go:487 +0x1be
github.com/netlify/netlifyctl/vendor/github.com/netlify/open-api/go/porcelain.(*Netlify).DoDeploy(0xc4202845e0, 0x7fa822de02c0, 0xc4204eae70, 0xc4200ccf30, 0x0, 0xba29a0, 0xbc3d00, 0xc4204f2900)
/home/david/src/github.com/netlify/netlifyctl/vendor/github.com/netlify/open-api/go/porcelain/deploy.go:173 +0xc5
github.com/netlify/netlifyctl/vendor/github.com/netlify/open-api/go/porcelain.(*Netlify).DeploySite(0xc4202845e0, 0x7fa822de02c0, 0xc4204eae70, 0xc4204eb050, 0x24, 0x7ffd72860e0f, 0x17, 0x0, 0x0, 0x0, ...)
/home/david/src/github.com/netlify/netlifyctl/vendor/github.com/netlify/open-api/go/porcelain/deploy.go:153 +0x9d
github.com/netlify/netlifyctl/commands/deploy.(*deployCmd).deploySite(0xc4202f66c0, 0x7fa822de0280, 0xc4204eae70, 0xc420282000, 0xc4201f6280, 0x0, 0x8, 0xc4203638b0, 0x84f912)
/home/david/src/github.com/netlify/netlifyctl/commands/deploy/deploy.go:85 +0x61b
github.com/netlify/netlifyctl/commands/deploy.(*deployCmd).(github.com/netlify/netlifyctl/commands/deploy.deploySite)-fm(0x7fa822de0280, 0xc4204eae70, 0xc420282000, 0xc4201f6280, 0x0, 0x8, 0x0, 0x10a3da0)
/home/david/src/github.com/netlify/netlifyctl/commands/deploy/deploy.go:44 +0x69
github.com/netlify/netlifyctl/commands/middleware.DebugMiddleware.func1(0x7fa822de0280, 0xc4204eae70, 0xc420282000, 0xc4201f6280, 0x0, 0x8, 0x0, 0x0)
/home/david/src/github.com/netlify/netlifyctl/commands/middleware/middleware.go:87 +0x509
github.com/netlify/netlifyctl/commands/middleware.LoggingMiddleware.func1(0x7fa822de0280, 0xc4204eae10, 0xc420282000, 0xc4201f6280, 0x0, 0x8, 0x10534a0, 0xc420016320)
/home/david/src/github.com/netlify/netlifyctl/commands/middleware/middleware.go:113 +0x1f7
github.com/netlify/netlifyctl/commands/middleware.AuthMiddleware.func1(0x7fa822de0280, 0xc4204ead80, 0xc420282000, 0xc4201f6280, 0x0, 0x8, 0x1, 0xc4204eacc0)
/home/david/src/github.com/netlify/netlifyctl/commands/middleware/middleware.go:124 +0x1d4
github.com/netlify/netlifyctl/commands/middleware.ClientMiddleware.func1(0x7fa822de0200, 0xc420016320, 0xc420282000, 0xc4201f6280, 0x0, 0x8, 0xc687bd, 0x4)
/home/david/src/github.com/netlify/netlifyctl/commands/middleware/middleware.go:177 +0x316
github.com/netlify/netlifyctl/commands/middleware.NewRunFunc.func1(0xc420282000, 0xc4201f6280, 0x0, 0x8, 0x0, 0x0)
/home/david/src/github.com/netlify/netlifyctl/commands/middleware/middleware.go:52 +0xf5
github.com/netlify/netlifyctl/vendor/github.com/spf13/cobra.(*Command).execute(0xc420282000, 0xc4201f6200, 0x8, 0x8, 0xc420282000, 0xc4201f6200)
/home/david/src/github.com/netlify/netlifyctl/vendor/github.com/spf13/cobra/command.go:644 +0x3ef
github.com/netlify/netlifyctl/vendor/github.com/spf13/cobra.(*Command).ExecuteC(0x1095c60, 0x10bf6b7, 0xc67fba, 0x3)
/home/david/src/github.com/netlify/netlifyctl/vendor/github.com/spf13/cobra/command.go:734 +0x339
github.com/netlify/netlifyctl/commands.Execute()
/home/david/src/github.com/netlify/netlifyctl/commands/netlify.go:41 +0x2a5
main.main()
/home/david/src/github.com/netlify/netlifyctl/main.go:16 +0x7e
0.1.5 works fine, in comparison. (It doesn't have ac209cb, which I suspect is the problem.)
As far as I can tell, there is no way to let netlifyctl create a netlify.toml file for my existing site. I would accept a solution that made me input a site ID or sitename, but I would rather it do as netlify-cli does and list all the sites I have access to with my access token.
Currently, the workflow is:
"run netlifyctl deploy, don't let it create a new site. Experience error, and edit netlify.toml with site ID manually":
$ netlifyctl -A $NETLIFY_ACCESS_TOKEN deploy
=> We cannot find a site for this repository, do you want to create a new one? (yes/no) no
=> What path would you like deployed? (default: .)
Error: no consumer: "text/html; charset=utf-8"
Please implement some form of site choosing that will create a valid netlify.toml for an existing site without manually editing the file :)
Hi,
May I know why rewrite it in golang? Is there any benefit? Or it just an experiment?
We have a need to automatically deploy app from our go application.
I have tried using your app but with no success.
Is there an example of how to use it this way?
Here is the example:
package deployment
import (
"path/filepath"
"github.com/netlify/netlifyctl/context"
netlify "github.com/netlify/open-api/go/porcelain"
)
// DeployApp deploys application on remote server.
func DeployApp(appID string) {
siteID := "78cf1c0c-6834-4cd8-9b9d-ee5765ef921e"
dir := filepath.Join("./data", appID)
draft := false
ctx := context.Background()
client := context.GetClient(ctx)
options := netlify.DeployOptions{
SiteID: siteID,
Dir: dir,
IsDraft: draft,
}
client.DeploySite(ctx, options)
}
This gives me error interface conversion: interface {} is nil, not *porcelain.Netlify
Also, the alternative would be to call command using exec, but this is blocked by #42 so I'm kinda stuck. :(
reported in a support ticket. I encouraged the reporter to follow this issue.
They are running on ubuntu 14.04 64 bit.
No site configured in the netlify.toml, fetching your existing sites.
Choose a site to deploy to or 0 to create a new site.
[0] Create a new site
[1] site1
[2] site2
[3] site3
[...]
[13] site13
=> Which site? (default: 0) 2
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x7f98fd]
goroutine 1 [running]:
github.com/netlify/netlifyctl/operations.AskForInput(0x8f8869, 0xb, 0x8f18e7, 0x1, 0xc42015f5b0, 0x1, 0x1, 0x0, 0x0, 0x410760, ...)
/home/boxofmonocles/gocode/src/github.com/netlify/netlifyctl/operations/ui.go:57 +0x26d
github.com/netlify/netlifyctl/operations.ChooseOrCreateSite(0xc42012c180, 0x7f01a4f5a430, 0xc4202017a0, 0x7f01a4f5a430, 0xc4202017a0, 0x4118cc)
/home/boxofmonocles/gocode/src/github.com/netlify/netlifyctl/operations/site.go:86 +0x4a7
github.com/netlify/netlifyctl/commands/deploy.(*deployCmd).deploySite(0xc42041fe60, 0x7f01a4f5a470, 0xc4202017a0, 0xc420370b40, 0xc42012c100, 0x0, 0x2, 0x0, 0x0)
/home/boxofmonocles/gocode/src/github.com/netlify/netlifyctl/commands/deploy/deploy.go:48 +0x90e
github.com/netlify/netlifyctl/commands/deploy.(*deployCmd).(github.com/netlify/netlifyctl/commands/deploy.deploySite)-fm(0x7f01a4f5a470, 0xc4202017a0, 0xc420370b40, 0xc42012c100, 0x0, 0x2, 0x7f01a4f5a430, 0xc4204efa38)
/home/boxofmonocles/gocode/src/github.com/netlify/netlifyctl/commands/deploy/deploy.go:33 +0x69
github.com/netlify/netlifyctl/commands/middleware.DebugMiddleware.func1(0x7f01a4f5a470, 0xc4202017a0, 0xc420370b40, 0xc42012c100, 0x0, 0x2, 0x0, 0x0)
/home/boxofmonocles/gocode/src/github.com/netlify/netlifyctl/commands/middleware/middleware.go:67 +0x104
github.com/netlify/netlifyctl/commands/middleware.AuthMiddleware.func1(0x7f01a4f5a470, 0xc420201710, 0xc420370b40, 0xc42012c100, 0x0, 0x2, 0x1, 0xc420201680)
/home/boxofmonocles/gocode/src/github.com/netlify/netlifyctl/commands/middleware/middleware.go:86 +0x1d4
github.com/netlify/netlifyctl/commands/middleware.ClientMiddleware.func1(0x7f01a4f5a470, 0xc420201590, 0xc420370b40, 0xc42012c100, 0x0, 0x2, 0x88ebe0, 0x7f01a4f5a3b0)
/home/boxofmonocles/gocode/src/github.com/netlify/netlifyctl/commands/middleware/middleware.go:124 +0x26b
github.com/netlify/netlifyctl/commands/middleware.LoggingMiddleware.func1(0x7f01a4f5a470, 0xc420201590, 0xc420370b40, 0xc42012c100, 0x0, 0x2, 0x8f2c24, 0x4)
/home/boxofmonocles/gocode/src/github.com/netlify/netlifyctl/commands/middleware/middleware.go:75 +0x216
github.com/netlify/netlifyctl/commands/middleware.NewRunFunc.func1(0xc420370b40, 0xc42012c100, 0x0, 0x2, 0x0, 0x0)
/home/boxofmonocles/gocode/src/github.com/netlify/netlifyctl/commands/middleware/middleware.go:42 +0xf5
github.com/spf13/cobra.(*Command).execute(0xc420370b40, 0xc42041ffa0, 0x2, 0x2, 0xc420370b40, 0xc42041ffa0)
/home/boxofmonocles/gocode/src/github.com/spf13/cobra/command.go:643 +0x3f8
github.com/spf13/cobra.(*Command).ExecuteC(0xb4bda0, 0xb70c8b, 0x8f26e7, 0x3)
/home/boxofmonocles/gocode/src/github.com/spf13/cobra/command.go:733 +0x339
github.com/netlify/netlifyctl/commands.Execute()
/home/boxofmonocles/gocode/src/github.com/netlify/netlifyctl/commands/netlify.go:42 +0x2a5
main.main()
/home/boxofmonocles/gocode/src/github.com/netlify/netlifyctl/main.go:16 +0x7e
I am currently using this tool for manual deploys and would like to add a name/comment to manual deploys that would display on the deploys tab for an application. This is essentially a replacement for the sha / commit message that appears on the website for automated deploys.
I messaged support already and am aware that there is currently no API endpoint for this but they asked me to open an issue here so it can be tracked publicly.
Listing sites works, but deploy etc all give:
$ netlifyctl deploy
panic: interface conversion: interface {} is nil, not *porcelain.Netlify
goroutine 1 [running]:
github.com/netlify/netlifyctl/context.GetClient(0x11a4300, 0xc420014058, 0xc420014058)
/home/david/src/github.com/netlify/netlifyctl/context/context.go:30 +0x88
github.com/netlify/netlifyctl/operations.ChooseOrCreateSite(0x7f841e4f8528, 0xc420014058, 0xc4204d5680, 0x0, 0x0, 0xc4203beb88)
/home/david/src/github.com/netlify/netlifyctl/operations/site.go:69 +0xc5
github.com/netlify/netlifyctl/commands/middleware.SiteConfigMiddleware.func1(0x7f841e4f8528, 0xc420014058, 0xc4204d5680, 0x121efa0, 0x0, 0x0, 0xcf5e2e, 0x4)
/home/david/src/github.com/netlify/netlifyctl/commands/middleware/middleware.go:200 +0x2b4
github.com/netlify/netlifyctl/commands/middleware.NewRunFunc.func1(0xc4204d5680, 0x121efa0, 0x0, 0x0, 0x0, 0x0)
/home/david/src/github.com/netlify/netlifyctl/commands/middleware/middleware.go:52 +0xf2
github.com/netlify/netlifyctl/vendor/github.com/spf13/cobra.(*Command).execute(0xc4204d5680, 0x121efa0, 0x0, 0x0, 0xc4204d5680, 0x121efa0)
/home/david/src/github.com/netlify/netlifyctl/vendor/github.com/spf13/cobra/command.go:644 +0x3e8
github.com/netlify/netlifyctl/vendor/github.com/spf13/cobra.(*Command).ExecuteC(0x11ef9e0, 0x121ec1c, 0xcf56fa, 0x3)
/home/david/src/github.com/netlify/netlifyctl/vendor/github.com/spf13/cobra/command.go:734 +0x2fe
github.com/netlify/netlifyctl/commands.Execute()
/home/david/src/github.com/netlify/netlifyctl/commands/netlify.go:41 +0x2a5
main.main()
/home/david/src/github.com/netlify/netlifyctl/main.go:16 +0x79
0.2.2 works.
(Sorry for abruptness, late here!)
Following the steps for init --manual
after reaching:
Configuring Continuous Deployment ... 🌎
Give this Netlify SSH public key access to your repository:
(SSH_KEY)
and copying and adding the SSH key to the gitlab repo:
GITLAB_PROJECT > Settings > Repository - Deploy Keys
the command line holds with
Configuring Continuous Deployment ... 🌏
(with the globe animating)
The latest release file doesn't include the -C flag.
When a user runs netlifyctl init -m
they are given a webhook URL to put in place in GitHub's UI. This is pretty straightforward:
...however there is a default setting on the Content type to be "application/x-www-form-urlencoded" which doesn't at present work with our system (GitHub sends JSON with this content type, rails does not parse it successfully).
We should call this out when giving the user the webhook that the content-type should be adjusted to "application/json" and then things will just work.
I had written a toml file with redirects in it and when I deployed it to a new site (with a new site id) it overwrote my existing file.
// edit
Further testing has shown that this overwrites it all the time.
ryan@ryan-mbp [~/go_home/src/github.com/rybit/junk/proxy-test]
$ cat netlify.toml
[Settings]
ID = "59b0612d-9e56-407a-b958-3987c05d17fa"
Path = "."
[[redirects]]
origin = "/other"
destination = "/otherpage.html"
ryan@ryan-mbp [~/go_home/src/github.com/rybit/junk/proxy-test]
$ netlifyctl deploy -D
DEBU[07 Jul 17 16:08 -0700] PreRun arguments=[] command=deploy
DebugFlags called on deploy
deploy
-A, --access-token [] [L]
-b, --base-directory [] [L]
-C, --config [netlify.toml] netlify.toml [L]
-D, --debug [false] true [L]
-d, --draft [false] false [L]
-E, --endpoint [https://api.netlify.com] https://api.netlify.com [L]
-h, --help [false] false [L]
-m, --message [] [L]
-y, --yes [false] false [L]
DEBU[07 Jul 17 16:08 -0700] Parsed configuration: {Settings:{ID:59b0612d-9e56-407a-b958-3987c05d17fa Path:.} root:/Users/ryan/go_home/src/github.com/rybit/junk/proxy-test}
DEBU[07 Jul 17 16:08 -0700] Relative path detected, going to deploy: '/Users/ryan/go_home/src/github.com/rybit/junk/proxy-test'
DEBU[07 Jul 17 16:08 -0700] deploying site draft=false path="/Users/ryan/go_home/src/github.com/rybit/junk/proxy-test" site=59b0612d-9e56-407a-b958-3987c05d17fa
DEBU[07 Jul 17 16:08 -0700] Starting to deploy files deploy_files=3 site_id=59b0612d-9e56-407a-b958-3987c05d17fa
=> Done, your website is live in http://ryan-proxy-test.netlify.com
ryan@ryan-mbp [~/go_home/src/github.com/rybit/junk/proxy-test]
$ cat netlify.toml
[Settings]
ID = "59b0612d-9e56-407a-b958-3987c05d17fa"
Path = "."
$ cd mywebsite && netlifyctl deploy
CCounting objects ✘
open netlifyctl-debug.log: too many open files
$ echo $?
255
$ find .git -type f |wc -l
108
$ find . -type f |wc -l
34929
$ netlifyctl version
cb64d2d16fb15394bb7d24b9fdc6d535e3071560
I am trying to deploy a documentation website (small and numerous pages). It works using the git push
-deploy though. I would prefer to rely on this client though...
This error seems to come from golang itself, while accumulating file hashes.
It seems something deadlocks while trying to read from my ssd? Should I do something like bumping my ulimit? I have 99% inodes free...
stacktrace: https://gist.github.com/fenollp/e2c63ba00e03246054563a02900f7361
Possible solutions:
--source
& --target
flags to deploy
that, in addition to --base-directory
, allow uploading parts of a website. May also benefit people who want to update only part of their website.Thanks
It seems like we are trying to support this:
https://github.com/netlify/netlifyctl/blob/master/commands/deploy/deploy.go#L39
...but I sure can't get it to work, using either of the invocations that I think ought to do the trick:
$ netlifyctl -m "a deploy message from netlifyctl" deploy
What path would you like deployed? (default: .)
Counting objects: 62 total objects ✔
Resolving deltas: 0 objects to upload ✔
Uploading objects: 0/0 done ✔
Deploy done 🌎
https://www.cyclocrass.com
$ netlifyctl deploy -m "your ad here"
What path would you like deployed? (default: .)
Counting objects: 62 total objects ✔
Resolving deltas: 0 objects to upload ✔
Uploading objects: 0/0 done ✔
Deploy done 🌎
leads to these deploys:
There are some great Netlify-unique features that can significantly change the operation of a site, but which currently can't easily be tested on a local development machine-- particularly _headers, _redirects, and netlify.toml.
I made a little dev server for my own use which reads these files and reproduces the Netlify production behavior, and I feel like an open source version of this could be useful for others. Is this something that would make sense as a feature pull request to the Netlify CLI? Or should I release it as a standalone tool? (Or maybe this already exists and I just haven't come across it :D)
When you neither:
~/.netlify/config
containing an access token-A YOUR_ACCESS_TOKEN
...then netlifyctl deploy does not work:
$ netlifyctl deploy
=> What path would you like deployed? (default: .)
&{0xc42000c200} no consumer: "text/html"
I guess in this case we should prompt for an access token or at least link to https://app.netlify.com/accounts/applications so the user can figure out what to do?
Since we will eventually complete the deprecation of netlify-cli, we'll need to provide netlifyctl via an npm wrapper of some sort.
I'd say this is probably blocked on #6 to give netlifyctl the same powers that netlify-cli has for site configuration instead of just deployment.
@rybit has suggested this is the eventual plan, not just a wish, but that there is no timeline for this update yet.
Hi there
Apparently this netlify go client will be the successor to the node one.
Could you please ensure that this client returns appropriate (unix) error codes, depending on success / failure? E.g. on website deploy success, return 0 else non-zero.
This makes it easier to integrate the netlify client into a large shell script.
Many thanks!
Greg
$ netlifyctl deploy -d
=> Domain ready, deploying assets
=> What path would you like deployed? (default: .)
=> Done, your website is live in https://www.cyclocrass.com
Actually it was not published at the prod URL but as a deploy preview with only a https://hash--sitename.netlify.com URL.
netlifyctl deploy -A 9e06ca34686***0b3c69e0e
Counting objects ....
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x28 pc=0x84ca01]
goroutine 1 [running]:
github.com/netlify/netlifyctl/operations.(*DeployObserver).OnSuccessfulStep(0xc4200103c0, 0xc4202a05a0, 0xa, 0xc4202a05a0)
/home/david/src/github.com/netlify/netlifyctl/operations/deploy.go:43 +0xc1
github.com/netlify/netlifyctl/vendor/github.com/netlify/open-api/go/porcelain.walk.func1(0xc4200a0240, 0x89, 0x10559e0, 0xc42051e4e0, 0x0, 0x0, 0x0, 0x0)
/home/david/src/github.com/netlify/netlifyctl/vendor/github.com/netlify/open-api/go/porcelain/deploy.go:480 +0x343
path/filepath.walk(0xc4200a0240, 0x89, 0x10559e0, 0xc42051e4e0, 0xc4202a0540, 0x0, 0x0)
/usr/local/go/src/path/filepath/path.go:351 +0x81
path/filepath.walk(0xc420520380, 0x7e, 0x10559e0, 0xc42051e410, 0xc4202a0540, 0x0, 0x30)
/usr/local/go/src/path/filepath/path.go:376 +0x414
path/filepath.Walk(0xc420520380, 0x7e, 0xc4202a0540, 0x0, 0xc4202a0510)
/usr/local/go/src/path/filepath/path.go:398 +0x14c
github.com/netlify/netlifyctl/vendor/github.com/netlify/open-api/go/porcelain.walk(0xc420520380, 0x7e, 0x1056920, 0xc4200103c0, 0x0, 0x0, 0xc4200a5680)
/home/david/src/github.com/netlify/netlifyctl/vendor/github.com/netlify/open-api/go/porcelain/deploy.go:487 +0x1be
github.com/netlify/netlifyctl/vendor/github.com/netlify/open-api/go/porcelain.(*Netlify).DoDeploy(0xc42051c420, 0x7fec00ee8f98, 0xc42020cb10, 0xc4200a01b0, 0x0, 0xba29a0, 0xbc3d00, 0xc42051a400)
/home/david/src/github.com/netlify/netlifyctl/vendor/github.com/netlify/open-api/go/porcelain/deploy.go:173 +0xc5
github.com/netlify/netlifyctl/vendor/github.com/netlify/open-api/go/porcelain.(*Netlify).DeploySite(0xc42051c420, 0x7fec00ee8f98, 0xc42020cb10, 0xc4202a00f0, 0x24, 0xc420520380, 0x7e, 0x0, 0x0, 0x0, ...)
/home/david/src/github.com/netlify/netlifyctl/vendor/github.com/netlify/open-api/go/porcelain/deploy.go:153 +0x9d
github.com/netlify/netlifyctl/commands/deploy.(*deployCmd).deploySite(0xc420324ba0, 0x7fec00ee8f58, 0xc42020cb10, 0xc42052cb40, 0xc42051c3c0, 0x0, 0x2, 0xc4201918b0, 0x84f912)
/home/david/src/github.com/netlify/netlifyctl/commands/deploy/deploy.go:85 +0x61b
github.com/netlify/netlifyctl/commands/deploy.(*deployCmd).(github.com/netlify/netlifyctl/commands/deploy.deploySite)-fm(0x7fec00ee8f58, 0xc42020cb10, 0xc42052cb40, 0xc42051c3c0, 0x0, 0x2, 0x0, 0x10a3da0)
/home/david/src/github.com/netlify/netlifyctl/commands/deploy/deploy.go:44 +0x69
github.com/netlify/netlifyctl/commands/middleware.DebugMiddleware.func1(0x7fec00ee8f58, 0xc42020cb10, 0xc42052cb40, 0xc42051c3c0, 0x0, 0x2, 0x0, 0x0)
/home/david/src/github.com/netlify/netlifyctl/commands/middleware/middleware.go:87 +0x509
github.com/netlify/netlifyctl/commands/middleware.LoggingMiddleware.func1(0x7fec00ee8f58, 0xc42020cab0, 0xc42052cb40, 0xc42051c3c0, 0x0, 0x2, 0x10534a0, 0xc42007e158)
/home/david/src/github.com/netlify/netlifyctl/commands/middleware/middleware.go:113 +0x1f7
github.com/netlify/netlifyctl/commands/middleware.AuthMiddleware.func1(0x7fec00ee8f58, 0xc42020ca20, 0xc42052cb40, 0xc42051c3c0, 0x0, 0x2, 0x1, 0xc42020c960)
/home/david/src/github.com/netlify/netlifyctl/commands/middleware/middleware.go:124 +0x1d4
github.com/netlify/netlifyctl/commands/middleware.ClientMiddleware.func1(0x7fec00ee8ed8, 0xc42007e158, 0xc42052cb40, 0xc42051c3c0, 0x0, 0x2, 0xc687bd, 0x4)
/home/david/src/github.com/netlify/netlifyctl/commands/middleware/middleware.go:177 +0x316
github.com/netlify/netlifyctl/commands/middleware.NewRunFunc.func1(0xc42052cb40, 0xc42051c3c0, 0x0, 0x2, 0x0, 0x0)
/home/david/src/github.com/netlify/netlifyctl/commands/middleware/middleware.go:52 +0xf5
github.com/netlify/netlifyctl/vendor/github.com/spf13/cobra.(*Command).execute(0xc42052cb40, 0xc42051c220, 0x2, 0x2, 0xc42052cb40, 0xc42051c220)
/home/david/src/github.com/netlify/netlifyctl/vendor/github.com/spf13/cobra/command.go:644 +0x3ef
github.com/netlify/netlifyctl/vendor/github.com/spf13/cobra.(*Command).ExecuteC(0x1095c60, 0x10bf6b7, 0xc67fba, 0x3)
/home/david/src/github.com/netlify/netlifyctl/vendor/github.com/spf13/cobra/command.go:734 +0x339
github.com/netlify/netlifyctl/commands.Execute()
/home/david/src/github.com/netlify/netlifyctl/commands/netlify.go:41 +0x2a5
main.main()
/home/david/src/github.com/netlify/netlifyctl/main.go:16 +0x7e
After downgrading to v0.1.5 everything went well.
Please find the build logs here.
It's difficult to recommend netlifyctl to users when it doesn't quite do everything netlify-cli does. If we want to be able to deprecate netlify-cli, let's get it on the roadmap to make netlifyctl do all that we need it to.
I'd appreciate input from those in the know to start a list here of the features needed to make this complete.
In the meantime, I'll commit to writing up a doc to explain what can be done on each tool.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.