mirror of
https://github.com/ivabus/pantry
synced 2024-11-23 17:05:07 +03:00
47 lines
1.2 KiB
TypeScript
47 lines
1.2 KiB
TypeScript
|
#!/usr/bin/env -S tea -E
|
||
|
|
||
|
/*---
|
||
|
args:
|
||
|
- deno
|
||
|
- run
|
||
|
- --allow-net
|
||
|
- --allow-env
|
||
|
- --import-map={{ srcroot }}/import-map.json
|
||
|
---*/
|
||
|
|
||
|
/// Test
|
||
|
/// ./scripts/has-artifacts.ts e582b03fe6efedde80f9569403555f4513dbec91
|
||
|
|
||
|
import { S3 } from "s3";
|
||
|
import { panic } from "utils";
|
||
|
import { find_pr } from "./fetch-pr-artifacts.ts";
|
||
|
|
||
|
/// Main
|
||
|
/// -------------------------------------------------------------------------------
|
||
|
|
||
|
if (import.meta.main) {
|
||
|
const usage = "usage: has-artifacts.ts {REPO} {SHA}"
|
||
|
const repo = Deno.args[0] ?? panic(usage)
|
||
|
const ref = Deno.args[1] ?? panic(usage)
|
||
|
|
||
|
const pr = await find_pr(repo, ref)
|
||
|
|
||
|
if (!pr) {
|
||
|
Deno.stdout.write(new TextEncoder().encode("HAS_ARTIFACTS=false"))
|
||
|
Deno.exit(0)
|
||
|
}
|
||
|
|
||
|
const s3 = new S3({
|
||
|
accessKeyID: Deno.env.get("AWS_ACCESS_KEY_ID")!,
|
||
|
secretKey: Deno.env.get("AWS_SECRET_ACCESS_KEY")!,
|
||
|
region: "us-east-1",
|
||
|
})
|
||
|
const bucket = s3.getBucket(Deno.env.get("AWS_S3_CACHE")!)
|
||
|
|
||
|
const objects = await bucket.listObjects({ prefix: `pull-request/${repo.split("/")[1]}/${pr}/` })
|
||
|
|
||
|
const hasArtifacts = (objects?.contents?.length || 0) > 0
|
||
|
|
||
|
Deno.stdout.write(new TextEncoder().encode(`HAS_ARTIFACTS=${hasArtifacts ? "true" : "false"}`))
|
||
|
}
|