From 1f1f11dad8668b94ce74a68f1e5647446aa3881d Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Fri, 2 Apr 2021 11:47:52 +0200 Subject: [PATCH] Enhance workflow Signed-off-by: CrazyMax --- .dockerignore | 3 -- .github/CONTRIBUTING.md | 27 ++++-------- .github/ISSUE_TEMPLATE/bug_report.md | 3 +- .github/setup-qemu-action.png | Bin 8669 -> 11797 bytes .github/workflows/ci.yml | 16 +++---- .github/workflows/validate.yml | 5 +-- dist/index.js | 9 +++- docker-bake.hcl | 62 +++++++++++++++------------ hack/build.Dockerfile | 42 ++++++++++++++++++ hack/vendor.Dockerfile | 23 ++++++++++ src/main.ts | 12 ++++-- 11 files changed, 135 insertions(+), 67 deletions(-) create mode 100644 hack/build.Dockerfile create mode 100644 hack/vendor.Dockerfile diff --git a/.dockerignore b/.dockerignore index 00a9f549..07e6e472 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,4 +1 @@ -/.dev -/dist -/lib /node_modules diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 4afc81ec..958e5b94 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -2,31 +2,20 @@ Hi there! We're thrilled that you'd like to contribute to this project. Your help is essential for keeping it great. -Contributions to this project are [released](https://help.github.com/articles/github-terms-of-service/#6-contributions-under-repository-license) to the public under the [project's open source license](LICENSE). +Contributions to this project are [released](https://docs.github.com/en/github/site-policy/github-terms-of-service#6-contributions-under-repository-license) +to the public under the [project's open source license](LICENSE). ## Submitting a pull request 1. [Fork](https://github.com/docker/setup-qemu-action/fork) and clone the repository 2. Configure and install the dependencies: `yarn install` -4. Create a new branch: `git checkout -b my-branch-name` -5. Make your change -6. Run pre-checkin: `yarn run pre-checkin` +3. Create a new branch: `git checkout -b my-branch-name` +4. Make your changes +5. Format code and build javascript artifacts: `docker buildx bake pre-checkin` +6. Validate all code has correctly formatted and built: `docker buildx bake validate` 7. Push to your fork and [submit a pull request](https://github.com/docker/setup-qemu-action/compare) 8. Pat your self on the back and wait for your pull request to be reviewed and merged. -## Container based developer flow - -If you don't want to maintain a Node developer environment that fits this project you can use containerized commands -instead of invoking yarn directly. - -``` -# format code and build javascript artifacts -docker buildx bake pre-checkin - -# validate all code has correctly formatted and built -docker buildx bake validate -``` - Here are a few things you can do that will increase the likelihood of your pull request being accepted: - Make sure the `README.md` and any other relevant **documentation are kept up-to-date**. @@ -37,5 +26,5 @@ Here are a few things you can do that will increase the likelihood of your pull ## Resources - [How to Contribute to Open Source](https://opensource.guide/how-to-contribute/) -- [Using Pull Requests](https://help.github.com/articles/about-pull-requests/) -- [GitHub Help](https://help.github.com) +- [Using Pull Requests](https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/about-pull-requests) +- [GitHub Help](https://docs.github.com/en) diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index 1c2136d7..d50d1096 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -30,4 +30,5 @@ about: Create a report to help us improve ### Logs -> Download the [log file of your build](https://help.github.com/en/actions/configuring-and-managing-workflows/managing-a-workflow-run#downloading-logs) and [attach it](https://help.github.com/en/github/managing-your-work-on-github/file-attachments-on-issues-and-pull-requests) to this issue. +> Download the [log file of your build](https://docs.github.com/en/actions/managing-workflow-runs/using-workflow-run-logs#downloading-logs) +> and [attach it](https://docs.github.com/en/github/managing-your-work-on-github/file-attachments-on-issues-and-pull-requests) to this issue. diff --git a/.github/setup-qemu-action.png b/.github/setup-qemu-action.png index d2ea83422dcf13c65edb7048d08c25653032a805..db1c9c036d5d65bb3d580bd47618b695e9f2dd56 100644 GIT binary patch literal 11797 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 OQ&rSZD0}t(^Zy59;;$+I literal 8669 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 O@S3*1R)MD7qyGb(X7q{x diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f9cfd7b9..eabd34ac 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,18 +1,18 @@ name: ci on: + schedule: + - cron: '0 10 * * *' # everyday at 10am push: branches: - - master - - releases/v* - paths-ignore: - - '**.md' + - 'master' + - 'releases/v*' + tags: + - 'v*' pull_request: branches: - - master - - releases/v* - paths-ignore: - - '**.md' + - 'master' + - 'releases/v*' jobs: main: diff --git a/.github/workflows/validate.yml b/.github/workflows/validate.yml index 23280165..c40e98f9 100644 --- a/.github/workflows/validate.yml +++ b/.github/workflows/validate.yml @@ -5,13 +5,10 @@ on: branches: - 'master' - 'releases/v*' - paths-ignore: - - '**.md' pull_request: branches: - 'master' - paths-ignore: - - '**.md' + - 'releases/v*' jobs: validate: diff --git a/dist/index.js b/dist/index.js index 4643631e..f9aa90fa 100644 --- a/dist/index.js +++ b/dist/index.js @@ -103,9 +103,13 @@ function run() { } const image = core.getInput('image') || 'tonistiigi/binfmt:latest'; const platforms = core.getInput('platforms') || 'all'; - core.info(`💎 Installing QEMU static binaries...`); + core.startGroup(`Pulling binfmt Docker image`); + yield exec.exec('docker', ['pull', image]); + core.endGroup(); + core.startGroup(`Installing QEMU static binaries`); yield exec.exec('docker', ['run', '--rm', '--privileged', image, '--install', platforms]); - core.info('🛒 Extracting available platforms...'); + core.endGroup(); + core.startGroup(`Extracting available platforms`); yield mexec.exec(`docker`, ['run', '--rm', '--privileged', image], true).then(res => { if (res.stderr != '' && !res.success) { throw new Error(res.stderr); @@ -114,6 +118,7 @@ function run() { core.info(`${platforms.supported.join(',')}`); core.setOutput('platforms', platforms.supported.join(',')); }); + core.endGroup(); } catch (error) { core.setFailed(error.message); diff --git a/docker-bake.hcl b/docker-bake.hcl index ab8b0422..6c5d9d3f 100644 --- a/docker-bake.hcl +++ b/docker-bake.hcl @@ -1,5 +1,11 @@ -variable "GITHUB_REPOSITORY" { - default = "docker/setup-qemu-action" +variable "NODE_VERSION" { + default = "12" +} + +target "node-version" { + args = { + NODE_VERSION = NODE_VERSION + } } group "default" { @@ -7,46 +13,48 @@ group "default" { } group "pre-checkin" { - targets = ["update-yarn", "format", "build"] + targets = ["vendor-update", "format", "build"] } group "validate" { - targets = ["validate-format", "validate-build", "validate-yarn"] -} - -target "dockerfile" { - dockerfile = "Dockerfile.dev" -} - -target "update-yarn" { - inherits = ["dockerfile"] - target = "update-yarn" - output = ["."] + targets = ["format-validate", "build-validate", "vendor-validate"] } target "build" { - inherits = ["dockerfile"] - target = "dist" + inherits = ["node-version"] + dockerfile = "./hack/build.Dockerfile" + target = "build-update" output = ["."] } +target "build-validate" { + inherits = ["node-version"] + dockerfile = "./hack/build.Dockerfile" + target = "build-validate" +} + target "format" { - inherits = ["dockerfile"] - target = "format" + inherits = ["node-version"] + dockerfile = "./hack/build.Dockerfile" + target = "format-update" output = ["."] } -target "validate-format" { - inherits = ["dockerfile"] - target = "validate-format" +target "format-validate" { + inherits = ["node-version"] + dockerfile = "./hack/build.Dockerfile" + target = "format-validate" } -target "validate-build" { - inherits = ["dockerfile"] - target = "validate-build" +target "vendor-update" { + inherits = ["node-version"] + dockerfile = "./hack/vendor.Dockerfile" + target = "update" + output = ["."] } -target "validate-yarn" { - inherits = ["dockerfile"] - target = "validate-yarn" +target "vendor-validate" { + inherits = ["node-version"] + dockerfile = "./hack/vendor.Dockerfile" + target = "validate" } diff --git a/hack/build.Dockerfile b/hack/build.Dockerfile new file mode 100644 index 00000000..a0796d71 --- /dev/null +++ b/hack/build.Dockerfile @@ -0,0 +1,42 @@ +# syntax=docker/dockerfile:1.2 +ARG NODE_VERSION + +FROM node:${NODE_VERSION}-alpine AS base +RUN apk add --no-cache cpio findutils 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 build +RUN --mount=type=bind,target=.,rw \ + --mount=type=cache,target=/src/node_modules \ + yarn run build && mkdir /out && cp -Rf dist /out/ + +FROM scratch AS build-update +COPY --from=build /out / + +FROM build AS build-validate +RUN --mount=type=bind,target=.,rw \ + git add -A && cp -rf /out/* .; \ + if [ -n "$(git status --porcelain -- dist)" ]; then \ + echo >&2 'ERROR: Build result differs. Please build first with "docker buildx bake build"'; \ + git status --porcelain -- dist; \ + exit 1; \ + fi + +FROM deps AS format +RUN --mount=type=bind,target=.,rw \ + --mount=type=cache,target=/src/node_modules \ + yarn run format \ + && mkdir /out && find . -name '*.ts' -not -path './node_modules/*' | cpio -pdm /out + +FROM scratch AS format-update +COPY --from=format /out / + +FROM deps AS format-validate +RUN --mount=type=bind,target=.,rw \ + --mount=type=cache,target=/src/node_modules \ + yarn run format-check \ diff --git a/hack/vendor.Dockerfile b/hack/vendor.Dockerfile new file mode 100644 index 00000000..dd7906bc --- /dev/null +++ b/hack/vendor.Dockerfile @@ -0,0 +1,23 @@ +# 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 diff --git a/src/main.ts b/src/main.ts index 85309929..3af5e2b0 100644 --- a/src/main.ts +++ b/src/main.ts @@ -18,10 +18,15 @@ async function run(): Promise { const image: string = core.getInput('image') || 'tonistiigi/binfmt:latest'; const platforms: string = core.getInput('platforms') || 'all'; - core.info(`💎 Installing QEMU static binaries...`); - await exec.exec('docker', ['run', '--rm', '--privileged', image, '--install', platforms]); + core.startGroup(`Pulling binfmt Docker image`); + await exec.exec('docker', ['pull', image]); + core.endGroup(); - core.info('🛒 Extracting available platforms...'); + core.startGroup(`Installing QEMU static binaries`); + await exec.exec('docker', ['run', '--rm', '--privileged', image, '--install', platforms]); + core.endGroup(); + + core.startGroup(`Extracting available platforms`); await mexec.exec(`docker`, ['run', '--rm', '--privileged', image], true).then(res => { if (res.stderr != '' && !res.success) { throw new Error(res.stderr); @@ -30,6 +35,7 @@ async function run(): Promise { core.info(`${platforms.supported.join(',')}`); core.setOutput('platforms', platforms.supported.join(',')); }); + core.endGroup(); } catch (error) { core.setFailed(error.message); }