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

automated build tweaks #6

Merged
merged 7 commits into from
Oct 1, 2015
Merged

automated build tweaks #6

merged 7 commits into from
Oct 1, 2015

Conversation

daler
Copy link
Member

@daler daler commented Sep 28, 2015

No description provided.

@daler
Copy link
Member Author

daler commented Sep 28, 2015

It was taking a while for me to download packages for the CentOS container (firewall issues at work I think?) so I added a Dockerfile to build a locally-cached container, an additional script to support it, and docs.

Also, I realized the existing update_binstar_packages.py script was trying to build osx-64 packages from within the CentOS container. As I understand it, cross-platform building only works for pure-Python packages. of which there are relatively few in this repo. So I changed the build script to only build for the platform the script is run on.

Last, I found it useful to force builds when debugging this stuff, so I added a --force-build option.

Rather than push the changes I figured I'd use a PR to double check with everyone else to see if this makes sense.

RUN wget http://people.centos.org/tru/devtools-2/devtools-2.repo -O /etc/yum.repos.d/devtools-2.repo
RUN yum install -y devtoolset-2-gcc devtoolset-2-binutils devtoolset-2-gcc-c++
ENV MANPATH=""
RUN source /opt/rh/devtoolset-2/enable
Copy link
Member

Choose a reason for hiding this comment

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

These two lines should go in update_binstar_packages_docker_prebuilt.sh -- they turn on gcc-4.8 which is helpful for building a lot of packages. I'm not sure how well this gets cached between a recipe and a run.

@chapmanb
Copy link
Member

Ryan -- this is awesome, thank you.

  • For the pre-built container, we could pre-build and host it on http://hub.docker.com to make this easier for folks to just pull in.
  • For building OSX packages, it should only try to do this for a Python build (with setup.py in the shell script) and should fail automatically if there are C packages. It is pretty useful to have the cross-compile build and I could use this functionality if I migrate python-only things over from bcbio. We could also have an option to do this as well, and have it default to only building for the current platform.

Thanks again.

@daler
Copy link
Member Author

daler commented Sep 28, 2015

Brad -- thanks for your comments.

Pre-building the docker container sounds good. @johanneskoester do you have plans for a bioconda dockerhub account?

For the OSX packages, it was working as you said. The automatic failure came at the end of building pysam, which took a while to build, prompting me to restrict to Linux. I'll put the cross-compile build functionality back in by default to facilitate future bcbio python-only packages.

It would be nice to detect whether or not a Python package has C/C++ packages so the build fails early. I'm thinking presence of .pyx, .c, .cxx, or .cpp files and the string Extension in setup.py. Can you think of cases where this would give false positives or false negatives?

(also: as you suggested in the commit comments, I moved the gcc-4.8-related lines from Dockerfile to update_binstar_packages_docker_prebuilt.sh.)

@johanneskoester
Copy link
Contributor

Great work!
I wonder if we could set up kind of a continuous integration build process via the Docker image and Travis CI:
http://docs.travis-ci.com/user/docker/

Apart from that, a bioconda docker hub account is a good idea anyway, because we need to pull the image from there also in case of using travis.

What do you think?

@johanneskoester
Copy link
Contributor

Hi guys,
I have created a dockerhub organization for bioconda and added you.

@daler
Copy link
Member Author

daler commented Sep 30, 2015

Johannes, thanks for the dockerhub account.

And very cool, I didn't realize Docker can be used on travis-ci now. CI builds would be great to have.

From my reading of the travis-ci docs, I think it would be possible to use encrypted environmental variables to deploy successful builds to anaconda.

@johanneskoester
Copy link
Contributor

Ok. Let me start with some relevant links:

creating binstar token and encrypt it for travis CI:
https://github.com/rmcgibbo/python-appveyor-conda-example#binstar

installing miniconda in travis:
http://conda.pydata.org/docs/travis.html

chapmanb added a commit that referenced this pull request Oct 1, 2015
@chapmanb chapmanb merged commit bc9284a into master Oct 1, 2015
chapmanb added a commit that referenced this pull request Oct 1, 2015
- Defaults to using a pre-built docker image in bioconda docker hub.
- Improve naming of scripts and update README with details.
- Test on new version of cutadapt
@chapmanb
Copy link
Member

