Coder Social home page Coder Social logo

zladovan / monorepo Goto Github PK

View Code? Open in Web Editor NEW
209.0 6.0 24.0 140 KB

Showcase of how to manage building projects inside monorepo with Gradle as build tool and CircleCI, Bitbucket Pipelines, Travis CI or GitHub Actions as CI tool.

License: MIT License

Java 2.33% Groovy 1.81% Shell 95.85%
monorepo gradle circleci bitbucket-pipelines travis-ci github-actions ci

monorepo's Introduction

Sevas :: Wellcome to my GitHub account page

My official name is Jan but on the internet you can usually find me under name Zladovan. I created this nick name years ago based on popular fictional character Zladko "Zlad!" Vladcik.

Who I am

I am open-minded person. It's not only common cliché. I really do not like “black and white thinking”. I understand that my truth is not valid out of my model of thinking. I feel very good surrounded by the people do not taking themselves too seriously.

I like to spend my time with:

  • 💻 programming
  • 🌳 hiking
  • 🧗‍♂️ rock climbing
  • 📚 reading
  • ❤️ making love

Who I am from professional view

I am a generalist who feels the best while swimming in uncharted waters.

During 10+ years as a professional software developer I participated on a development of various types of applications and I tried multiple roles. I have experience with:

  • 🧪 testing
  • 🖼️ programming web UI's
  • ↔️ designing and implementing REST/gRPC API's
  • 📊 building data analytics platform
  • 🛠️ configuring automated builds
  • 📈 deploying and monitoring of what I have built

If you want to know more details about my professional career check out my CV or LinkedIn profile.

I must admit that I do not see myself as an expert in any field and I doubt I will become an expert one day. It's because I much more like to explore new stuff than to go too deep into something I already know. I understand the role of expertise and specialization but I really do not like to see me as a specialized component in the big machine doing the same thing over and over again.

What can you find on my GitHub

I am big fan of open source. I learned a lot from open source projects and I like to share my work too. See below for projects I build in my free time for fun or as a solution to some problem I was facing in private projects. Repositories are organised by me in order by "my proudness". It strongly correlates with the popularity.

monorepo's People

Contributors

lucapette avatar zladovan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

monorepo's Issues

Some docs on turning on echo would be nice (I removed set -e no-go)

I am trying to debug on Mac (Trying to setup and test on Mac locally for circle ci). I get this error

Deans-MacBook-Pro:orderly dean$ ./tools/ci/core/build.sh
jq: error (at :2): Cannot index string with string "workflows"

so I am removed some of the set -e but it is still not doing the echo statements.

My bash is a little weak here so wondering if there is a way that you have to turn on logging.

thanks,
Dean

You should modify circleCI build file so that master is always stable like so...

We setup master so NO developers can push to it in github except circleCI user (that's me and I put a local githook preventing committing to master as well just in case). AFTER that, well, only circleCI pushes so master is ALWAYS 100% solid (except for flaky tests but gradle has a new feature for that too).

The complete answer is here
https://stackoverflow.com/questions/60566598/can-circleci-prevent-bad-commits-from-landing-on-master-like-jenkins-can/61017261#61017261

If you choose, you could add that to your circleCI file.

Now, the only thing I am missing is defining all versions in one build.gradle file that ALL projects include so I can change versions of the whole mono-repo like Twitter does helping alleviate jar hell quite a bit in big mono-repos.

Holy crap, this is awesome!!!

Most posts forget about libraries or just don't get how you need to chain up AND you are doing gradle composite builds. I was looking for this exact example and we are in circle CI where only he pushes to master so our master is never broken every. now I just need this next.

thanks!!!!!! I'll post if I have any issues.

At some point, I may need to add to https://github.com/deanhiller/webpieces as well. (I want to transition that to circleCI as well off travis). circleCI is what I am using at work along with webpieces.

Anyways, this was awesome!

License?

This repo might prove to be incredibly helpful.

May I suggest that you add a license to the repository so that we may use it legally?

local mono-repo build twitter style

It can be highly desirable to run the build the EXACT same way as CI. This is a bit hard with all the remote circle CI calls (ie. developer setup is a bit more painful). I don't know a solution yet but I might append here. Basically, with no setup at twitter, we would run the same command that CI runs to make sure if we changed a library for project X, it would ensure we didn't break someone elses project. I didn't really want to look into all the projects depending on the library. I just want to run a command that does it.

Working directory for job

The problem with this approach is you cannot specify a working directory for a job. Therefore, how will you utilize any community actions (via uses)? I noticed in your example you only use run, which works nicely because you can specify working-directory. But the power of github actions is in the uses...

Is there any workaround?

List dependencies does not work on mac os

Script tools/ci/core/list-dependencies.sh uses realpath for finding relative path (to the repository root) of included project. On mac os realpath is not present.

Find some alternative solution supported on mac os too for turning path from includeBuild paramter to path relative to the repository root.

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.