workflow: generate provider.json, upload to terralist
All checks were successful
test / test (push) Successful in 19s
ci / goreleaser (push) Successful in 28s

This commit is contained in:
Martin McCaffery 2025-11-19 10:50:39 +01:00
parent 7cb14a872a
commit c8104c0f1d
Signed by: martin.mccaffery
GPG key ID: 7C4D0F375BCEE533
2 changed files with 59 additions and 4 deletions

View file

@ -34,7 +34,11 @@ jobs:
with: with:
args: release --clean args: release --clean
- name: TEST output json (artifacts) - name: Generate and upload provider.json
run: echo "${{steps.goreleaser.outputs.artifacts}}" run: |
- name: TEST output json (metadata) echo '${{steps.goreleaser.outputs.artifacts}}' >artifacts.json
run: echo "${{steps.goreleaser.outputs.metadata}}" echo '${{steps.goreleaser.outputs.metadata}}' >metadata.json
./generate-provider-json.sh artifacts.json metadata.json
env:
TERRALIST_API: https://terralist.garm-provider-test.t09.de/v1/api
TERRALIST_API_KEY: ${{ secrets.TERRALIST_API_KEY }}

51
generate-provider-json.sh Executable file
View file

@ -0,0 +1,51 @@
#!/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}
VERSION=$(cat $METADATA_FILE | jq -r '.version')
BASE_URL="$GITHUB_SERVER_URL/$GITHUB_REPOSITORY/releases/download"
if ! [[ "$BASE_URL" =~ "terraform" ]]; then
echo "Error: GITHUB_ 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)"