chapmanb commented Oct 1, 2015

Ryan and Johannes;
Awesome work, thank you. I pushed a Docker image to the repository hub so we should be good to go with using this for builds. I tested on a new version of cutadapt. I also updated the README to use this as the default approach for Linux. Let me know if you run into any problems at all. Looking forward to seeing what you come up with using Travis CI magic. Thanks again.

@daler daler deleted the docker-build branch October 27, 2015 19:01
martin-raden pushed a commit that referenced this pull request Nov 11, 2016
update to bioconda master
RomainFeron added a commit that referenced this pull request Aug 13, 2019
RomainFeron added a commit that referenced this pull request Aug 15, 2019
dpryan79 pushed a commit that referenced this pull request Aug 16, 2019
* First attempt at a recipe for PhyloCSF

* Reset build number to 0; Added basic test; Added license (CLI round 1 errors)

* Lowercased package name (CLI round 2)

* changed folder name to match package name (CLI round 3)

* Added manual download and compiling of Opam

* Added wget as requirement

* Added opam setup step

* Attempt to fix opam install process: added unzip and glpk dependencies, build without sandboxing

* test with g++ instead of gcc

* Fix attempt for missing solver

* Second attempt at c++ compiler

* Added messages for better debugging

* Attempt to change opam install mode to binaries

* It works locally now ...

* Forgot to revert curl to wget ...

* Added -y option to opam install

* Fix attempt for OCaml package compiling bugs

* Second fix attempt for OCaml package compiling bugs

* Debugging gsl-conf + see if I can remove some dependencies

* Debugging gsl-conf #2

* Debugging gsl-conf #3

* Debugging gsl-conf #4

* Debugging gsl-conf #5

* Debugging gsl-conf #5

* Debugging gsl-conf #6

* Cleaned up, small test

* Checking output from pkg-config gsl

* Checking output from pkg-config gsl - 2

* Checking output from pkg-config gsl - 3

* Test with pkg-config

* Testing pkgconfig path + removed exporting ld path

* More pkg-config testing

* More pkg-config testing

* More pkg-config testing

* More pkg-config testing

* Testing after candidate fixs

* Cleaned up recipe after successful tests for GSL, added ocamlfind package to opam

* Updated PhyloCSF archive to new release that fixes makefile for new compilers

* Cleanup, candidate for final recipe 1

* Added gsl to runtime to fix missing gsl shared library in tests

* Removed the accidental 0 that I added at the end of build.sh ...

* Added test files to source_files in metal.yaml test section

* Manually moved file required for test in bin, less clean but otherwise mulled-build fails as test file is missing

* woops

* Fix attempt for test file

* Removed test as it required a file and failed in mulled-build since the file was not present

* I don't know why tests are failing

* Removed test at the moment

* First attempt at implementing tests properly

* Second attempt at implementing tests properly

* Updated test

* Trying to understand testing environment

* Test with

* Test with  2

* Test with PREFIX 3

* Tentative fix to build on OSX

* First attempt at a recipe for PhyloCSF

* Reset build number to 0; Added basic test; Added license (CLI round 1 errors)

* Lowercased package name (CLI round 2)

* changed folder name to match package name (CLI round 3)

* Added manual download and compiling of Opam

* Added wget as requirement

* Added opam setup step

* Attempt to fix opam install process: added unzip and glpk dependencies, build without sandboxing

* test with g++ instead of gcc

* Fix attempt for missing solver

* Second attempt at c++ compiler

* Added messages for better debugging

* Attempt to change opam install mode to binaries

* It works locally now ...

* Forgot to revert curl to wget ...

* Added -y option to opam install

* Fix attempt for OCaml package compiling bugs

* Second fix attempt for OCaml package compiling bugs

* Debugging gsl-conf + see if I can remove some dependencies

* Debugging gsl-conf #2

* Debugging gsl-conf #3

* Debugging gsl-conf #4

* Debugging gsl-conf #5

* Debugging gsl-conf #5

* Debugging gsl-conf #6

* Cleaned up, small test

* Checking output from pkg-config gsl

* Checking output from pkg-config gsl - 2

* Checking output from pkg-config gsl - 3

