Git Product home page Git Product logo

continuous-build's People

Contributors

betatim avatar davidar avatar minrk avatar vsoch avatar yuvipanda avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

continuous-build's Issues

[suggestion] image manifest

I'm setting up a small registry (a table that renders a listing of repo2docker containers for a resource) and thought it would be a good idea for a container registry to serve a small manifest for itself (e.g., a manifest that includes the various tags, etc.) and then the main registry to serve a global manifest (e.g., the URL to the image manifests hosted at the individual repos. Before I roll my own manifest (and note that the global one is probably going to be something super simple, for example https://vsoch.github.io/repo2docker-containers/library.json) I wanted to bring it up for discussion here, because it could be provided as part of the continuous build folder! Thoughts or ideas?

[question] cookiecutter template

to make generation one step easier, I'm starting to test using cookiecutter, and have an example that (doesn't do much) other than to spit out the repo with a few variables defined. Would this be of interest for the binder-examples tooling? --> https://github.com/vsoch/cookie-builder I'm going to write up a full tutorial to go from nothing --> deployed notebook on a slurm cluster (in progress here https://vsoch.github.io/lessons/sherlock-singularity/) as soon as we get #9 fixed up for full functionality.

[template] needed for Singularity

As discussed in #4 , a Singularity ready template would be desired ! Specifically, this can also build a Docker container, but with intention to import into Singularity. I summarized the issue (and current workaround) in the issue above as follows:

  • Docker lets you write anywhere. This means that putting stuffs in /home/username is a reasonable solution for any future Docker usage.
  • Singularity conversion maintains actual user ownership, so this location doesn't have write access and the notebook won't work
  • There is a workaround to allow for using the container and writing notebooks to the $PWD the notebook is started in -
  • bind the files that need write (/home/userhome/.local) to the user's actual home .local (./home/<username/.local)
  • set the container --home to be the actual user home (it was getting overridden by $HOME set in the container)
  • but the previous notebooks from repo2binder are still in /home/username and thus not writable!

What is needed is a builder template for Singularity that takes these things into account. Possibly creating / using a location with read/write permissions for all?

testing example requested

The documentation suggests," it would be useful to have further testing of the container." And that definitely sounds interesting after getting the basics working with CircleCI. But I am not quite sure how to go about that next and clearly the documentation author had some ideas about that?

Would it use nbval or was something simpler envisioned?
I don't know what the envisioned example was. If you are open to suggestions, maybe the example could be to see if an expected output is made?
We have code in a notebook that produces a file and to keep checking things are working we are curious to use continuous integration to test if the notebook (or isolated code) makes the file. Would that code be needed to be moved to postBuild and then some function check if the file is made. Is that handled in postBuild or by CircleCI?

Adding Gitlab continuous build instructions

I have been using gitlab for testing that my binder images build properly and work with mybinder. Would a pull request with information on how to automate it with Gitlab continuous integration be welcome?

An example is here

circleci: anchors and aliases

I'm just figuring out that yaml has these definitions called "anchors" and then "aliases" that can be used together to define a function (or set of configuration values) and then reference / reuse across a build workflow! For example, I might set a default:

defaults: &defaults
  docker:
    - image: docker:18.01.0-ce-git
  working_directory: /tmp/src
  environment:
    - TZ: "/usr/share/zoneinfo/America/Los_Angeles"

and then reference it:

version: 2
jobs:
  setup:
    <<: *defaults
    steps:
      - run:
          name: Test if the user has defined the repository name
          command: apk add --no-cache pigz python3

using this for any repeated code would be ideal to clean / simplify the config files! I think we would also want a way to add a variable input to a function, I'm still looking into / testing if I can do this.

[suggestion] tag of "latest" pushed with commit tag ?

If we just include the first 10 characters of the commit, this will push containers that are well versioned! However (as a lazy) user, I sometimes really do just want the latest, whatever it may be :) How about, as a suggestion, at the end also tagging the image for latest, and pushing with the tagged? E.g., it would look like this:

            echo "Container name set to ${CONTAINER_NAME}:${DOCKER_TAG}"
            if [[ -n "$DOCKER_PASS" ]]; then
                  docker login -u $DOCKER_USER -p $DOCKER_PASS
                  docker push ${CONTAINER_NAME}:${DOCKER_TAG}
                  echo "Tagging latest image..."
                  docker tag ${CONTAINER_NAME}:${DOCKER_TAG} ${CONTAINER_NAME}:latest
                  docker push ${CONTAINER_NAME}:latest
            fi

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.