54 lines
1.5 KiB
Bash
54 lines
1.5 KiB
Bash
#!/bin/bash
|
|
set -x
|
|
|
|
export PATH=/snap/bin:$PATH
|
|
|
|
: "${CHARM_BUILD_DIR:=/tmp/charms}"
|
|
|
|
charm whoami
|
|
RET=$?
|
|
if ((RET > 0)); then
|
|
echo "Not logged into charmstore"
|
|
exit 1
|
|
fi
|
|
|
|
function generate::attachments
|
|
{
|
|
./build-calico-resource.sh
|
|
touch calico-node-image.tar.gz
|
|
|
|
charm attach cs:~"$NAMESPACE"/"$CHARM" --channel unpublished \
|
|
calico-node-image=calico-node-image.tar.gz
|
|
charm attach cs:~"$NAMESPACE"/"$CHARM" --channel unpublished \
|
|
calico=calico-amd64.tar.gz
|
|
charm attach cs:~"$NAMESPACE"/"$CHARM" --channel unpublished \
|
|
calico-arm64=calico-arm64.tar.gz
|
|
charm attach cs:~"$NAMESPACE"/"$CHARM" --channel unpublished \
|
|
calico-upgrade=calico-upgrade-amd64.tar.gz
|
|
charm attach cs:~"$NAMESPACE"/"$CHARM" --channel unpublished \
|
|
calico-upgrade-arm64=calico-upgrade-arm64.tar.gz
|
|
}
|
|
|
|
|
|
function generate::resource::argument
|
|
{
|
|
py_script="
|
|
import sys
|
|
import json
|
|
resources_json = json.load(sys.stdin)
|
|
resource_map = []
|
|
for item in resources_json:
|
|
resource_map.append(f\"--resource {item['Name']}-{item['Revision']}\")
|
|
|
|
print(' '.join(resource_map))
|
|
"
|
|
charm list-resources cs:~"$NAMESPACE"/"$CHARM" --channel unpublished --format json | env python3 -c "$py_script"
|
|
}
|
|
|
|
URL=$(charm push "$CHARM_BUILD_DIR"/builds/"$CHARM"/. cs:~"$NAMESPACE"/"$CHARM" | yq r - url)
|
|
generate::attachments
|
|
|
|
if [ "$CHANNEL" != unpublished ]; then
|
|
charm release "$URL" --channel "$CHANNEL" $(generate::resource::argument)
|
|
fi
|