Skip to content

Commit d056ebd

Browse files
committed
Initial commit.
0 parents  commit d056ebd

File tree

8 files changed

+131
-0
lines changed

8 files changed

+131
-0
lines changed

.circleci/config.yml

+28
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
version: 2.1
2+
3+
workflows:
4+
main:
5+
jobs:
6+
- build:
7+
context: orb-publishing
8+
9+
jobs:
10+
build:
11+
docker:
12+
- image: cibuilds/docker:18.09
13+
steps:
14+
- checkout
15+
- setup_remote_docker:
16+
docker_layer_caching: true
17+
# temp until a custom docker image with Bash is built
18+
- run: apk add --update --no-cache bash
19+
- run:
20+
name: "Build Docker Images"
21+
command: ./build-images.sh
22+
- deploy:
23+
name: "Publish Docker Images (master branch only)"
24+
command: |
25+
if [ "${CIRCLE_BRANCH}" == "master" ]; then
26+
echo $DOCKER_PASS | docker login -u $DOCKER_USER --password-stdin
27+
docker push cimg/node
28+
fi

.gitmodules

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
[submodule "shared"]
2+
path = shared
3+
url = git@github.com:CircleCI-Public/cimg-shared.git

Dockerfile.template

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# vim:set ft=dockerfile:
2+
3+
FROM cimg/%%PARENT%%:2019.09
4+
5+
LABEL maintainer="CircleCI Community & Partner Engineering Team <community-partner@circleci.com>"
6+
7+
ENV NODE_VERSION %%MAIN_VERSION%%
8+
9+
RUN curl -L -o node.tar.xz "https://nodejs.org/dist/v${NODE_VERSION}/node-v${NODE_VERSION}-linux-x64.tar.xz" && \
10+
tar -xJf node.tar.xz -C /usr/local --strip-components=1 && \
11+
rm node.tar.xz && \
12+
ln -s /usr/local/bin/node /usr/local/bin/nodejs
13+
14+
ENV YARN_VERSION 1.17.3
15+
16+
RUN curl -L -o yarn.tar.gz "https://yarnpkg.com/downloads/${YARN_VERSION}/yarn-v${YARN_VERSION}.tar.gz" && \
17+
tar -xzf yarn.tar.gz -C /opt/ && \
18+
rm yarn.tar.gz && \
19+
ln -s /opt/yarn-v${YARN_VERSION}/bin/yarn /usr/local/bin/yarn && \
20+
ln -s /opt/yarn-v${YARN_VERSION}/bin/yarnpkg /usr/local/bin/yarnpkg
21+
22+
WORKDIR /root/project

LICENSE

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2019 Circle Internet Services, Inc.
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

README.md

+49
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
# `cimg/node` [![CircleCI Build Status](https://circleci.com/gh/CircleCI-Public/cimg-node.svg?style=shield "CircleCI Build Status")](https://circleci.com/gh/CircleCI-Public/cimg-node) [![GitHub License](https://img.shields.io/badge/license-MIT-lightgrey.svg)](https://raw.githubusercontent.com/CircleCI-Public/cimg-node/master/LICENSE) [![CircleCI Community](https://img.shields.io/badge/community-CircleCI%20Discuss-343434.svg)](https://discuss.circleci.com/c/ecosystem/images)
2+
3+
Prototype CircleCI images for Node, extending CircleCI's [prototype `cimg/base` image](https://github.com/CircleCI-Public/cimg-base).
4+
5+
## Purpose
6+
7+
Stub text.
8+
9+
## Variants
10+
11+
Currently, there are no variants of this image.
12+
13+
To create the functionality of a `-browsers` variant, use [CircleCI's `browser-tools` orb](http://github.com/circleci-public/browser-tools-orb/) to install browsers at runtime.
14+
15+
## Tags
16+
17+
### `<node-version>-<year>.<month>`
18+
Mostly immutable (except in the case of CVEs or severe bugs) monthly release tags for this image and its Node variant. Any new or removed tools from the base image in the last month will be reflected in this image release. For example, the `10.16.0-2019.04` tag would include any changes to this repo/image that occurred in March 2019. Monthly releases are built on the 3rd of every month.
19+
20+
### `<node-version>-stable`
21+
Mutable tags representing the most recent monthly release of this image and its Node variant. For example, if today's date was April 15th, 2019, then the `10.16.0-stable` tag would be aliases for the `10.16.0-2019.04` tag.
22+
23+
### `<node-version>-edge`
24+
Mutable tags representing the builds of this image and its Node variant following the most recent successful commit to this repository's `master` branch.
25+
26+
### `latest`
27+
Mutable tag that represents the latest non-Node-variant, vanilla `cimg/node` image of any version, functionally duplicating whichever is the most recent Rust version pushed to either the `edge` or `stable` tags. Anyone calling the `cimg/node` image without specifying a tag will get this version of the image.
28+
29+
## Resources
30+
31+
Stub text.
32+
33+
## Development
34+
35+
Working on CircleCI Docker images.
36+
37+
### Adding new Node versions
38+
To add a new version of Node, add it to the [`versions` array in the `manifests` file](https://github.com/CircleCI-Public/cimg-node/blob/master/manifest#L5), as well as to the [`version` pipeline parameter `enum` at the top of the `config.yml` file](https://github.com/CircleCI-Public/cimg-node/blob/master/.circleci/config.yml#L31).
39+
40+
### Commits to non-master branches
41+
Upon successful commits to non-master branches of this repository, Node versions of this image will be pushed to `ccitest/node` for any requisite post-deployment testing. Tags there will represent the branch and commit hash that triggered them. For example, a successful commit to a branch of this repository called `dev` would result in the creation of the following image/tag: `ccitest/node:<node-version>-dev-${CIRCLE_SHA1:0:7}"`, where `${CIRCLE_SHA1:0:7}"` represents the first six characters of that particular commit hash.
42+
43+
### Patching bugs and vulnerabilities
44+
Monthly release tags can be manually re-published to patch vulnerabilities or severe bugs via a pushing a `git` tag that contains the string `monthly`. This tag will trigger a workflow that will rebuild all current `<node-version>-<year>.<month>` tags, as well as the `<node-version>-stable` and `latest` alias tags.
45+
46+
### Contributing
47+
We welcome [issues](https://github.com/CircleCI-Public/cimg-node/issues) to and [pull requests](https://github.com/CircleCI-Public/cimg-node/pulls) against this repository!
48+
49+
This image is maintained by the Community & Partner Engineering Team.

build-images.sh

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
#!/usr/bin/env bash
2+

manifest

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
#!/usr/bin/env bash
2+
3+
repository=node
4+
parent=base
5+
variants=()

shared

Submodule shared added at e829fa4

0 commit comments

Comments
 (0)