workflow: generate provider.json, upload to terralist
This commit is contained in:
parent
7cb14a872a
commit
8fba4b49fd
2 changed files with 62 additions and 4 deletions
12
.github/workflows/release.yaml
vendored
12
.github/workflows/release.yaml
vendored
|
|
@ -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 }}
|
||||||
|
|
|
||||||
54
generate-provider-json.sh
Executable file
54
generate-provider-json.sh
Executable file
|
|
@ -0,0 +1,54 @@
|
||||||
|
#!/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)"
|
||||||
Loading…
Add table
Add a link
Reference in a new issue