terraform-provider-edge-con.../generate-provider-json.sh
Martin McCaffery c6ea12ed73
All checks were successful
test / test (push) Successful in 19s
ci / goreleaser (push) Successful in 35s
workflow: generate provider.json, upload to terralist
2025-11-19 10:51:51 +01:00

49 lines
No EOL
1.2 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}
echo -e "\n__ARTIFACTS_FILE__"
cat $ARTIFACTS_FILE | jq .
echo -e "\n__METADATA_FILE__"
cat $METADATA_FILE | jq .
VERSION=$(cat $METADATA_FILE | jq -r '.version')
jq --arg base "$FORGEJO_SERVER_URL/$FORGEJO_REPOSITORY/releases/download" --arg version "$VERSION" '
{
protocols: ["6"],
shasums: (
{
url: ($base + "/v" + $version + "/" + (.[]
| select(.type=="Checksum").name)),
signature_url: ($base + "/v" + $version + "/" + (.[]
| select(.type=="Signature").name))
}
),
platforms: [
.[]
| select(.type=="Archive")
| {
os: .goos,
arch: .goarch,
download_url: ($base + "/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)"