Giter VIP home page Giter VIP logo

circleci-orbs-extensions's People

Contributors

aldesantis avatar benjaminwil avatar bravosimone avatar cpfergus1 avatar elia avatar gsmendoza avatar kennyadsl avatar mamhoff avatar nvandoorn avatar peterberkenbosch avatar spaghetticode avatar stefano-sarioli avatar tvdeyen avatar vassalloandrea avatar waiting-for-dev avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

circleci-orbs-extensions's Issues

Add gems cache

We can speed up extensions builds by caching gems on CircleCI. I think we can do something very similar to what has been done in Solidus core.

Simplify the default test results path

Simplify the default test results path

We're using dynamic test results paths because for extensions using an
older setup different solidus versions are tested within the same job.

However, we don't need to mimic the entire cache key as path. CircleCI
doesn't interpolate everything within environment variable values, so
breaking this coupling will help in the future.

Ensure CircleCI executors have the `LANG` set to `C.UTF-8` by default

When creating a pull request on solidus_importer (see solidusio-contrib/solidus_importer#79), which uses this repository's CircleCI orbs, my team and I ran into an issue where specs fail due to encoding errors. The spec suite is expecting test data to be ASCII, but there are UTF-8 characters in some test CSV data files.

While we could fix the CSV data to use only ASCII characters, we think it would be more realistic to ensure that the CircleCI orb executors have their LANG configured to C.UTF-8. I think this is just a matter of ensuring that the Docker images being used have a UTF-8 locale available and that their LANG environment variable is being set.

Since we're using CircleCI-provided images I'm a little surprised this isn't already being done.

Do not stop the build when one version fails

At the moment if an extension specs run fails at one specific Solidus version (let's say 2.5), all the other steps are not performed. This makes hard to have a complete matrix in every scenario.

This can be solved in several ways, for example, parallelizing jobs or using when: always option on test commands.

Some builds against Solidus `master` failing due to outdated CI image for Ruby

We've started seeing some failures on runs against Solidus master due to the fact that we are using a base CI image with Ruby 2.5. We've seen this issue appear when pry-byebug and pry-stack_explorer are referenced in an extension's Gemfile, but it is possible that other gems rely on this as well.

The error in question is

NameError: uninitialized constant DidYouMean::PlainFormatter

You can see some examples of this error on the Solidus Taxjar and Subscriptions extensions

https://app.circleci.com/pipelines/github/SuperGoodSoft/solidus_taxjar/309/workflows/062db350-ce0e-4916-855b-cc5a7b10fa8a/jobs/326

https://app.circleci.com/pipelines/github/solidusio-contrib/solidus_subscriptions?branch=master&filter=all

If there is interest in moving the base CI image to a more recent and supported version of Ruby, say 2.7, I can open a pull request for that, but first I wanted to see if that is something we would want to do. Let me know if I can provide any more details here.

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.