Code Monkey home page Code Monkey logo

Comments (7)

dmitry avatar dmitry commented on August 19, 2024

As a part-solution #80 can work, but it's a little robust way.

from gitness.

benallard avatar benallard commented on August 19, 2024

I guess this is the other part of the matrix-builds, namely the paralellize one single build part. The setup would have to run once for all, and then each part of the build could run in a different container. Actually, the docker cache would care of that. The build section could be a two level array, where the first level define units, and the the second one, each command of a unit. (easily reduced to a one level array if every unit only contains one command ...)

Don't forget the teardown part then ! Or is it already included in the deploy / publish section ...

from gitness.

bradrydzewski avatar bradrydzewski commented on August 19, 2024

suggestion from @ralfschimmel that I wanted documented

Travis supports caching of directories.

In my case with maven and java I'm downloading a lot of libraries from maven central. These are stored in ~/.m2/repository and it would be nice to persist this between runs using the same image.

I was looking into docker volumes, either a mounted host directory or a shared volume between containers, but I'm not sure how to use it in relation to Drone. Would be nice if each container created by Drone is allowed to write in the shared volume to keep one up-to-date mvn repository.

Any ideas on this?

from gitness.

benallard avatar benallard commented on August 19, 2024

A problem related to this (and to matrix build) is the question of the artifacts ... If you have your (build matrix) x (your build "subunits"), that's a lot of generated stuff, and logs. How do you define which one you keep, publish, and the like ...

I believe you should keep the tool simple and stupid, and clearly limit it by design. Define some simple rules of what drone does, and most importantly does not, and stick to it. There is obviously need for a dead-simple "buildbot", travis-like CI tool, don't make the mistake of making it inaccessible, by allowing flexibility in every directions. There are other tools (frameworks) better suited for that.

The problem here, is that everyone has his own way of structuring their build, and everyone believe that their own way is the most common and obvious one.

from gitness.

bradrydzewski avatar bradrydzewski commented on August 19, 2024

I do like the idea of caching folders using volumes. Maybe something like this in the yaml

cache:
  - /home/user/bundler
  - /home/user/.m2

On the most machine, the directories would need to follow some sort of naming convention that includes the repository and branch. For example /var/cache/drone/github.com/repo/name/branch or maybe /tmp so that a reboot can flush the cache?

from gitness.

Wqrld avatar Wqrld commented on August 19, 2024

Why was this closed? Is this already implemented?
(huge bump, but i am unable to find anything about it in the new docs)

from gitness.

bradrydzewski avatar bradrydzewski commented on August 19, 2024

this was closed because caching was delegated to plugins, which give much more flexibility in terms of how and when files are cached. You can use an existing cache plugin or write your, but here is a list of existing cache plugins that people have registered: http://plugins.drone.io/tags/cache/

from gitness.

Related Issues (20)

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.