#!/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