Skip to content

Instantly share code, notes, and snippets.

@grenade
Created August 25, 2021 18:57
Show Gist options
  • Save grenade/c8ec48cd15b5e1cdcd5724871685582e to your computer and use it in GitHub Desktop.
Save grenade/c8ec48cd15b5e1cdcd5724871685582e to your computer and use it in GitHub Desktop.
#!/bin/bash
script_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
tmp_dir=$(mktemp -d -t XXXXXXXXXX)
build_sha=03d329e58c07abe3ebadbe45651b5936a6f8b13d
tc_task_group_url=$(curl -s https://api.github.com/repos/mozilla-releng/OpenCloudConfig/commits/${build_sha}/statuses | jq -r '.[0].target_url')
tc_task_group_id=$(basename ${tc_task_group_url})
mkdir -p ${script_dir}/latest
_jq_decode() {
echo ${1} | base64 --decode | jq -r ${2}
}
curl -s https://firefox-ci-tc.services.mozilla.com/api/queue/v1/task-group/${tc_task_group_id}/list | jq -r '.tasks[] | @base64' | while read task_base64; do
task_id=$(_jq_decode ${task_base64} .status.taskId)
task_route=$(_jq_decode ${task_base64} .task.routes[0])
worker_type=${task_route##*.}
if [ -f ${script_dir}/${worker_type}.json ]; then
jq --arg worker_type ${worker_type} --arg deployment_id ${build_sha:0:12} '. | .maxCapacity = 4 | .launchConfigs[].additionalUserData.workerType = $worker_type | .launchConfigs[].workerConfig.genericWorker.config.deploymentId = $deployment_id' ${script_dir}/${worker_type}.json > ${script_dir}/latest/${worker_type}.json
echo ${worker_type} ${task_id}
curl -s $(curl -s https://firefox-ci-tc.services.mozilla.com/api/queue/v1/task/${task_id}/runs/0/artifacts/public/ami-latest.json | jq -r '.url') > ${tmp_dir}/ami-latest-${worker_type}.json
for region in $(jq -r '. | keys | .[]' ${tmp_dir}/ami-latest-${worker_type}.json); do
latest_ami_id=$(jq -r --arg region ${region} '.[$region]' ${tmp_dir}/ami-latest-${worker_type}.json)
previous_ami_id=$(jq -r --arg region ${region} '[.launchConfigs[] | select(.region == $region)][0].launchConfig.ImageId' ${script_dir}/${worker_type}.json)
if [ "${previous_ami_id}" != "null" ] && [ "${previous_ami_id}" != "${latest_ami_id}" ]; then
echo "${region}: ${previous_ami_id} -> ${latest_ami_id}"
sed -i -e "s/${previous_ami_id}/${latest_ami_id}/g" ${script_dir}/latest/${worker_type}.json
fi
done
fi
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment