-
Notifications
You must be signed in to change notification settings - Fork 6k
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
WIP - Redo CI and Include Automated Docker Deployment #1586
Conversation
Signed-off-by: VoR0220 <[email protected]>
9fa271d
to
d360093
Compare
Signed-off-by: VoR0220 <[email protected]>
Signed-off-by: VoR0220 <[email protected]>
Signed-off-by: VoR0220 <[email protected]>
Signed-off-by: VoR0220 <[email protected]>
…from build matrix in docs generation Signed-off-by: VoR0220 <[email protected]>
…l travis file Signed-off-by: VoR0220 <[email protected]>
Signed-off-by: VoR0220 <[email protected]>
…eps as it relates to travis, added a docker script to begin handling docker (incomplete) Signed-off-by: VoR0220 <[email protected]>
… to use this for os x installations. May take some more time still but should be overall less than before Signed-off-by: VoR0220 <[email protected]>
Signed-off-by: VoR0220 <[email protected]>
Signed-off-by: VoR0220 <[email protected]>
Signed-off-by: VoR0220 <[email protected]>
…to the eth docker container. Also reorganized all travis related files into the travis folder Signed-off-by: VoR0220 <[email protected]>
cd / && rm -rf solidity && \ | ||
apk del sed build-base git make cmake gcc g++ musl-dev curl-dev boost-dev && \ | ||
./scripts/install_deps.sh && \ | ||
sed -i -E -e 's/include <sys\/poll.h>/include <poll.h>/' /usr/include/boost/asio/detail/socket_types.hpp && \ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Really? sed the file to make it run correctly?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not to make it run correctly. Moreso to rid irritating warnings. Its been the case for some time and is the case with the current alpine docker file.
…izing scripts folder better and segregating travis dependencies from other scripts. Give docker files their own folder. Begin modifying tests.sh and install_deps.sh to take into account the new docker setup with cpp-client. Created scripts for containerized testing from solc container to eth container. Signed-off-by: VoR0220 <[email protected]>
@VoR0220 could you please explain what you are trying to do here? The matrix job as it stands now is way too heavy for travis. Also, I think we can restrict the testing to different compilers and different platforms (platforms, not distributions of the same platform). |
Distributions i think could benefit here too. We hit more coverage this way. I was also thinking about what you said last night and my original plan didnt gel with what you had in mind here (my bad). However i still think that multiple versions and distros is a good idea due to Travis' limitations in these realms and to generally test whether or not our install scripts work. Currently my plan moving forward is to find a test filter to exclude all but the end to end tests. These self contained tests should run on all these distros and all these platforms and multiple versions on some of the major ones (os x, ubuntu). These tests are incredibly lightweight so its okay to have more. Finally, we run the end to end tests...which need modifications to just grab the generated bytecode when passed in a flag...nothing else. This gets rid of the containerization needs. The artifacts from this will then be gathered and (i haven't figured this part out yet) sent to an S3 instance or a shared repository of some kind where the artifacts are compared against the original one (assuming it passes). If the bytecode in both optimized and unoptimized format is equivalent, then the test passes, else it fails. |
@VoR0220 I don't think we should check that the install scripts work on every single commit. Again: This puts way to much strain on travis. We already have extremely high travis load because of the sheer amount of repositories in our organisation. Furthermore, we do not have the capacity to maintain that many distributions anyway. We can currently barely support ubuntu, emscripten and docker. It makes total sense to check that we get exactly the same bytecode on windows, on linux and on emscripten, but that's about it. |
@chriseth would it suffice to add alpine linux to that list since this is automating docker deployment? |
…uild arg. Modify build.sh. Begin the creation of the binary creation script. Modify travis env variables to better capture what they are actually doing. Many other things Signed-off-by: VoR0220 <[email protected]>
Signed-off-by: VoR0220 <[email protected]>
Signed-off-by: VoR0220 <[email protected]>
Signed-off-by: VoR0220 <[email protected]>
Signed-off-by: VoR0220 <[email protected]>
Signed-off-by: VoR0220 <[email protected]>
Signed-off-by: VoR0220 <[email protected]>
Signed-off-by: VoR0220 <[email protected]>
Signed-off-by: VoR0220 <[email protected]>
mkdir -p build | ||
cd build | ||
cmake .. -DCMAKE_BUILD_TYPE="$BUILD_TYPE" | ||
make -j2 && install -s solc/solc /usr/bin && install -s test/soltest |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
remove -s
|
||
#Install dependencies, eliminate annoying warnings, test if we are in a test environment, if so, | ||
#add in soltest to the binary. If not, assume this is basic solidity image, build it and ship it out. | ||
RUN ./scripts/install_deps.sh && sed -i -E -e 's/include <sys\/poll.h>/include <poll.h>/' /usr/include/boost/asio/detail/socket_types.hpp |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
put into one run (makes image smaller)
--test -d /tmp/testeth | ||
|
||
echo "--> Running tests without optimizer..." | ||
soltest --run_test=SolidityOptimizer,GasMeterTests,SolidityEndToEndTest -- --ipcpath=/tmp/testeth/geth.ipc && \ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
change source for suites to add test label for "require IPC"
Signed-off-by: VoR0220 [email protected]
This PR begins to address both #1572 and #1473
Initial test: See if I can properly parallel OS X and reduce into each matrix each set of jobs.
What I learned: No, I can't parallel OS X by putting each Xcode image into an array...I do need to separate them out clearer.