mirror of
https://github.com/docker/metadata-action.git
synced 2024-12-22 06:35:36 +00:00
Update dev workflow (#32)
Co-authored-by: CrazyMax <crazy-max@users.noreply.github.com>
This commit is contained in:
parent
55d3462f05
commit
805449f25e
|
@ -1 +1,5 @@
|
||||||
node_modules
|
/.dev
|
||||||
|
/coverage
|
||||||
|
/dist
|
||||||
|
/lib
|
||||||
|
/node_modules
|
||||||
|
|
13
.github/CONTRIBUTING.md
vendored
13
.github/CONTRIBUTING.md
vendored
|
@ -8,12 +8,13 @@ Contributions to this project are [released](https://help.github.com/articles/gi
|
||||||
|
|
||||||
1. [Fork](https://github.com/crazy-max/ghaction-docker-meta/fork) and clone the repository
|
1. [Fork](https://github.com/crazy-max/ghaction-docker-meta/fork) and clone the repository
|
||||||
2. Configure and install the dependencies: `yarn install`
|
2. Configure and install the dependencies: `yarn install`
|
||||||
3. Make sure the tests pass on your machine: `yarn run test`
|
3. Create a new branch: `git checkout -b my-branch-name`
|
||||||
4. Create a new branch: `git checkout -b my-branch-name`
|
4. Make your changes
|
||||||
5. Make your change, add tests, and make sure the tests still pass
|
5. Make sure the tests pass: `docker buildx bake test`
|
||||||
6. Run pre-checkin: `yarn run pre-checkin`
|
6. Format code and build javascript artifacts: `docker buildx bake pre-checkin`
|
||||||
7. Push to your fork and [submit a pull request](https://github.com/crazy-max/ghaction-docker-meta/compare)
|
7. Validate all code has correctly formatted and built: `docker buildx bake validate`
|
||||||
8. Pat your self on the back and wait for your pull request to be reviewed and merged.
|
8. Push to your fork and [submit a pull request](https://github.com/crazy-max/ghaction-docker-meta/compare)
|
||||||
|
9. Pat your self on the back and wait for your pull request to be reviewed and merged.
|
||||||
|
|
||||||
## Container based developer flow
|
## Container based developer flow
|
||||||
|
|
||||||
|
|
21
.github/workflows/test.yml
vendored
21
.github/workflows/test.yml
vendored
|
@ -8,39 +8,24 @@ on:
|
||||||
paths-ignore:
|
paths-ignore:
|
||||||
- '**.md'
|
- '**.md'
|
||||||
pull_request:
|
pull_request:
|
||||||
|
branches:
|
||||||
|
- 'master'
|
||||||
paths-ignore:
|
paths-ignore:
|
||||||
- '**.md'
|
- '**.md'
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
test-containerized:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
-
|
|
||||||
name: Checkout
|
|
||||||
uses: actions/checkout@v2
|
|
||||||
-
|
|
||||||
name: Validate
|
|
||||||
run: docker buildx bake validate
|
|
||||||
-
|
|
||||||
name: Test
|
|
||||||
run: docker buildx bake test
|
|
||||||
|
|
||||||
test:
|
test:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
-
|
-
|
||||||
name: Checkout
|
name: Checkout
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v2
|
||||||
-
|
|
||||||
name: Install
|
|
||||||
run: yarn install
|
|
||||||
-
|
-
|
||||||
name: Test
|
name: Test
|
||||||
run: yarn run test
|
run: docker buildx bake test
|
||||||
-
|
-
|
||||||
name: Upload coverage
|
name: Upload coverage
|
||||||
uses: codecov/codecov-action@v1
|
uses: codecov/codecov-action@v1
|
||||||
if: success()
|
|
||||||
with:
|
with:
|
||||||
token: ${{ secrets.CODECOV_TOKEN }}
|
token: ${{ secrets.CODECOV_TOKEN }}
|
||||||
file: ./coverage/clover.xml
|
file: ./coverage/clover.xml
|
||||||
|
|
25
.github/workflows/validate.yml
vendored
Normal file
25
.github/workflows/validate.yml
vendored
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
name: validate
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- 'master'
|
||||||
|
- 'releases/v*'
|
||||||
|
paths-ignore:
|
||||||
|
- '**.md'
|
||||||
|
pull_request:
|
||||||
|
branches:
|
||||||
|
- 'master'
|
||||||
|
paths-ignore:
|
||||||
|
- '**.md'
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
validate:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
-
|
||||||
|
name: Checkout
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
-
|
||||||
|
name: Validate
|
||||||
|
run: docker buildx bake validate
|
|
@ -1,9 +1,9 @@
|
||||||
#syntax=docker/dockerfile:1.1-experimental
|
#syntax=docker/dockerfile:1.2
|
||||||
|
|
||||||
FROM node:12 AS deps
|
FROM node:12 AS deps
|
||||||
WORKDIR /src
|
WORKDIR /src
|
||||||
COPY package.json yarn.lock ./
|
COPY package.json yarn.lock ./
|
||||||
RUN --mount=type=cache,target=/usr/local/share/.cache/yarn \
|
RUN --mount=type=cache,target=/src/node_modules \
|
||||||
yarn install
|
yarn install
|
||||||
|
|
||||||
FROM scratch AS update-yarn
|
FROM scratch AS update-yarn
|
||||||
|
@ -17,20 +17,29 @@ FROM deps AS base
|
||||||
COPY . .
|
COPY . .
|
||||||
|
|
||||||
FROM base AS build
|
FROM base AS build
|
||||||
RUN yarn build
|
RUN --mount=type=cache,target=/src/node_modules \
|
||||||
|
yarn build
|
||||||
|
|
||||||
FROM deps AS test
|
FROM deps AS test
|
||||||
|
ENV RUNNER_TEMP=/tmp/github_runner
|
||||||
|
ENV RUNNER_TOOL_CACHE=/tmp/github_tool_cache
|
||||||
COPY . .
|
COPY . .
|
||||||
RUN yarn run test
|
RUN --mount=type=cache,target=/src/node_modules \
|
||||||
|
yarn run test
|
||||||
|
|
||||||
|
FROM scratch AS test-coverage
|
||||||
|
COPY --from=test /src/coverage /coverage/
|
||||||
|
|
||||||
FROM base AS run-format
|
FROM base AS run-format
|
||||||
RUN yarn run format
|
RUN --mount=type=cache,target=/src/node_modules \
|
||||||
|
yarn run format
|
||||||
|
|
||||||
FROM scratch AS format
|
FROM scratch AS format
|
||||||
COPY --from=run-format /src/src/*.ts /src/
|
COPY --from=run-format /src/src/*.ts /src/
|
||||||
|
|
||||||
FROM base AS validate-format
|
FROM base AS validate-format
|
||||||
RUN yarn run format-check
|
RUN --mount=type=cache,target=/src/node_modules \
|
||||||
|
yarn run format-check
|
||||||
|
|
||||||
FROM scratch AS dist
|
FROM scratch AS dist
|
||||||
COPY --from=build /src/dist/ /dist/
|
COPY --from=build /src/dist/ /dist/
|
|
@ -7,36 +7,48 @@ group "pre-checkin" {
|
||||||
}
|
}
|
||||||
|
|
||||||
group "validate" {
|
group "validate" {
|
||||||
targets = ["validate-format", "validate-build", "validate-yarn"]
|
targets = ["validate-format", "validate-build", "validate-yarn"]
|
||||||
|
}
|
||||||
|
|
||||||
|
target "dockerfile" {
|
||||||
|
dockerfile = "Dockerfile.dev"
|
||||||
}
|
}
|
||||||
|
|
||||||
target "update-yarn" {
|
target "update-yarn" {
|
||||||
|
inherits = ["dockerfile"]
|
||||||
target = "update-yarn"
|
target = "update-yarn"
|
||||||
output = ["."]
|
output = ["."]
|
||||||
}
|
}
|
||||||
|
|
||||||
target "build" {
|
target "build" {
|
||||||
|
inherits = ["dockerfile"]
|
||||||
target = "dist"
|
target = "dist"
|
||||||
output = ["."]
|
output = ["."]
|
||||||
}
|
}
|
||||||
|
|
||||||
target "test" {
|
target "test" {
|
||||||
target = "test"
|
inherits = ["dockerfile"]
|
||||||
|
target = "test-coverage"
|
||||||
|
output = ["."]
|
||||||
}
|
}
|
||||||
|
|
||||||
target "format" {
|
target "format" {
|
||||||
|
inherits = ["dockerfile"]
|
||||||
target = "format"
|
target = "format"
|
||||||
output = ["."]
|
output = ["."]
|
||||||
}
|
}
|
||||||
|
|
||||||
target "validate-format" {
|
target "validate-format" {
|
||||||
|
inherits = ["dockerfile"]
|
||||||
target = "validate-format"
|
target = "validate-format"
|
||||||
}
|
}
|
||||||
|
|
||||||
target "validate-build" {
|
target "validate-build" {
|
||||||
|
inherits = ["dockerfile"]
|
||||||
target = "validate-build"
|
target = "validate-build"
|
||||||
}
|
}
|
||||||
|
|
||||||
target "validate-yarn" {
|
target "validate-yarn" {
|
||||||
target = "validate-yarn"
|
inherits = ["dockerfile"]
|
||||||
|
target = "validate-yarn"
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue