Change the way we parse refs

This commit is contained in:
Sven-Hendrik Haase 2019-09-04 13:46:44 +02:00
parent 8d9569a6a5
commit 8eb6a035aa
3 changed files with 11 additions and 10 deletions

View File

@ -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 }}
```

View File

@ -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.`);

View File

@ -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)) {