-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDockerfile
48 lines (43 loc) · 1.13 KB
/
Dockerfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#
# {{baseline}}
#
FROM node:alpine AS baseline
WORKDIR /opt/app
COPY package.json yarn.loc[k] ./
RUN yarn install
#
# {{test-and-build}}
#
FROM baseline AS build
COPY tsconfig.json tsconfig.base.json tsconfig.transpile.json .babelrc.json ./
COPY jest.config.js ./
COPY .babelrc.json ./
COPY spec ./spec
COPY src ./src
RUN yarn build
#
# {{deploy}}
#
FROM node:alpine AS deploy
ENV HOME=/opt/app
WORKDIR /opt/app
ARG CODECOV_TOKEN
ARG BRANCH_NAME
ARG COMMIT_SHA
ARG NPM_TOKEN
COPY --from=build /opt/app/dist ./
COPY --from=build /opt/app/.coverage ./.coverage
COPY .npmrc README.md LICENSE.md package.json yarn.loc[k] ./
RUN echo "//registry.npmjs.org/:_authToken=\"$NPM_TOKEN\"" >> .npmrc
RUN apk --no-cache add curl
RUN test 'main' = "$BRANCH_NAME" \
&& npm publish --access public \
|| echo 'Not published.'
RUN rm .npmrc
RUN curl -OLs https://uploader.codecov.io/latest/alpine/codecov
RUN chmod +x codecov
RUN CI="" ./codecov --nonZero --rootDir . --dir .coverage --slug squall-io/context \
--file lcov.info --file clover.xml --file coverage-final.json \
--token "$CODECOV_TOKEN" \
--branch "$BRANCH_NAME" \
--sha "$COMMIT_SHA"