From d619a7ff00896c6bd6471fca6ab388f51a87b7a8 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Tue, 27 Apr 2021 16:16:22 +0200 Subject: [PATCH] Remove os limitation Signed-off-by: CrazyMax --- .github/build-push-action.png | Bin 15848 -> 29887 bytes .github/workflows/ci.yml | 31 +++++++++++++++++++++++++++++++ README.md | 5 ----- TROUBLESHOOTING.md | 6 ++++++ dist/index.js | 23 +++++++++++++---------- src/buildx.ts | 2 +- src/main.ts | 21 ++++++++++++--------- 7 files changed, 63 insertions(+), 25 deletions(-) diff --git a/.github/build-push-action.png b/.github/build-push-action.png index 8c88d49391722678ed0ed98eccfecfed103da816..7797546d3b3f18f1742bfa7c8bda3ea880d5cb2e 100644 GIT binary patch literal 29887 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 V$~TF|X`X+m6l7GTt0mus{(qdhS~vgz diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index dbf5e2e..bd30bed 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -207,6 +207,37 @@ jobs: uses: crazy-max/ghaction-dump-context@v1 error: + runs-on: ubuntu-latest + steps: + - + name: Checkout + uses: actions/checkout@v2 + - + name: Stop docker + run: | + sudo systemctl stop docker + - + name: Build + id: docker_build + continue-on-error: true + uses: ./ + with: + context: ./test + file: ./test/Dockerfile + - + name: Check + run: | + echo "${{ toJson(steps.docker_build) }}" + if [ "${{ steps.docker_build.outcome }}" != "failure" ] || [ "${{ steps.docker_build.conclusion }}" != "success" ]; then + echo "::error::Should have failed" + exit 1 + fi + - + name: Dump context + if: always() + uses: crazy-max/ghaction-dump-context@v1 + + error-buildx: runs-on: ubuntu-latest steps: - diff --git a/README.md b/README.md index dcf15e0..6a1dfa3 100644 --- a/README.md +++ b/README.md @@ -43,7 +43,6 @@ ___ * [outputs](#outputs) * [Troubleshooting](#troubleshooting) * [Keep up-to-date with GitHub Dependabot](#keep-up-to-date-with-github-dependabot) -* [Limitation](#limitation) ## Usage @@ -243,7 +242,3 @@ updates: schedule: interval: "daily" ``` - -## Limitation - -This action is only available for Linux [virtual environments](https://help.github.com/en/articles/virtual-environments-for-github-actions#supported-virtual-environments-and-hardware-resources). diff --git a/TROUBLESHOOTING.md b/TROUBLESHOOTING.md index 8ca55bb..42bf57b 100644 --- a/TROUBLESHOOTING.md +++ b/TROUBLESHOOTING.md @@ -1,6 +1,8 @@ # Troubleshooting * [Cannot push to a registry](#cannot-push-to-a-registry) + * [BuildKit container logs](#buildkit-container-logs) + * [With containerd](#with-containerd) ## Cannot push to a registry @@ -16,9 +18,13 @@ These issues are not directly related to this action but are rather linked to [b [buildkit](https://github.com/moby/buildkit), [containerd](https://github.com/containerd/containerd) or the registry on which you're pushing your image. The quality of error message depends on the registry and are usually not very informative. +### BuildKit container logs + To help you solve this, you have to [enable debugging in the setup-buildx](https://github.com/docker/setup-buildx-action#buildkit-container-logs) action step and attach BuildKit container logs to your issue. +### With containerd + Next you can test pushing with [containerd action](https://github.com/crazy-max/ghaction-setup-containerd) using the following workflow. If it works then open an issue on [buildkit](https://github.com/moby/buildkit) repository. diff --git a/dist/index.js b/dist/index.js index c5ff160..7ed1c91 100644 --- a/dist/index.js +++ b/dist/index.js @@ -2387,7 +2387,6 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge }; Object.defineProperty(exports, "__esModule", { value: true }); const fs = __importStar(__webpack_require__(747)); -const os = __importStar(__webpack_require__(87)); const buildx = __importStar(__webpack_require__(295)); const context = __importStar(__webpack_require__(842)); const exec = __importStar(__webpack_require__(757)); @@ -2396,18 +2395,20 @@ const core = __importStar(__webpack_require__(186)); function run() { return __awaiter(this, void 0, void 0, function* () { try { - if (os.platform() !== 'linux') { - throw new Error(`Only supported on linux platform`); - } + core.startGroup(`Docker info`); + yield exec.exec('docker', ['version']); + yield exec.exec('docker', ['info']); + core.endGroup(); if (!(yield buildx.isAvailable())) { - throw new Error(`Buildx is required. See https://github.com/docker/setup-buildx-action to set up buildx.`); + core.setFailed(`Docker buildx is required. See https://github.com/docker/setup-buildx-action to set up buildx.`); + return; } stateHelper.setTmpDir(context.tmpDir()); const buildxVersion = yield buildx.getVersion(); - core.info(`📣 Buildx version: ${buildxVersion}`); + core.info(`Using buildx ${buildxVersion}`); const defContext = context.defaultContext(); let inputs = yield context.getInputs(defContext); - core.info(`🏃 Starting build...`); + core.info(`Building...`); const args = yield context.getArgs(inputs, defContext, buildxVersion); yield exec.exec('docker', args).then(res => { if (res.stderr != '' && !res.success) { @@ -2416,9 +2417,10 @@ function run() { }); const imageID = yield buildx.getImageID(); if (imageID) { - core.info('🛒 Extracting digest...'); + core.startGroup(`Extracting digest`); core.info(`${imageID}`); core.setOutput('digest', imageID); + core.endGroup(); } } catch (error) { @@ -2429,8 +2431,9 @@ function run() { function cleanup() { return __awaiter(this, void 0, void 0, function* () { if (stateHelper.tmpDir.length > 0) { - core.info(`🚿 Removing temp folder ${stateHelper.tmpDir}`); + core.startGroup(`Removing temp folder ${stateHelper.tmpDir}`); fs.rmdirSync(stateHelper.tmpDir, { recursive: true }); + core.endGroup(); } }); } @@ -4695,7 +4698,7 @@ function parseVersion(stdout) { return __awaiter(this, void 0, void 0, function* () { const matches = /\sv?([0-9.]+)/.exec(stdout); if (!matches) { - throw new Error(`Cannot parse Buildx version`); + throw new Error(`Cannot parse buildx version`); } return semver.clean(matches[1]); }); diff --git a/src/buildx.ts b/src/buildx.ts index 327604a..0612710 100644 --- a/src/buildx.ts +++ b/src/buildx.ts @@ -100,7 +100,7 @@ export async function getVersion(): Promise { export async function parseVersion(stdout: string): Promise { const matches = /\sv?([0-9.]+)/.exec(stdout); if (!matches) { - throw new Error(`Cannot parse Buildx version`); + throw new Error(`Cannot parse buildx version`); } return semver.clean(matches[1]); } diff --git a/src/main.ts b/src/main.ts index 4a0fae7..03fb282 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,5 +1,4 @@ import * as fs from 'fs'; -import * as os from 'os'; import * as buildx from './buildx'; import * as context from './context'; import * as exec from './exec'; @@ -8,22 +7,24 @@ import * as core from '@actions/core'; async function run(): Promise { try { - if (os.platform() !== 'linux') { - throw new Error(`Only supported on linux platform`); - } + core.startGroup(`Docker info`); + await exec.exec('docker', ['version']); + await exec.exec('docker', ['info']); + core.endGroup(); if (!(await buildx.isAvailable())) { - throw new Error(`Buildx is required. See https://github.com/docker/setup-buildx-action to set up buildx.`); + core.setFailed(`Docker buildx is required. See https://github.com/docker/setup-buildx-action to set up buildx.`); + return; } stateHelper.setTmpDir(context.tmpDir()); const buildxVersion = await buildx.getVersion(); - core.info(`📣 Buildx version: ${buildxVersion}`); + core.info(`Using buildx ${buildxVersion}`); const defContext = context.defaultContext(); let inputs: context.Inputs = await context.getInputs(defContext); - core.info(`🏃 Starting build...`); + core.info(`Building...`); const args: string[] = await context.getArgs(inputs, defContext, buildxVersion); await exec.exec('docker', args).then(res => { if (res.stderr != '' && !res.success) { @@ -33,9 +34,10 @@ async function run(): Promise { const imageID = await buildx.getImageID(); if (imageID) { - core.info('🛒 Extracting digest...'); + core.startGroup(`Extracting digest`); core.info(`${imageID}`); core.setOutput('digest', imageID); + core.endGroup(); } } catch (error) { core.setFailed(error.message); @@ -44,8 +46,9 @@ async function run(): Promise { async function cleanup(): Promise { if (stateHelper.tmpDir.length > 0) { - core.info(`🚿 Removing temp folder ${stateHelper.tmpDir}`); + core.startGroup(`Removing temp folder ${stateHelper.tmpDir}`); fs.rmdirSync(stateHelper.tmpDir, {recursive: true}); + core.endGroup(); } }