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

WIP - Redo CI and Include Automated Docker Deployment #1586

Closed

Conversation

VoR0220
Copy link
Member

@VoR0220 VoR0220 commented Jan 19, 2017

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.

@VoR0220 VoR0220 force-pushed the redoCIAndIncludeDockerReleases branch from 9fa271d to d360093 Compare January 19, 2017 15:18
VoR0220 added 13 commits January 19, 2017 09:21
Signed-off-by: VoR0220 <[email protected]>
Signed-off-by: VoR0220 <[email protected]>
…from build matrix in docs generation

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]>
…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 && \
Copy link

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?

Copy link
Member Author

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]>
@chriseth
Copy link
Contributor

@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).

@VoR0220
Copy link
Member Author

VoR0220 commented Jan 23, 2017

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.

@chriseth
Copy link
Contributor

chriseth commented Jan 23, 2017

@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.

@VoR0220
Copy link
Member Author

VoR0220 commented Jan 23, 2017

@chriseth would it suffice to add alpine linux to that list since this is automating docker deployment?

VoR0220 added 8 commits January 23, 2017 23:25
…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]>
mkdir -p build
cd build
cmake .. -DCMAKE_BUILD_TYPE="$BUILD_TYPE"
make -j2 && install -s solc/solc /usr/bin && install -s test/soltest
Copy link
Member Author

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
Copy link
Member Author

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 && \
Copy link
Member Author

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"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants