Giter Site home page Giter Site logo

Comments (4)

felicianotech avatar felicianotech commented on July 19, 2024 9

Hey all,

Thank you for the Issue. We've gotten this request before. Normally, I would tell you it's coming, link off the to feature request, and close this. I think this request is especially desired by Node.js users so I will leave this Issue open until it is completed.

To get to the point, this will happen in the near future though I don't current'y have a date. You can track this request here on this GitHub Issue or the CircleCI Feature Request I created for this. You can upvote there to help push this along.


I do want to provide a little info as to why this isn't complete yet and why PR #132 wasn't merged. For the next-gen Convenience Images (the images on Docker Hub that are prefixed with cimg/, we have a shared build system for all of the images. This shared build system is used to build all Dockerfiles as well as the tags that each image will get.

This system do not yet support major version only tags. There's a few version for this:

  1. In the past, users using this kind of tag, getting a larger update that they expected (from the software upstream, not us) and then blaming us for the breaking change. Limiting to minor versions so far has helped us mitigate some of these problems.
  2. We need to occasionally change software in an image. For the Node.js image for example, it's not just the Node.js version that we pay attention to. There's npm, Yarn, Docker, git, and the Ubuntu base image itself. We don't make these changes to an image once it's tag has been published for stability, but we have to eventually. We try to do these within major versions as to limit the interruptions. Having a major version only tag, as requested, increases the likelihood that a future build of yours may break without any changes from you. This will be a trade off that we want to make extremely clear and upfront before we support major version only tags.
  3. There's other related work that needs to happen to our build system regarding versions. For example, there's the effort to add beta and RC releases to Convenience Images. This requires more complex logic to support beta and release candidate images for a particular major version, while still keeping to alias pointing only as stable releases.

To sum up, support is coming for this, and the Node.js image will be the first image to get this support when it comes.

from cimg-node.

felicianotech avatar felicianotech commented on July 19, 2024

Closing this for now but please read my previous comment.

from cimg-node.

glasser avatar glasser commented on July 19, 2024

@felicianotech Just to check β€” a year ago you said it was coming soon, and last month you closed it referring to the previous comment. Does that mean it is still coming soon? This would be super helpful.

from cimg-node.

laupow avatar laupow commented on July 19, 2024

It may not be mentioned as prominently as it should be in CircleCI docs, but the Node orb can install any version that nvm accepts. I've used this workaround a couple of time.

So a pipeline like this may accomplish your goals:

version: 2.1

executors:
  linux:
    docker:
      - image: cimg/base:stable

orbs:
  node: circleci/node@5

jobs:
  run-tests:
    parameters:
      node-version:
        type: string
    executor: linux
    steps:
      - checkout
      - node/install:
          node-version: << parameters.node-version >>
      - node/install-packages
      - run:
          name: Run tests
          command: npm run test:ci

workflows:
  version: 2
  test:
    jobs:
      - run-tests:
          matrix:
            parameters:
              node-version: [ "12", "14", "16", "latest"]

(I didn't test this)

For Windows/OSX jobs I think nvm is still present. The general idea works, but you might not be able to use docker.

from cimg-node.

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.