From e7964906a651bbdca87f89f92dd10bdfc52b4925 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Mon, 17 Aug 2020 17:31:15 +0200 Subject: [PATCH] Use url fragment for git ref context Signed-off-by: CrazyMax --- .github/workflows/ci.yml | 3 +-- README.md | 6 ++--- package.json | 4 +-- src/context.ts | 20 +-------------- yarn.lock | 55 ---------------------------------------- 5 files changed, 5 insertions(+), 83 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index efec34e..4b9c449 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -89,9 +89,8 @@ jobs: uses: ./ env: GIT_AUTH_TOKEN: ${{ github.token }} - GIT_REF: ${{ github.ref }} with: - context: ${{ github.repositoryUrl }} + context: "${{ github.repositoryUrl }}#${{ github.ref }}" file: ./test/Dockerfile builder: ${{ steps.buildx.outputs.name }} platforms: linux/amd64,linux/arm64 diff --git a/README.md b/README.md index bf3d92b..b33062e 100644 --- a/README.md +++ b/README.md @@ -158,9 +158,8 @@ jobs: uses: ./ env: GIT_AUTH_TOKEN: ${{ github.token }} - GIT_REF: ${{ github.ref }} with: - context: ${{ github.repositoryUrl }} + context: "${{ github.repositoryUrl }}#${{ github.ref }}" builder: ${{ steps.buildx.outputs.name }} platforms: linux/amd64,linux/arm64,linux/386 push: true @@ -178,7 +177,7 @@ Following inputs can be used as `step.with` keys | Name | Type | Default | Description | |---------------------|---------|-----------------------------------|------------------------------------| | `builder` | String | | Builder instance (see [setup-buildx](https://github.com/docker/setup-buildx-action) action) | -| `context` | String | `.` | Build's context is the set of files located in the specified `PATH` or `URL` | +| `context` | String | `.` | Build's context is the set of files located in the specified [`PATH` or `URL`](https://docs.docker.com/engine/reference/commandline/build/) | | `file` | String | `./Dockerfile` | Path to the Dockerfile. | | `build-args` | List | | List of build-time variables | | `labels` | List | | List of metadata for an image | @@ -223,7 +222,6 @@ Following environment variables can be used as `step.env` keys |--------------------------|---------------------------------------| | `GIT_AUTH_HEADER`**¹** | Raw authorization header to authenticate against git repository | | `GIT_AUTH_TOKEN`**¹** | `x-access-token` basic auth to authenticate against git repository | -| `GIT_REF`**¹** | Git refrerence to use against git repository | > **¹** Only used if `input.context` is a valid git uri. diff --git a/package.json b/package.json index e382119..c2abbb0 100644 --- a/package.json +++ b/package.json @@ -28,11 +28,9 @@ "dependencies": { "@actions/cache": "^1.0.2", "@actions/core": "^1.2.4", - "@actions/exec": "^1.0.4", - "git-url-parse": "^11.1.3" + "@actions/exec": "^1.0.4" }, "devDependencies": { - "@types/git-url-parse": "^9.0.0", "@types/jest": "^26.0.3", "@types/node": "^14.0.14", "@zeit/ncc": "^0.22.3", diff --git a/src/context.ts b/src/context.ts index f4cf7c5..52c0d74 100644 --- a/src/context.ts +++ b/src/context.ts @@ -1,4 +1,3 @@ -import gitUrlParse from 'git-url-parse'; import * as core from '@actions/core'; export interface Inputs { @@ -26,7 +25,7 @@ export interface Inputs { export async function getInputs(): Promise { return { - context: await getBuildContext(), + context: core.getInput('context') || '.', file: core.getInput('file') || './Dockerfile', buildArgs: await getInputList('build-args'), labels: await getInputList('labels'), @@ -68,23 +67,6 @@ export async function getArgs(inputs: Inputs): Promise> { return args; } -async function getBuildContext(): Promise { - let context: string = core.getInput('context'); - if (!context) { - return '.'; - } - try { - const gitUrl = gitUrlParse(context); - const gitRef = process.env['GIT_REF'] || ''; - if (gitRef) { - return `${gitUrl.toString()}#${gitRef}`; - } - return gitUrl.toString(); - } catch { - return context; - } -} - async function getCommonArgs(inputs: Inputs): Promise> { let args: Array = []; if (inputs.noCache) { diff --git a/yarn.lock b/yarn.lock index f8298d2..52ede63 100644 --- a/yarn.lock +++ b/yarn.lock @@ -712,11 +712,6 @@ resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== -"@types/git-url-parse@^9.0.0": - version "9.0.0" - resolved "https://registry.yarnpkg.com/@types/git-url-parse/-/git-url-parse-9.0.0.tgz#aac1315a44fa4ed5a52c3820f6c3c2fb79cbd12d" - integrity sha512-kA2RxBT/r/ZuDDKwMl+vFWn1Z0lfm1/Ik6Qb91wnSzyzCDa/fkM8gIOq6ruB7xfr37n6Mj5dyivileUVKsidlg== - "@types/graceful-fs@^4.1.2": version "4.1.3" resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.3.tgz#039af35fe26bec35003e8d86d2ee9c586354348f" @@ -1769,21 +1764,6 @@ getpass@^0.1.1: dependencies: assert-plus "^1.0.0" -git-up@^4.0.0: - version "4.0.2" - resolved "https://registry.yarnpkg.com/git-up/-/git-up-4.0.2.tgz#10c3d731051b366dc19d3df454bfca3f77913a7c" - integrity sha512-kbuvus1dWQB2sSW4cbfTeGpCMd8ge9jx9RKnhXhuJ7tnvT+NIrTVfYZxjtflZddQYcmdOTlkAcjmx7bor+15AQ== - dependencies: - is-ssh "^1.3.0" - parse-url "^5.0.0" - -git-url-parse@^11.1.3: - version "11.1.3" - resolved "https://registry.yarnpkg.com/git-url-parse/-/git-url-parse-11.1.3.tgz#03625b6fc09905e9ad1da7bb2b84be1bf9123143" - integrity sha512-GPsfwticcu52WQ+eHp0IYkAyaOASgYdtsQDIt4rUp6GbiNt1P9ddrh3O0kQB0eD4UJZszVqNT3+9Zwcg40fywA== - dependencies: - git-up "^4.0.0" - glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4: version "7.1.6" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" @@ -2048,13 +2028,6 @@ is-potential-custom-element-name@^1.0.0: resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.0.tgz#0c52e54bcca391bb2c494b21e8626d7336c6e397" integrity sha1-DFLlS8yjkbssSUsh6GJtczbG45c= -is-ssh@^1.3.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/is-ssh/-/is-ssh-1.3.2.tgz#a4b82ab63d73976fd8263cceee27f99a88bdae2b" - integrity sha512-elEw0/0c2UscLrNG+OAorbP539E3rhliKPg+hDMWN9VwrDXfYK+4PBEykDPfxlYYtQvl84TascnQyobfQLHEhQ== - dependencies: - protocols "^1.1.0" - is-stream@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" @@ -2921,11 +2894,6 @@ normalize-path@^3.0.0: resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== -normalize-url@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" - integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg== - npm-run-path@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" @@ -3038,24 +3006,6 @@ parse-json@^5.0.0: json-parse-better-errors "^1.0.1" lines-and-columns "^1.1.6" -parse-path@^4.0.0: - version "4.0.2" - resolved "https://registry.yarnpkg.com/parse-path/-/parse-path-4.0.2.tgz#ef14f0d3d77bae8dd4bc66563a4c151aac9e65aa" - integrity sha512-HSqVz6iuXSiL8C1ku5Gl1Z5cwDd9Wo0q8CoffdAghP6bz8pJa1tcMC+m4N+z6VAS8QdksnIGq1TB6EgR4vPR6w== - dependencies: - is-ssh "^1.3.0" - protocols "^1.4.0" - -parse-url@^5.0.0: - version "5.0.2" - resolved "https://registry.yarnpkg.com/parse-url/-/parse-url-5.0.2.tgz#856a3be1fcdf78dc93fc8b3791f169072d898b59" - integrity sha512-Czj+GIit4cdWtxo3ISZCvLiUjErSo0iI3wJ+q9Oi3QuMYTI6OZu+7cewMWZ+C1YAnKhYTk6/TLuhIgCypLthPA== - dependencies: - is-ssh "^1.3.0" - normalize-url "^3.3.0" - parse-path "^4.0.0" - protocols "^1.4.0" - parse5@5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.1.tgz#f68e4e5ba1852ac2cadc00f4555fff6c2abb6178" @@ -3163,11 +3113,6 @@ prompts@^2.0.1: kleur "^3.0.3" sisteransi "^1.0.4" -protocols@^1.1.0, protocols@^1.4.0: - version "1.4.8" - resolved "https://registry.yarnpkg.com/protocols/-/protocols-1.4.8.tgz#48eea2d8f58d9644a4a32caae5d5db290a075ce8" - integrity sha512-IgjKyaUSjsROSO8/D49Ab7hP8mJgTYcqApOqdPhLoPxAplXmkp+zRvsrSQjFn5by0rhm4VH0GAUELIPpx7B1yg== - pseudomap@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3"