* Test with pkg-config

* Testing pkgconfig path + removed exporting ld path

* More pkg-config testing

* More pkg-config testing

* More pkg-config testing

* More pkg-config testing

* Testing after candidate fixs

* Cleaned up recipe after successful tests for GSL, added ocamlfind package to opam

* Updated PhyloCSF archive to new release that fixes makefile for new compilers

* Cleanup, candidate for final recipe 1

* Added gsl to runtime to fix missing gsl shared library in tests

* Removed the accidental 0 that I added at the end of build.sh ...

* Added test files to source_files in metal.yaml test section

* Manually moved file required for test in bin, less clean but otherwise mulled-build fails as test file is missing

* woops

* Fix attempt for test file

* Removed test as it required a file and failed in mulled-build since the file was not present

* I don't know why tests are failing

* Removed test at the moment

* First attempt at implementing tests properly

* Second attempt at implementing tests properly

* Updated test

* Trying to understand testing environment

* Test with

* Test with  2

* Test with PREFIX 3

* Tentative fix to build on OSX

* Update meta.yaml
BiocondaBot pushed a commit that referenced this pull request Jan 18, 2020
Merge PR #19810, commits were: 
 * add abricate
 * Merge pull request #6 from liaochenlanruo/master

update pgcgap branch
 * Merge pull request #5 from bioconda/master

update local files
 * add gubbins 2.3.4
 * Update meta.yaml
 * Update meta.yaml
 * Update meta.yaml
 * add gubbins 2.3.4
 * add gubbins
 * combination of roary and orthofinder
 * Update meta.yaml
 * Merge pull request #4 from liaochenlanruo/master

update local branch
 * Merge pull request #3 from bioconda/master

update local fork
 * Merge pull request #2 from bioconda/master

update fork
 * Update meta.yaml
 * Update meta.yaml
 * Merge branch 'master' of https://github.com/bioconda/bioconda-recipes
 * Merge pull request #1 from bioconda/master

update local recipes
jvanheld pushed a commit to jvanheld/bioconda-recipes that referenced this pull request Jan 21, 2020
Merge PR bioconda#19810, commits were: 
 * add abricate
 * Merge pull request bioconda#6 from liaochenlanruo/master

update pgcgap branch
 * Merge pull request bioconda#5 from bioconda/master

update local files
 * add gubbins 2.3.4
 * Update meta.yaml
 * Update meta.yaml
 * Update meta.yaml
 * add gubbins 2.3.4
 * add gubbins
 * combination of roary and orthofinder
 * Update meta.yaml
 * Merge pull request bioconda#4 from liaochenlanruo/master

update local branch
 * Merge pull request bioconda#3 from bioconda/master

update local fork
 * Merge pull request bioconda#2 from bioconda/master

update fork
 * Update meta.yaml
 * Update meta.yaml
 * Merge branch 'master' of https://github.com/bioconda/bioconda-recipes
 * Merge pull request bioconda#1 from bioconda/master

update local recipes
BiocondaBot pushed a commit that referenced this pull request Jan 23, 2020
Merge PR #19905, commits were: 
 * Merge branch 'master' into pgcgap
 * update pgcgap to v1.0.10
 * add abricate
 * Merge pull request #6 from liaochenlanruo/master

update pgcgap branch
 * Merge pull request #5 from bioconda/master

update local files
 * add gubbins 2.3.4
 * Update meta.yaml
 * Update meta.yaml
 * Update meta.yaml
 * add gubbins 2.3.4
 * add gubbins
 * combination of roary and orthofinder
 * Update meta.yaml
 * Merge pull request #4 from liaochenlanruo/master

update local branch
 * Merge pull request #3 from bioconda/master

update local fork
 * Merge pull request #2 from bioconda/master

update fork
 * Update meta.yaml
 * Update meta.yaml
 * Merge branch 'master' of https://github.com/bioconda/bioconda-recipes
 * Merge pull request #1 from bioconda/master

update local recipes
BiocondaBot pushed a commit that referenced this pull request Jan 24, 2020
Merge PR #13363, commits were: 
 * Update meta.yaml
 * Merge branch 'master' into intlim
 * Merge branch 'master' of https://github.com/bioconda/bioconda-recipes
 * Merge branch 'master' of github.com:abotzki/bioconda-recipes
 * Merge pull request #6 from bioconda/master

