Permalink
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
setup-buildx-action/Dockerfile
Go to fileThis commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
52 lines (40 sloc)
1.35 KB
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#syntax=docker/dockerfile:1.2 | |
FROM node:14 AS deps | |
WORKDIR /src | |
COPY package.json yarn.lock ./ | |
RUN --mount=type=cache,target=/usr/local/share/.cache/yarn \ | |
yarn install | |
FROM scratch AS update-yarn | |
COPY --from=deps /src/yarn.lock / | |
FROM deps AS validate-yarn | |
COPY .git .git | |
RUN status=$(git status --porcelain -- yarn.lock); if [ -n "$status" ]; then echo $status; exit 1; fi | |
FROM deps AS base | |
COPY . . | |
FROM base AS build | |
RUN yarn build | |
FROM deps AS test | |
COPY --from=docker /usr/local/bin/docker /usr/bin/ | |
ARG TARGETOS | |
ARG TARGETARCH | |
ARG BUILDX_VERSION=v0.4.2 | |
ENV RUNNER_TEMP=/tmp/github_runner | |
ENV RUNNER_TOOL_CACHE=/tmp/github_tool_cache | |
RUN mkdir -p /usr/local/lib/docker/cli-plugins && \ | |
curl -fsSL https://github.com/docker/buildx/releases/download/$BUILDX_VERSION/buildx-$BUILDX_VERSION.$TARGETOS-$TARGETARCH > /usr/local/lib/docker/cli-plugins/docker-buildx && \ | |
chmod +x /usr/local/lib/docker/cli-plugins/docker-buildx && \ | |
docker buildx version | |
COPY . . | |
RUN yarn run test | |
FROM base AS run-format | |
RUN yarn run format | |
FROM scratch AS format | |
COPY --from=run-format /src/src/*.ts /src/ | |
FROM base AS validate-format | |
RUN yarn run format-check | |
FROM scratch AS dist | |
COPY --from=build /src/dist/ /dist/ | |
FROM build AS validate-build | |
RUN status=$(git status --porcelain -- dist); if [ -n "$status" ]; then echo $status; exit 1; fi | |
FROM base AS dev | |
ENTRYPOINT ["bash"] |