From 8eb6a035aa45ccdc53e8bfab1633795198fb08cf Mon Sep 17 00:00:00 2001 From: Sven-Hendrik Haase Date: Wed, 4 Sep 2019 13:46:44 +0200 Subject: [PATCH] Change the way we parse refs --- README.md | 6 +++--- lib/main.js | 13 +++++++------ src/main.ts | 2 +- 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 9581207..4cdd466 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ You must provide: - `repo_token`: Usually you'll want to set this to `${{ secrets.GITHUB_TOKEN }}` - `file`: A local file to be uploaded as the asset. - `asset_name`: The name the file gets as an asset on a release. -- `tag`: The tag to uploaded into. If you want the current event's tag, use `${{ github.event.ref }}` +- `tag`: The tag to uploaded into. If you want the current event's tag, use `${{ github.ref }}` - `overwrite`: If an asset with the same name already exists, overwrite it. ## Usage @@ -45,7 +45,7 @@ jobs: repo_token: ${{ secrets.GITHUB_TOKEN }} file: target/release/mything asset_name: mything - tag: ${{ github.event.ref }} + tag: ${{ github.ref }} overwrite: true ``` @@ -88,5 +88,5 @@ jobs: repo_token: ${{ secrets.GITHUB_TOKEN }} file: target/release/${{ matrix.artifact_name }} asset_name: ${{ matrix.asset_name }} - tag: ${{ github.event.ref }} + tag: ${{ github.ref }} ``` diff --git a/lib/main.js b/lib/main.js index cf42e0a..4f538e8 100644 --- a/lib/main.js +++ b/lib/main.js @@ -1,9 +1,10 @@ "use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; @@ -22,13 +23,13 @@ function get_release_by_tag(tag, octokit, context) { return __awaiter(this, void 0, void 0, function* () { try { core.debug(`Getting release by tag ${tag}.`); - return yield octokit.repos.getReleaseByTag(Object.assign({}, context.repo, { tag: tag })); + return yield octokit.repos.getReleaseByTag(Object.assign(Object.assign({}, context.repo), { tag: tag })); } catch (error) { // If this returns 404, we need to create the release first. if (error.status === 404) { core.debug(`Release for tag ${tag} doesn't exist yet so we'll create it now.`); - return yield octokit.repos.createRelease(Object.assign({}, context.repo, { tag_name: tag })); + return yield octokit.repos.createRelease(Object.assign(Object.assign({}, context.repo), { tag_name: tag })); } else { throw error; @@ -41,12 +42,12 @@ function upload_to_release(release, file, asset_name, tag, overwrite, octokit, c const file_size = fs.statSync(file).size; const file_bytes = fs.readFileSync(file); // Check for duplicates. - const assets = yield octokit.repos.listAssetsForRelease(Object.assign({}, context.repo, { release_id: release.data.id })); + const assets = yield octokit.repos.listAssetsForRelease(Object.assign(Object.assign({}, context.repo), { release_id: release.data.id })); const duplicate_asset = assets.data.find(a => a.name === asset_name); if (duplicate_asset !== undefined) { if (overwrite === "true") { core.debug(`An asset called ${asset_name} already exists in release ${tag} so we'll overwrite it.`); - yield octokit.repos.deleteReleaseAsset(Object.assign({}, context.repo, { asset_id: duplicate_asset.id })); + yield octokit.repos.deleteReleaseAsset(Object.assign(Object.assign({}, context.repo), { asset_id: duplicate_asset.id })); } else { core.setFailed(`An asset called ${asset_name} already exists.`); @@ -74,7 +75,7 @@ function run() { const token = core.getInput('repo_token', { required: true }); const file = core.getInput('file', { required: true }); const asset_name = core.getInput('asset_name', { required: true }); - const tag = core.getInput('tag', { required: true }); + const tag = core.getInput('tag', { required: true }).replace("refs/tags/", ""); const overwrite = core.getInput('overwrite'); if (!fs.existsSync(file)) { core.setFailed(`File ${file} wasn't found.`); diff --git a/src/main.ts b/src/main.ts index 89e6c88..359316e 100644 --- a/src/main.ts +++ b/src/main.ts @@ -65,7 +65,7 @@ async function run() { const token = core.getInput('repo_token', { required: true }); const file = core.getInput('file', { required: true }); const asset_name = core.getInput('asset_name', { required: true }); - const tag = core.getInput('tag', { required: true }); + const tag = core.getInput('tag', { required: true }).replace("refs/tags/", ""); const overwrite = core.getInput('overwrite'); if (!fs.existsSync(file)) {