merge from bioconda master
 * some cleanups
 * build requirements removed and LICENSE.txt added
 * Merge branch 'master' of github.com:abotzki/bioconda-recipes
 * Merge pull request #5 from bioconda/master

merge from bioconda master
 * Merge pull request #4 from bioconda/master

merge from bioconda master
 * Merge branch 'master' of https://github.com/bioconda/bioconda-recipes
 * Merge branch 'master' of https://github.com/bioconda/bioconda-recipes into intlim
 * Merge branch 'master' of github.com:abotzki/bioconda-recipes into intlim
 * Merge pull request #3 from bioconda/master

merge from bioconda
 * Merge branch 'master' of https://github.com/bioconda/bioconda-recipes into intlim
 * correct URL and license
 * add missing packages
 * typo corrected
 * Merge branch 'master' of github.com:abotzki/bioconda-recipes into intlim
 * Merge pull request #2 from bioconda/master

merge from bioconda master
 * add initial version of intlim
 * scikit-learn added
 * noarch section added
 * new recipe mofapy
 * Merge branch 'master' of https://github.com/bioconda/bioconda-recipes
 * Merge pull request #1 from bioconda/master

merge from master
BiocondaBot pushed a commit that referenced this pull request Mar 10, 2020
Merge PR #20792, commits were: 
 * Update meta.yaml
 * Merge branch 'master' into pgcgap
 * Update PGCGAP to v1.0.11
 * Merge branch 'pgcgap' of https://github.com/liaochenlanruo/bioconda-recipes into pgcgap
 * canu>=1.8
 * Merge branch 'master' into pgcgap
 * Update meta.yaml
 * add modeltest-ng and raxml-ng
 * Merge branch 'master' into pgcgap
 * add circlator and unicycler
 * Merge branch 'master' into pgcgap
 * update pgcgap to v1.0.10
 * add abricate
 * Merge pull request #6 from liaochenlanruo/master

update pgcgap branch
 * Merge pull request #5 from bioconda/master

update local files
 * add gubbins 2.3.4
 * Update meta.yaml
 * Update meta.yaml
 * Update meta.yaml
 * add gubbins 2.3.4
 * add gubbins
 * combination of roary and orthofinder
 * Update meta.yaml
 * Merge pull request #4 from liaochenlanruo/master

update local branch
 * Merge pull request #3 from bioconda/master

update local fork
 * Merge pull request #2 from bioconda/master

update fork
 * Update meta.yaml
 * Update meta.yaml
 * Merge branch 'master' of https://github.com/bioconda/bioconda-recipes
 * Merge pull request #1 from bioconda/master

update local recipes
BiocondaBot pushed a commit that referenced this pull request Mar 24, 2020
Merge PR #21021, commits were: 
 * Update meta.yaml
 * Merge branch 'master' into pgcgap
 * Update PGCGAP to v1.0.11
 * Merge branch 'pgcgap' of https://github.com/liaochenlanruo/bioconda-recipes into pgcgap
 * canu>=1.8
 * Merge branch 'master' into pgcgap
 * Update meta.yaml
 * add modeltest-ng and raxml-ng
 * Merge branch 'master' into pgcgap
 * add circlator and unicycler
 * Merge branch 'master' into pgcgap
 * update pgcgap to v1.0.10
 * add abricate
 * Merge pull request #6 from liaochenlanruo/master

update pgcgap branch
 * Merge pull request #5 from bioconda/master

update local files
 * add gubbins 2.3.4
 * Update meta.yaml
 * Update meta.yaml
 * Update meta.yaml
 * add gubbins 2.3.4
 * add gubbins
 * combination of roary and orthofinder
 * Update meta.yaml
 * Merge pull request #4 from liaochenlanruo/master

update local branch
 * Merge pull request #3 from bioconda/master

update local fork
 * Merge pull request #2 from bioconda/master

update fork
 * Update meta.yaml
 * Update meta.yaml
 * Merge branch 'master' of https://github.com/bioconda/bioconda-recipes
 * Merge pull request #1 from bioconda/master

