add support for file_glob

This commit is contained in:
Sandi Chakravarty
2019-10-03 22:52:09 -07:00
parent add30524b0
commit cb3a639a0c
5 changed files with 69 additions and 35 deletions

View File

@@ -18,6 +18,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
const fs = __importStar(require("fs"));
const core = __importStar(require("@actions/core"));
const github = __importStar(require("@actions/github"));
const path = __importStar(require("path"));
const glob = require("glob");
function get_release_by_tag(tag, octokit, context) {
return __awaiter(this, void 0, void 0, function* () {
try {
@@ -38,7 +40,12 @@ function get_release_by_tag(tag, octokit, context) {
}
function upload_to_release(release, file, asset_name, tag, overwrite, octokit, context) {
return __awaiter(this, void 0, void 0, function* () {
const file_size = fs.statSync(file).size;
const stat = fs.statSync(file);
if (!stat.isFile()) {
core.debug(`Skipping ${file}, since its not a file`);
return;
}
const file_size = stat.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 }));
@@ -73,16 +80,29 @@ function run() {
try {
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 file_glob = core.getInput('file_glob');
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.`);
}
const octokit = new github.GitHub(token);
const context = github.context;
const release = yield get_release_by_tag(tag, octokit, context);
yield upload_to_release(release, file, asset_name, tag, overwrite, octokit, context);
if (file_glob === "true") {
const files = glob.sync(file);
if (files.length > 0) {
for (let i = 0; i < files.length; i += 1) {
const file = files[i];
const asset_name = path.basename(file);
yield upload_to_release(release, file, asset_name, tag, overwrite, octokit, context);
}
}
else {
core.setFailed("No files matching the glob pattern found.");
}
}
else {
const asset_name = core.getInput('asset_name', { required: true });
yield upload_to_release(release, file, asset_name, tag, overwrite, octokit, context);
}
}
catch (error) {
core.setFailed(error.message);