Closed lanzafame closed 5 years ago
Another example output, running just the build step locally:
bash -c 'display_and_run() {
echo "***" "$@"
"$@"
}
env GO111MODULE=on go list -f \'{{if (len .GoFiles)}}{{.ImportPath}}{{end}}\' ./... | grep -v /vendor/ | \
while read pkg; do
(
cd "$(mktemp -d)" && display_and_run go build "$pkg"
)
done'
*** go build github.com/libp2p/go-libp2p-kad-dht/v5
can't load package: package github.com/libp2p/go-libp2p-kad-dht/v5: cannot find package "github.com/libp2p/go-libp2p-kad-dht/v5" in any of:
/usr/lib/go/src/github.com/libp2p/go-libp2p-kad-dht/v5 (from $GOROOT)
/home/lanzafame/src/github.com/libp2p/go-libp2p-kad-dht/v5 (from $GOPATH)
*** go build github.com/libp2p/go-libp2p-kad-dht/v5/opts
can't load package: package github.com/libp2p/go-libp2p-kad-dht/v5/opts: cannot find package "github.com/libp2p/go-libp2p-kad-dht/v5/opts" in any of:
/usr/lib/go/src/github.com/libp2p/go-libp2p-kad-dht/v5/opts (from $GOROOT)
/home/lanzafame/src/github.com/libp2p/go-libp2p-kad-dht/v5/opts (from $GOPATH)
*** go build github.com/libp2p/go-libp2p-kad-dht/v5/pb
can't load package: package github.com/libp2p/go-libp2p-kad-dht/v5/pb: cannot find package "github.com/libp2p/go-libp2p-kad-dht/v5/pb" in any of:
/usr/lib/go/src/github.com/libp2p/go-libp2p-kad-dht/v5/pb (from $GOROOT)
/home/lanzafame/src/github.com/libp2p/go-libp2p-kad-dht/v5/pb (from $GOPATH)
*** go build github.com/libp2p/go-libp2p-kad-dht/v5/providers
can't load package: package github.com/libp2p/go-libp2p-kad-dht/v5/providers: cannot find package "github.com/libp2p/go-libp2p-kad-dht/v5/providers" in any of:
/usr/lib/go/src/github.com/libp2p/go-libp2p-kad-dht/v5/providers (from $GOROOT)
/home/lanzafame/src/github.com/libp2p/go-libp2p-kad-dht/v5/providers (from $GOPATH)
Update, missed env GO111MODULE=on
for go build
:
bash -c 'display_and_run() {
echo "***" "$@"
"$@"
}
env GO111MODULE=on go list -f \'{{if (len .GoFiles)}}{{.ImportPath}}{{end}}\' ./... | grep -v /vendor/ | \
while read pkg; do
(
cd "$(mktemp -d)" && display_and_run env GO111MODULE=on go build "$pkg"
)
done'
go: cannot find main module; see 'go help modules'
*** env GO111MODULE=on go build github.com/libp2p/go-libp2p-kad-dht/v5/opts
go: cannot find main module; see 'go help modules'
*** env GO111MODULE=on go build github.com/libp2p/go-libp2p-kad-dht/v5/pb
go: cannot find main module; see 'go help modules'
*** env GO111MODULE=on go build github.com/libp2p/go-libp2p-kad-dht/v5/providers
go: cannot find main module; see 'go help modules'
Ah... That's because it switches to a different directory. This may be a bug in go but I'm not sure.
We can probably use go build -o /dev/null "$pkg"
instead.
Reading the go help modules
section on main modules, it appears that everything is considered from the context of the root module directory. If that is the case is this script still valid in a modules world?
We can probably use
go build -o /dev/null "$pkg"
instead.
Will that actually build the files?
Hm, you're probably right. We can probably get away with building with respect to the root module (for now, at least).
@Stebalien The other option is we have a new modules aware script that we pull into newly migrated repos?
We can probably use go build -o /dev/null "$pkg" instead.
Will that actually build the files?
Yes.
@Stebalien The other option is we have a new modules aware script that we pull into newly migrated repos?
We can actually do it all in one script:
go list -f '{{if (len .GoFiles)}}{{.ImportPath}} {{if .Module}}{{.Module.Dir}}{{else}}{{.Dir}}{{end}}{{end}}' ./... | while read pkg dir; do
cd "$dir"
go build -o /dev/null "$pkg"
done
The script outputs the following log and error:
Source: https://travis-ci.org/libp2p/go-libp2p-secio/jobs/485661465