update local recipes
BiocondaBot pushed a commit that referenced this pull request Apr 13, 2020
Merge PR #21459, commits were: 
 * Update meta.yaml
 * Merge branch 'master' into pgcgap
 * Update PGCGAP to v1.0.11
 * Merge branch 'pgcgap' of https://github.com/liaochenlanruo/bioconda-recipes into pgcgap
 * canu>=1.8
 * Merge branch 'master' into pgcgap
 * Update meta.yaml
 * add modeltest-ng and raxml-ng
 * Merge branch 'master' into pgcgap
 * add circlator and unicycler
 * Merge branch 'master' into pgcgap
 * update pgcgap to v1.0.10
 * add abricate
 * Merge pull request #6 from liaochenlanruo/master

update pgcgap branch
 * Merge pull request #5 from bioconda/master

update local files
 * add gubbins 2.3.4
 * Update meta.yaml
 * Update meta.yaml
 * Update meta.yaml
 * add gubbins 2.3.4
 * add gubbins
 * combination of roary and orthofinder
 * Update meta.yaml
 * Merge pull request #4 from liaochenlanruo/master

update local branch
 * Merge pull request #3 from bioconda/master

update local fork
 * Merge pull request #2 from bioconda/master

update fork
 * Update meta.yaml
 * Update meta.yaml
 * Merge branch 'master' of https://github.com/bioconda/bioconda-recipes
 * Merge pull request #1 from bioconda/master

update local recipes
BiocondaBot pushed a commit that referenced this pull request Apr 19, 2020
Merge PR #21599, commits were: 
 * Update meta.yaml
 * Merge branch 'master' into pgcgap
 * Update PGCGAP to v1.0.11
 * Merge branch 'pgcgap' of https://github.com/liaochenlanruo/bioconda-recipes into pgcgap
 * canu>=1.8
 * Merge branch 'master' into pgcgap
 * Update meta.yaml
 * add modeltest-ng and raxml-ng
 * Merge branch 'master' into pgcgap
 * add circlator and unicycler
 * Merge branch 'master' into pgcgap
 * update pgcgap to v1.0.10
 * add abricate
 * Merge pull request #6 from liaochenlanruo/master

update pgcgap branch
 * Merge pull request #5 from bioconda/master

update local files
 * add gubbins 2.3.4
 * Update meta.yaml
 * Update meta.yaml
 * Update meta.yaml
 * add gubbins 2.3.4
 * add gubbins
 * combination of roary and orthofinder
 * Update meta.yaml
 * Merge pull request #4 from liaochenlanruo/master

update local branch
 * Merge pull request #3 from bioconda/master

update local fork
 * Merge pull request #2 from bioconda/master

update fork
 * Update meta.yaml
 * Update meta.yaml
 * Merge branch 'master' of https://github.com/bioconda/bioconda-recipes
 * Merge pull request #1 from bioconda/master

update local recipes
BiocondaBot pushed a commit that referenced this pull request Oct 29, 2022
Merge PR #37080, commits were: 
 * Update meta.yaml
 * Update meta.yaml
 * Update meta.yaml
 * Merge branch 'master' into master
 * Merge branch 'master' into master
 * Merge pull request #8 from marcDabad/cvlr_package

new emas commit
 * new emas commit
 * Merge pull request #7 from marcDabad/cvlr_package

fix variable
 * fix variable
 * Merge branch 'master' into master
 * Merge pull request #6 from marcDabad/cvlr_package

gcc 2 cc
 * gcc 2 cc
 * Merge branch 'master' into master
 * Merge pull request #5 from marcDabad/cvlr_package

passes tests in local
 * passes tests in local
 * Merge branch 'master' into master
 * Merge pull request #4 from marcDabad/cvlr_package

cc
 * cc
 * Merge pull request #3 from marcDabad/cvlr_package

Cvlr package
 * Merge branch 'master' into master
 * Merge branch 'cvlr_package' of https://github.com/marcDabad/bioconda-recipes into cvlr_package
 * cvlr_recipe
 * Merge pull request #2 from marcDabad/cvlr_package

Cvlr package
 * Merge branch 'master' into cvlr_package
 * Merge pull request #1 from bioconda/master

update
 * cvlr_recipe
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