30 lines
1.1 KiB
Bash
Executable File
30 lines
1.1 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
source ./ci/lib.sh
|
|
|
|
# Grabs the most recent ci.yaml github workflow run that was successful and triggered from the same commit being pushd.
|
|
# This will contain the artifacts we want.
|
|
# https://developer.github.com/v3/actions/workflow-runs/#list-workflow-runs
|
|
get_artifacts_url() {
|
|
curl -sSL 'https://api.github.com/repos/cdr/code-server/actions/workflows/ci.yaml/runs?status=success&event=push' | jq -r ".workflow_runs[] | select(.head_sha == \"$(git rev-parse HEAD)\") | .artifacts_url" | head -n 1
|
|
}
|
|
|
|
# Grabs the artifact's download url.
|
|
# https://developer.github.com/v3/actions/artifacts/#list-workflow-run-artifacts
|
|
get_artifact_url() {
|
|
local artifact_name="$1"
|
|
curl -sSL "$(get_artifacts_url)" | jq -r ".artifacts[] | select(.name == \"$artifact_name\") | .archive_download_url" | head -n 1
|
|
}
|
|
|
|
# Uses the above two functions to download a artifact into a directory.
|
|
download_artifact() {
|
|
local artifact_name="$1"
|
|
local dst="$2"
|
|
|
|
local tmp_file
|
|
tmp_file="$(mktemp)"
|
|
|
|
curl -sSL "$(get_artifact_url "$artifact_name")" > "$tmp_file"
|
|
unzip -o "$tmp_file" -d "$dst"
|
|
rm "$tmp_file"
|
|
}
|