54 lines
No EOL
1.5 KiB
Bash
Executable file
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)" |