Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create Jenkinsfile #4430

Closed
wants to merge 9 commits into from
Closed

Create Jenkinsfile #4430

wants to merge 9 commits into from

Conversation

victorb
Copy link
Member

@victorb victorb commented Nov 27, 2017

Got them cross-platform tests for go-ipfs here. Pipeline is here (will move to IPFS org) https://github.com/VictorBjelkholm/jenkins-libs/blob/master/vars/golang.groovy

Still have some refactoring to do with the pipeline and figure out if to skip fuse tests or install fuse on all workers. Thoughts?

@ghost ghost assigned victorb Nov 27, 2017
@ghost ghost added the status/in-progress In progress label Nov 27, 2017
Copy link
Member

@magik6k magik6k left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

IMO go-ipfs should get a custom pipeline. The problem here is that sharness is not included in make test task, and it doens't run on windows (does it?). Currently go tests/sharness are run as separate tasks in parallel:

https://github.com/ipfs/jenkins/blob/eacb42e7b29d91ff245da09556a2c046c0fd4692/config/org.jenkinsci.plugins.configfiles.GlobalConfigFiles.xml#L77-L82

@victorb
Copy link
Member Author

victorb commented Nov 27, 2017

go-ipfs should get a custom pipeline

Well, if it absolutely have to, sure. But we should try to make testing across all repositories as similar as possible. This makes it easier to write a generic pipeline that we can reuse, and it'll also help people to get started to develop when they are new, since once you learned how one repo works, it'll be similar.

The problem here is that sharness is not included

I can see activating sharness tests could be a config option in the golang() call from the Jenkinsfile, so we can activate it where sharness tests exists.

it doens't run on windows

With this new Jenkinsfile, it does test on macOS, Linux and Windows.

@Kubuxu
Copy link
Member

Kubuxu commented Dec 5, 2017

@victorbjelkholm go-ipfs is quite a special flower here. Tests, Makefiles and coverage collection are at least an order of magnitude more complex than rest of our projects. In future we might need similar complexity for other repos but I think it might be more worthwhile right now to just make it work with custom pipeline (including the different distros).

Any way we can for time being have both builds, the old pipeline and the new one?

@victorb
Copy link
Member Author

victorb commented Dec 15, 2017

Missing to finish:

  • Run sharness tests
  • Solve macOS test failures for go test
  • Solve windows test failures for go test

macOS failures:

--- FAIL: TestManageInvalidNFds (0.00s)
	ulimit_test.go:23: Testing file descriptor invalidity
	ulimit_test.go:43: ManageFdLimit should return an error
Successfully raised file descriptor limit to 9223372036854765568.
FAIL
FAIL	github.com/ipfs/go-ipfs/cmd/ipfs/util	0.010s

windows failures:

--- FAIL: TestConfig (0.00s)
	serialize_test.go:31: config file should not be executable or accessible to world: -rw-rw-rw-
FAIL
FAIL	github.com/ipfs/go-ipfs/repo/fsrepo/serialize	1.628s
--- FAIL: TestValidAfter (0.01s)
	centralized_test.go:168: providers []
FAIL
FAIL	github.com/ipfs/go-ipfs/routing/mock	2.892s
--- FAIL: TestIsPinnedLookup (0.00s)
	pin_test.go:45: A1 should be unpinned
--- FAIL: TestPinUpdate (0.00s)
	pin_test.go:34: c2 should be pinned now
FAIL
FAIL	github.com/ipfs/go-ipfs/pin	30.562s
--- FAIL: TestRepublisher (0.30s)
	repub_test.go:57: shouldnt have received publish yet!
FAIL
FAIL	github.com/ipfs/go-ipfs/mfs	7.318s
--- FAIL: TestReprovide (0.02s)
	reprovide_test.go:51: Should have gotten a provider
FAIL
FAIL	github.com/ipfs/go-ipfs/exchange/reprovide	0.292s
# gx/ipfs/QmaFNtBAXX4nVMQWbUqNysXyhevUj1k4B1y5uS45LC7Vw9/fuse
..\..\..\gx\ipfs\QmaFNtBAXX4nVMQWbUqNysXyhevUj1k4B1y5uS45LC7Vw9\fuse\error_std.go:27:20: undefined: errNoXattr
..\..\..\gx\ipfs\QmaFNtBAXX4nVMQWbUqNysXyhevUj1k4B1y5uS45LC7Vw9\fuse\fuse.go:1345:26: undefined: attr
..\..\..\gx\ipfs\QmaFNtBAXX4nVMQWbUqNysXyhevUj1k4B1y5uS45LC7Vw9\fuse\fuse_kernel.go:166:28: undefined: syscall.O_DIRECTORY
..\..\..\gx\ipfs\QmaFNtBAXX4nVMQWbUqNysXyhevUj1k4B1y5uS45LC7Vw9\fuse\fuse_kernel.go:175:38: undefined: syscall.O_ACCMODE
..\..\..\gx\ipfs\QmaFNtBAXX4nVMQWbUqNysXyhevUj1k4B1y5uS45LC7Vw9\fuse\fuse_kernel.go:404:17: undefined: attr
ok  	github.com/ipfs/go-ipfs/cmd/ipfs	0.406s
FAIL	github.com/ipfs/go-ipfs/cmd/ipfs/util [build failed]
# github.com/ipfs/go-ipfs/cmd/ipfs/util
cmd\ipfs\util\ulimit_test.go:29:12: undefined: syscall.Rlimit
cmd\ipfs\util\ulimit_test.go:30:11: undefined: syscall.Getrlimit
cmd\ipfs\util\ulimit_test.go:30:29: undefined: syscall.RLIMIT_NOFILE
cmd\ipfs\util\ulimit_test.go:65:12: undefined: syscall.Rlimit
cmd\ipfs\util\ulimit_test.go:66:11: undefined: syscall.Getrlimit
cmd\ipfs\util\ulimit_test.go:66:29: undefined: syscall.RLIMIT_NOFILE

Full build: https://ci.ipfs.team/blue/organizations/jenkins/IPFS%2Fgo-ipfs/detail/PR-4430/21/pipeline/8

License: MIT
Signed-off-by: Łukasz Magiera <magik6k@gmail.com>
License: MIT
Signed-off-by: Łukasz Magiera <magik6k@gmail.com>
License: MIT
Signed-off-by: Łukasz Magiera <magik6k@gmail.com>
License: MIT
Signed-off-by: Łukasz Magiera <magik6k@gmail.com>
License: MIT
Signed-off-by: Łukasz Magiera <magik6k@gmail.com>
@magik6k magik6k mentioned this pull request Jan 31, 2018
@magik6k
Copy link
Member

magik6k commented Jan 31, 2018

Pushed some fixes for windows tests in #4632.

To fix the fuse errors you need to add nofuse tag to go test on Windows (or just use make):

go test ./... -tags="nofuse"

@victorb victorb mentioned this pull request Feb 12, 2018
@Kubuxu Kubuxu removed their request for review March 6, 2018 02:58
@Kubuxu
Copy link
Member

Kubuxu commented Mar 6, 2018

@magik6k as I understand the blocker here is on propagating go-libp2p-peer, right?

@Kubuxu Kubuxu added status/blocked Unable to be worked further until needs are met and removed status/in-progress In progress labels Mar 6, 2018
@magik6k
Copy link
Member

magik6k commented Mar 6, 2018

Yep, that's the only thing blocking this for now

@victorb
Copy link
Member Author

victorb commented Mar 19, 2018

Closing in favor of #4530

@victorb victorb closed this Mar 19, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
status/blocked Unable to be worked further until needs are met
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants