Merge pull request #499 from crazy-max/update-workflow
dev: update workflow
This commit is contained in:
		
						commit
						04841f2a72
					
				| @ -31,6 +31,7 @@ target "build-validate" { | |||||||
|   inherits = ["node-version"] |   inherits = ["node-version"] | ||||||
|   dockerfile = "./hack/build.Dockerfile" |   dockerfile = "./hack/build.Dockerfile" | ||||||
|   target = "build-validate" |   target = "build-validate" | ||||||
|  |   output = ["type=cacheonly"] | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| target "format" { | target "format" { | ||||||
| @ -44,24 +45,26 @@ target "format-validate" { | |||||||
|   inherits = ["node-version"] |   inherits = ["node-version"] | ||||||
|   dockerfile = "./hack/build.Dockerfile" |   dockerfile = "./hack/build.Dockerfile" | ||||||
|   target = "format-validate" |   target = "format-validate" | ||||||
|  |   output = ["type=cacheonly"] | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| target "vendor-update" { | target "vendor-update" { | ||||||
|   inherits = ["node-version"] |   inherits = ["node-version"] | ||||||
|   dockerfile = "./hack/vendor.Dockerfile" |   dockerfile = "./hack/build.Dockerfile" | ||||||
|   target = "update" |   target = "vendor-update" | ||||||
|   output = ["."] |   output = ["."] | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| target "vendor-validate" { | target "vendor-validate" { | ||||||
|   inherits = ["node-version"] |   inherits = ["node-version"] | ||||||
|   dockerfile = "./hack/vendor.Dockerfile" |   dockerfile = "./hack/build.Dockerfile" | ||||||
|   target = "validate" |   target = "vendor-validate" | ||||||
|  |   output = ["type=cacheonly"] | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| target "test" { | target "test" { | ||||||
|   inherits = ["node-version"] |   inherits = ["node-version"] | ||||||
|   dockerfile = "./hack/test.Dockerfile" |   dockerfile = "./hack/build.Dockerfile" | ||||||
|   target = "test-coverage" |   target = "test-coverage" | ||||||
|   output = ["./coverage"] |   output = ["./coverage"] | ||||||
| } | } | ||||||
|  | |||||||
| @ -1,5 +1,8 @@ | |||||||
| # syntax=docker/dockerfile:1.2 | # syntax=docker/dockerfile:1.3-labs | ||||||
|  | 
 | ||||||
| ARG NODE_VERSION | ARG NODE_VERSION | ||||||
|  | ARG DOCKER_VERSION=20.10.10 | ||||||
|  | ARG BUILDX_VERSION=0.7.0 | ||||||
| 
 | 
 | ||||||
| FROM node:${NODE_VERSION}-alpine AS base | FROM node:${NODE_VERSION}-alpine AS base | ||||||
| RUN apk add --no-cache cpio findutils git | RUN apk add --no-cache cpio findutils git | ||||||
| @ -8,7 +11,22 @@ WORKDIR /src | |||||||
| FROM base AS deps | FROM base AS deps | ||||||
| RUN --mount=type=bind,target=.,rw \ | RUN --mount=type=bind,target=.,rw \ | ||||||
|   --mount=type=cache,target=/src/node_modules \ |   --mount=type=cache,target=/src/node_modules \ | ||||||
|   yarn install |   yarn install && mkdir /vendor && cp yarn.lock /vendor | ||||||
|  | 
 | ||||||
|  | FROM scratch AS vendor-update | ||||||
|  | COPY --from=deps /vendor / | ||||||
|  | 
 | ||||||
|  | FROM deps AS vendor-validate | ||||||
|  | RUN --mount=type=bind,target=.,rw <<EOT | ||||||
|  | set -e | ||||||
|  | git add -A | ||||||
|  | cp -rf /vendor/* . | ||||||
|  | if [ -n "$(git status --porcelain -- yarn.lock)" ]; then | ||||||
|  |   echo >&2 'ERROR: Vendor result differs. Please vendor your package with "docker buildx bake vendor-update"' | ||||||
|  |   git status --porcelain -- yarn.lock | ||||||
|  |   exit 1 | ||||||
|  | fi | ||||||
|  | EOT | ||||||
| 
 | 
 | ||||||
| FROM deps AS build | FROM deps AS build | ||||||
| RUN --mount=type=bind,target=.,rw \ | RUN --mount=type=bind,target=.,rw \ | ||||||
| @ -19,13 +37,16 @@ FROM scratch AS build-update | |||||||
| COPY --from=build /out / | COPY --from=build /out / | ||||||
| 
 | 
 | ||||||
| FROM build AS build-validate | FROM build AS build-validate | ||||||
| RUN --mount=type=bind,target=.,rw \ | RUN --mount=type=bind,target=.,rw <<EOT | ||||||
|   git add -A && cp -rf /out/* .; \ | set -e | ||||||
|   if [ -n "$(git status --porcelain -- dist)" ]; then \ | git add -A | ||||||
|     echo >&2 'ERROR: Build result differs. Please build first with "docker buildx bake build"'; \ | cp -rf /out/* . | ||||||
|     git status --porcelain -- dist; \ | if [ -n "$(git status --porcelain -- dist)" ]; then | ||||||
|     exit 1; \ |   echo >&2 'ERROR: Build result differs. Please build first with "docker buildx bake build"' | ||||||
|   fi |   git status --porcelain -- dist | ||||||
|  |   exit 1 | ||||||
|  | fi | ||||||
|  | EOT | ||||||
| 
 | 
 | ||||||
| FROM deps AS format | FROM deps AS format | ||||||
| RUN --mount=type=bind,target=.,rw \ | RUN --mount=type=bind,target=.,rw \ | ||||||
| @ -39,4 +60,19 @@ COPY --from=format /out / | |||||||
| FROM deps AS format-validate | FROM deps AS format-validate | ||||||
| RUN --mount=type=bind,target=.,rw \ | RUN --mount=type=bind,target=.,rw \ | ||||||
|   --mount=type=cache,target=/src/node_modules \ |   --mount=type=cache,target=/src/node_modules \ | ||||||
|   yarn run format-check \ |   yarn run format-check | ||||||
|  | 
 | ||||||
|  | FROM docker:${DOCKER_VERSION} as docker | ||||||
|  | FROM docker/buildx-bin:${BUILDX_VERSION} as buildx | ||||||
|  | 
 | ||||||
|  | FROM deps AS test | ||||||
|  | ENV RUNNER_TEMP=/tmp/github_runner | ||||||
|  | ENV RUNNER_TOOL_CACHE=/tmp/github_tool_cache | ||||||
|  | RUN --mount=type=bind,target=.,rw \ | ||||||
|  |   --mount=type=cache,target=/src/node_modules \ | ||||||
|  |   --mount=type=bind,from=docker,source=/usr/local/bin/docker,target=/usr/bin/docker \ | ||||||
|  |   --mount=type=bind,from=buildx,source=/buildx,target=/usr/libexec/docker/cli-plugins/docker-buildx \ | ||||||
|  |   yarn run test --coverageDirectory=/tmp/coverage | ||||||
|  | 
 | ||||||
|  | FROM scratch AS test-coverage | ||||||
|  | COPY --from=test /tmp/coverage / | ||||||
|  | |||||||
| @ -1,28 +0,0 @@ | |||||||
| # syntax=docker/dockerfile:1.2 |  | ||||||
| ARG NODE_VERSION |  | ||||||
| ARG DOCKER_VERSION=20.10.7 |  | ||||||
| ARG BUILDX_VERSION=0.6.0 |  | ||||||
| 
 |  | ||||||
| FROM docker:${DOCKER_VERSION} as docker |  | ||||||
| FROM docker/buildx-bin:${BUILDX_VERSION} as buildx |  | ||||||
| 
 |  | ||||||
| FROM node:${NODE_VERSION}-alpine AS base |  | ||||||
| RUN apk add --no-cache git |  | ||||||
| WORKDIR /src |  | ||||||
| 
 |  | ||||||
| FROM base AS deps |  | ||||||
| RUN --mount=type=bind,target=.,rw \ |  | ||||||
|   --mount=type=cache,target=/src/node_modules \ |  | ||||||
|   yarn install |  | ||||||
| 
 |  | ||||||
| FROM deps AS test |  | ||||||
| ENV RUNNER_TEMP=/tmp/github_runner |  | ||||||
| ENV RUNNER_TOOL_CACHE=/tmp/github_tool_cache |  | ||||||
| RUN --mount=type=bind,target=.,rw \ |  | ||||||
|   --mount=type=cache,target=/src/node_modules \ |  | ||||||
|   --mount=type=bind,from=docker,source=/usr/local/bin/docker,target=/usr/bin/docker \ |  | ||||||
|   --mount=type=bind,from=buildx,source=/buildx,target=/usr/libexec/docker/cli-plugins/docker-buildx \ |  | ||||||
|   yarn run test --coverageDirectory=/tmp/coverage |  | ||||||
| 
 |  | ||||||
| FROM scratch AS test-coverage |  | ||||||
| COPY --from=test /tmp/coverage / |  | ||||||
| @ -1,23 +0,0 @@ | |||||||
| # syntax=docker/dockerfile:1.2 |  | ||||||
| ARG NODE_VERSION |  | ||||||
| 
 |  | ||||||
| FROM node:${NODE_VERSION}-alpine AS base |  | ||||||
| RUN apk add --no-cache git |  | ||||||
| WORKDIR /src |  | ||||||
| 
 |  | ||||||
| FROM base AS vendored |  | ||||||
| RUN --mount=type=bind,target=.,rw \ |  | ||||||
|   --mount=type=cache,target=/src/node_modules \ |  | ||||||
|   yarn install && mkdir /out && cp yarn.lock /out |  | ||||||
| 
 |  | ||||||
| FROM scratch AS update |  | ||||||
| COPY --from=vendored /out / |  | ||||||
| 
 |  | ||||||
| FROM vendored AS validate |  | ||||||
| RUN --mount=type=bind,target=.,rw \ |  | ||||||
|   git add -A && cp -rf /out/* .; \ |  | ||||||
|   if [ -n "$(git status --porcelain -- yarn.lock)" ]; then \ |  | ||||||
|     echo >&2 'ERROR: Vendor result differs. Please vendor your package with "docker buildx bake vendor-update"'; \ |  | ||||||
|     git status --porcelain -- yarn.lock; \ |  | ||||||
|     exit 1; \ |  | ||||||
|   fi |  | ||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user