Giter VIP home page Giter VIP logo

circleci-matrix's Introduction

Hi there 👋

I'm a passionated 💻 full-stack developer and part time 🐝 beekeeper.

Always willing to learn new things.

🌱 My latest projects

📰 My recent blog posts

💬 Feedback

If you use one of my projects, I'd love to hear from you! Don't be shy and let me know what you liked and what needs being improved. Got an issue? Open a ticket, I don't bite and will try my best to help!

📫 How to reach me

🏅Certifications:

circleci-matrix's People

Contributors

billiam avatar devurandom avatar michaelcontento avatar winksaville 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

Watchers

 avatar  avatar  avatar  avatar

circleci-matrix's Issues

Building 3 different micro services within the same repo?

I've just stumbled across this tool now, and i think it might help me with my situation, but i just want to be 100% sure before i spend any time getting it setup.

I've got a repo for a project that's broken down into 3 microservices: api, worker, web. Each one will have it's own docker image with different dependencies and tests. Once the tests pass, ideally, i'd like to build each docker image, and then push each one do dockerhub ready for deployment.

Is this scenario a bit too complicated for using this tool, or perfect for it? Reason i ask, is the config examples in the readme are fairly basic, and i'm curious what can be achieved (and what can't) by using this tool.

Don't leak between envs

$ cat .circleci-matrix.yml
env:
    - A=A
    - B=B

command:
    - echo "A=$A B=$B"

$ circleci-matrix
INFO: circleci-matrix version: 0.1.0
INFO: circleci node total: 1
INFO: circleci node index: 0

INFO: Running env: A=A
INFO: Running command: echo "A=$A B=$B"
A=A B=

INFO: Running env: B=B
INFO: Running command: echo "A=$A B=$B"
A=A B=B

INFO: Done

$A is still present in the second env!

Parallelism not working

Parallelism isn't working.

I've got 2 containers enabled in Circle CI, and both containers run the tests for the first variable in the env section. All the others after are ignored.

If i disable multiple containers, and run the tests in the 1 container, all the tests for all the environments run in series, one after the other just fine.

Can't get second and third items to run

I have this yml setup:

/circle-matrixes/build-assets.circle-matrix.yml:

env:
    - BUILD_ASSETS_TASKNAME="layout"
    - BUILD_ASSETS_TASKNAME="spa"
    - BUILD_ASSETS_TASKNAME="third-parties"
command:
    - npm run build-assets:clean-static
    - npm run build-assets:$BUILD_ASSETS_TASKNAME
    - npm run build-assets:top-nav
    - npm run build-assets:clean-up

And in my circle.ym:

deployment:
  artifactoryAndDeploy:
  branch: master
  commands:
    - ~/.local/bin/circleci-matrix --config ./circle-matrixes/build-assets.circle-matrix.yml:
        parallel: true

In the first container, the layout command runs just fine.. but the third and 4th containers, just hangup on this, do nothing, then bail after the first is done. I'm at a total loss as to what I'm doing wrong :-(

Output from container (1):

~/.local/bin/circleci-matrix --config ./circle-matrixes/build-assets.circle-matrix.yml

~/.local/bin/circleci-matrix --config ./circle-matrixes/build-assets.circle-matrix.yml died unexpectedly

Action failed: ~/.local/bin/circleci-matrix --config ./circle-matrixes/build-assets.circle-matrix.yml

Output from container (2):

~/.local/bin/circleci-matrix --config ./circle-matrixes/build-assets.circle-matrix.yml
--------------------------------------------------------------------------------
-- circleci-matrix version: 1.0.0
-- circleci node total: 3
-- circleci node index: 2
--------------------------------------------------------------------------------

--------------------------------------------------------------------------------
-- Env: BUILD_ASSETS_TASKNAME="third-parties"
--------------------------------------------------------------------------------
$ npm run build-assets:clean-static

~/.local/bin/circleci-matrix --config ./circle-matrixes/build-assets.circle-matrix.yml died unexpectedly

Action failed: ~/.local/bin/circleci-matrix --config ./circle-matrixes/build-assets.circle-matrix.yml

Better report failing commands

$ cat .circleci-matrix.yml
env:
    - VERSION=5.0

command:
    - false
    - echo 'hi!'

$ circleci-matrix
INFO: circleci-matrix version: 0.1.0
INFO: circleci node total: 1
INFO: circleci node index: 0

INFO: Detecting CircleCI environment
INFO: nvm detected and loaded

INFO: Running env: VERSION=5.0
INFO: Running command: false

With more complex commands it can be confusing to detect what crashed and why (the exitcode).

Report timings

Some commands might run for a while and it would be nice if one can spot slow commands simply by observing the output of circleci-matrix

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.