mirror of
https://github.com/DarkFlippers/unleashed-firmware
synced 2024-11-26 22:40:25 +00:00
b80dfbe0c5
* github: fixed grep arg for RC builds * scripts: fbt: checking for .git existence, not for it being a dir Co-authored-by: あく <alleteam@gmail.com>
78 lines
3.1 KiB
YAML
78 lines
3.1 KiB
YAML
name: Submit SDK to Catalog
|
|
author: hedger
|
|
description: |
|
|
This action checks if SDK exists in the catalog and if not, adds and/or publishes it.
|
|
|
|
inputs:
|
|
catalog-url:
|
|
description: The URL of the Catalog API. Must not be empty or end with a /.
|
|
required: true
|
|
catalog-api-token:
|
|
description: The token to use to authenticate with the Catalog API. Must not be empty.
|
|
required: true
|
|
firmware-api:
|
|
description: Fimware's API version, major.minor
|
|
required: true
|
|
firmware-target:
|
|
description: Firmware's target, e.g. f7/f18
|
|
required: true
|
|
firmware-version:
|
|
description: Firmware's version, e.g. 0.13.37-rc3, or 0.13.37
|
|
required: true
|
|
|
|
runs:
|
|
using: composite
|
|
steps:
|
|
- name: Check inputs
|
|
shell: bash
|
|
run: |
|
|
if [ -z "${{ inputs.catalog-url }}" ] ; then
|
|
echo "Invalid catalog-url: ${{ inputs.catalog-url }}"
|
|
exit 1
|
|
fi
|
|
if [ -z "${{ inputs.catalog-api-token }}" ] ; then
|
|
echo "Invalid catalog-api-token: ${{ inputs.catalog-api-token }}"
|
|
exit 1
|
|
fi
|
|
if ! echo "${{ inputs.firmware-api }}" | grep -q "^[0-9]\+\.[0-9]\+$" ; then
|
|
echo "Invalid firmware-api: ${{ inputs.firmware-api }}"
|
|
exit 1
|
|
fi
|
|
if ! echo "${{ inputs.firmware-target }}" | grep -q "^f[0-9]\+$" ; then
|
|
echo "Invalid firmware-target: ${{ inputs.firmware-target }}"
|
|
exit 1
|
|
fi
|
|
if ! echo "${{ inputs.firmware-version }}" | grep -q "^[0-9]\+\.[0-9]\+\.[0-9]\+\(-rc\)\?\([0-9]\+\)\?$" ; then
|
|
echo "Invalid firmware-version: ${{ inputs.firmware-version }}"
|
|
exit 1
|
|
fi
|
|
- name: Submit SDK
|
|
shell: bash
|
|
run: |
|
|
curl -sX 'GET' \
|
|
'${{ inputs.catalog-url }}/api/v0/0/sdk?length=500' \
|
|
-H 'Accept: application/json' > sdk_versions.json
|
|
if jq -r -e ".[] | select((.api == \"${{ inputs.firmware-api }}\") and .target == \"${{ inputs.firmware-target }}\")" sdk_versions.json > found_sdk.json ; then
|
|
echo "API version ${{ inputs.firmware-api }} already exists in catalog"
|
|
if [ $(jq -r -e ".released_at" found_sdk.json) != "null" ] ; then
|
|
echo "API version is already released"
|
|
exit 0
|
|
fi
|
|
if ! echo "${{ inputs.firmware-version }}" | grep -q -- "-rc" ; then
|
|
SDK_ID=$(jq -r ._id found_sdk.json)
|
|
echo "Marking SDK $SDK_ID as released"
|
|
curl -X 'POST' \
|
|
"${{ inputs.catalog-url }}/api/v0/0/sdk/${SDK_ID}/release" \
|
|
-H 'Accept: application/json' \
|
|
-H 'Authorization: Bearer ${{ inputs.catalog-api-token }}' \
|
|
-d ''
|
|
fi
|
|
else
|
|
echo "API version ${{ inputs.firmware-api }} doesn't exist in catalog, adding"
|
|
curl -X 'POST' \
|
|
'${{ inputs.catalog-url }}/api/v0/0/sdk' \
|
|
-H 'Accept: application/json' \
|
|
-H 'Authorization: Bearer ${{ inputs.catalog-api-token }}' \
|
|
-H 'Content-Type: application/json' \
|
|
-d "{\"name\": \"${{ inputs.firmware-version }}\", \"target\": \"${{ inputs.firmware-target }}\", \"api\": \"${{ inputs.firmware-api }}\"}"
|
|
fi
|