@@ -17,40 +17,9 @@ defaults: &defaults
1717 - GLOBAL_CACHE_VERSION : “v3”
1818
1919 docker :
20- - image : circleci/node:8 -stretch
20+ - image : circleci/node:10 -stretch
2121
2222jobs :
23- docker-build-nonprod-and-lint :
24- << : *defaults
25- steps :
26- - checkout
27- - setup_remote_docker
28- - run :
29- name : Docker build non-prod and run lint
30- command : |
31- docker build \
32- --build-arg "BUILD_COMPARE_URL=$CIRCLE_COMPARE_URL" \
33- --build-arg "BUILD_DATE=$(date -u '+%Y-%m-%dT%H:%M:%SZ')" \
34- --build-arg "BUILD_ENV=test" \
35- --build-arg "BUILD_NUMBER=$CIRCLE_BUILD_NUM" \
36- --build-arg "BUILD_PLATFORM=circleci" \
37- --build-arg "BUILD_PLATFORM_PROJECT_REPONAME=$CIRCLE_PROJECT_REPONAME" \
38- --build-arg "BUILD_PLATFORM_PROJECT_USERNAME=$CIRCLE_PROJECT_USERNAME" \
39- --build-arg "BUILD_PULL_REQUESTS=$CI_PULL_REQUESTS" \
40- --build-arg "BUILD_TRIGGERED_BY_TAG=$CIRCLE_TAG" \
41- --build-arg "BUILD_URL=$CIRCLE_BUILD_URL" \
42- --build-arg "CIRCLE_WORKFLOW_ID=$CIRCLE_WORKFLOW_ID" \
43- --build-arg "CIRCLE_WORKFLOW_JOB_ID=$CIRCLE_WORKFLOW_JOB_ID" \
44- --build-arg "CIRCLE_WORKFLOW_UPSTREAM_JOB_IDS=$CIRCLE_WORKFLOW_UPSTREAM_JOB_IDS" \
45- --build-arg "CIRCLE_WORKSPACE_ID=$CIRCLE_WORKSPACE_ID" \
46- --build-arg "GIT_REPOSITORY_URL=$CIRCLE_REPOSITORY_URL" \
47- --build-arg "GIT_SHA1=$CIRCLE_SHA1" \
48- --build-arg "LICENSE=GPL-3.0-only" \
49- --build-arg "VCS_REF=$CIRCLE_SHA1" \
50- --build-arg "VENDOR=Reaction Commerce" \
51- -t "$DOCKER_REPOSITORY:non-prod" .
52- docker run --rm $DOCKER_REPOSITORY:non-prod yarn run lint
53-
5423 docker-build :
5524 << : *defaults
5625 steps :
@@ -59,62 +28,35 @@ jobs:
5928 - run :
6029 name : Discover Docker Tags
6130 command : |
31+ (cd /tmp && npm install --no-progress @reactioncommerce/[email protected] >/dev/null) 6232 mkdir -p docker-cache
63- .circleci/bin/docker-tags "$CIRCLE_SHA1" "$CIRCLE_BRANCH" \
64- > docker-cache/docker-tags.txt
65- cat docker-cache/docker-tags.txt
33+ /tmp/node_modules/.bin/docker-tags "$CIRCLE_SHA1" "$CIRCLE_BRANCH" \
34+ | tee docker-cache/docker-tags.txt
6635 - run :
6736 name : Docker Build
6837 command : |
69- docker build \
70- --build-arg "BUILD_COMPARE_URL=$CIRCLE_COMPARE_URL" \
71- --build-arg "BUILD_DATE=$(date -u '+%Y-%m-%dT%H:%M:%SZ')" \
72- --build-arg "BUILD_ENV=test" \
73- --build-arg "BUILD_NUMBER=$CIRCLE_BUILD_NUM" \
74- --build-arg "BUILD_PLATFORM=circleci" \
75- --build-arg "BUILD_PLATFORM_PROJECT_REPONAME=$CIRCLE_PROJECT_REPONAME" \
76- --build-arg "BUILD_PLATFORM_PROJECT_USERNAME=$CIRCLE_PROJECT_USERNAME" \
77- --build-arg "BUILD_PULL_REQUESTS=$CI_PULL_REQUESTS" \
78- --build-arg "BUILD_TRIGGERED_BY_TAG=$CIRCLE_TAG" \
79- --build-arg "BUILD_URL=$CIRCLE_BUILD_URL" \
80- --build-arg "CIRCLE_WORKFLOW_ID=$CIRCLE_WORKFLOW_ID" \
81- --build-arg "CIRCLE_WORKFLOW_JOB_ID=$CIRCLE_WORKFLOW_JOB_ID" \
82- --build-arg "CIRCLE_WORKFLOW_UPSTREAM_JOB_IDS=$CIRCLE_WORKFLOW_UPSTREAM_JOB_IDS" \
83- --build-arg "CIRCLE_WORKSPACE_ID=$CIRCLE_WORKSPACE_ID" \
84- --build-arg "GIT_REPOSITORY_URL=$CIRCLE_REPOSITORY_URL" \
85- --build-arg "GIT_SHA1=$CIRCLE_SHA1" \
86- --build-arg "LICENSE=GPL-3.0-only" \
87- --build-arg "VCS_REF=$CIRCLE_SHA1" \
88- --build-arg "VENDOR=Reaction Commerce" \
89- --build-arg BUILD_ENV=production \
90- -t "$DOCKER_REPOSITORY:$CIRCLE_SHA1" .
38+ (cd /tmp && npm install --no-progress @reactioncommerce/[email protected] >/dev/null) 39+ /tmp/node_modules/.bin/docker-labels >> Dockerfile
40+ docker build --tag "$DOCKER_REPOSITORY:$CIRCLE_SHA1" .
9141 mkdir -p docker-cache
9242 docker save \
9343 -o docker-cache/docker-image.tar \
9444 "$DOCKER_REPOSITORY:$CIRCLE_SHA1"
95- - run :
96- name : Save Test .env for Workspace Jobs
97- command : cp .env.example docker-cache/.env
9845 - persist_to_workspace :
9946 root : docker-cache
10047 paths :
10148 - docker-image.tar
10249 - docker-tags.txt
103- - .env
104-
10550 docker-push :
10651 << : *defaults
10752 steps :
10853 - setup_remote_docker
10954 - attach_workspace :
11055 at : docker-cache
11156 - run :
112- name : Load Docker Image
57+ name : Load and Tag Docker Image
11358 command : |
11459 docker load < docker-cache/docker-image.tar
115- - run :
116- name : Tag Docker Image
117- command : |
11860 cat docker-cache/docker-tags.txt \
11961 | xargs -t -I % \
12062 docker tag \
@@ -161,43 +103,41 @@ jobs:
161103 command : |
162104 .circleci/bin/ecs-deploy.sh
163105
164- lint :
106+ lint-javascript :
165107 << : *defaults
166108 steps :
167- - setup_remote_docker
168- - attach_workspace :
169- at : docker-cache
170- - run :
171- name : Load Docker Image
172- command : |
173- docker load < docker-cache/docker-image.tar
109+ - checkout
174110 - run :
175- name : Lint
111+ name : Lint JavaScript
176112 command : |
177- docker run \
178- --env-file docker-cache/.env \
179- --name reactionapp_next_starterkit \
180- "$DOCKER_REPOSITORY:$CIRCLE_SHA1" \
181- yarn run lint
113+ yarn install
114+ yarn lint
182115
183116 test :
184117 << : *defaults
185118 steps :
119+ - checkout
186120 - setup_remote_docker
187121 - attach_workspace :
188122 at : docker-cache
189123 - run :
190- name : Load Docker Image
124+ name : Load and Tag Docker Image
191125 command : |
192126 docker load < docker-cache/docker-image.tar
127+ cat docker-cache/docker-tags.txt \
128+ | xargs -t -I % \
129+ docker tag \
130+ "$DOCKER_REPOSITORY:$CIRCLE_SHA1" \
131+ "$DOCKER_REPOSITORY:%"
193132 - run :
194133 name : Test
195134 command : |
196135 docker run \
197- --env-file docker-cache/.env \
136+ --env-file .env.example \
137+ --env NODE_ENV=test \
198138 --name reactionapp_next_starterkit \
199139 "$DOCKER_REPOSITORY:$CIRCLE_SHA1" \
200- yarn run test:ci
140+ yarn test:ci
201141 - run :
202142 name : Copy test artifacts from Remote Docker
203143 command : |
@@ -212,6 +152,7 @@ jobs:
212152 e2e-test :
213153 << : *defaults
214154 steps :
155+ - checkout
215156 - setup_remote_docker
216157 - attach_workspace :
217158 at : docker-cache
@@ -222,7 +163,7 @@ jobs:
222163 - run :
223164 name : Integration Test
224165 command : |
225- docker run -e URL=${STAGING_URL} --env-file docker-cache/ .env --name reaction_app_next_starterkit "$DOCKER_REPOSITORY:$CIRCLE_SHA1" yarn run test:integration
166+ docker run -e URL=${STAGING_URL} --env-file .env.example --name reaction_app_next_starterkit "$DOCKER_REPOSITORY:$CIRCLE_SHA1" yarn run test:integration
226167 - run :
227168 name : Install Broken Link Checker
228169 command : |
@@ -274,7 +215,7 @@ jobs:
274215 answer=$(./.circleci/bin/should-run-snyk.sh)
275216 if [[ "${answer}" =~ "^YES" ]] ; then
276217 docker run \
277- --env-file docker-cache/ .env \
218+ --env-file .env.example \
278219 --env "SNYK_TOKEN" \
279220 --name reactionapp_next_starterkit \
280221 --workdir /usr/local/src \
@@ -287,19 +228,16 @@ workflows:
287228 version : 2
288229 build_and_test :
289230 jobs :
290- - docker-build-nonprod-and- lint :
231+ - lint-javascript :
291232 context : reaction-build-read
292233 - docker-build :
293234 context : reaction-build-read
235+ requires :
236+ - lint-javascript
294237 - docker-push :
295238 context : reaction-publish-docker
296239 requires :
297240 - docker-build
298- - docker-build-nonprod-and-lint
299- # - lint:
300- # context: reaction-validation
301- # requires:
302- # - docker-build
303241 - test :
304242 context : reaction-validation
305243 requires :
0 commit comments