terraform-provider-edge-con.../generate-provider-json.sh
Martin McCaffery 8fba4b49fd
Some checks failed
test / test (push) Successful in 22s
ci / goreleaser (push) Failing after 28s
workflow: generate provider.json, upload to terralist
2025-11-19 11:03:48 +01:00

54 lines
No EOL
1.5 KiB
Bash
Executable file

#!/bin/bash
set -o errexit
# This script generates and uploads a terraform provider.json file and uploads it to Terralist
ARTIFACTS_FILE=$1
METADATA_FILE=$2
TERRALIST_API=${TERRALIST_API:-https://terralist.garm-provider-test.t09.de/v1/api}
TERRALIST_API_KEY=${TERRALIST_API_KEY:-invalid-key}
env | grep FORGEJO_ || echo "Warning: no FORGEJO_ environment variables found"
env | grep GITHUB_ || echo "Warning: no GITHUB_ environment variables found"
VERSION=$(cat $METADATA_FILE | jq -r '.version')
BASE_URL="$FORGEJO_SERVER_URL/$FORGEJO_REPOSITORY/releases/download"
if ! [[ "$BASE_URL" =~ "terraform" ]]; then
echo "Error: FORGEJO_ environment variables not set correctly" >&2
exit 1
fi
jq --arg base_url "$BASE_URL" --arg version "$VERSION" '
{
protocols: ["6"],
shasums: (
{
url: ($base_url + "/v" + $version + "/" + (.[]
| select(.type=="Checksum").name)),
signature_url: ($base_url + "/v" + $version + "/" + (.[]
| select(.type=="Signature").name))
}
),
platforms: [
.[]
| select(.type=="Archive")
| {
os: .goos,
arch: .goarch,
download_url: ($base_url + "/v" + $version + "/" + .name),
shasum: (.extra.Checksum | sub("^sha256:";""))
}
]
}
' $ARTIFACTS_FILE >./provider.json
cat provider.json | jq .
curl -X POST $TERRALIST_API/providers/edge-connect/${VERSION}/upload \
-H "Authorization: Bearer x-api-key:$TERRALIST_API_KEY" \
-d "$(cat ./provider.json)"