Skip to content

Commit 00b7854

Browse files
committed
Adds get-releases script and updates boms
- Touches boms to force release Signed-off-by: Sean Sundberg <[email protected]>
1 parent e06eabe commit 00b7854

File tree

9 files changed

+85
-14
lines changed

9 files changed

+85
-14
lines changed

.github/scripts/bom-details-to-releases.sh

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ fi
99

1010
BOM_DETAILS=$(</dev/stdin)
1111

12+
gh auth login -h github.com 1>&2
13+
1214
RELEASES="[]"
1315

1416
while read -r bom; do
@@ -25,9 +27,10 @@ while read -r bom; do
2527
fi
2628

2729
echo " Creating tag: ${release_name}" 1>&2
28-
git tag -a "${release_name}" -m "${version} release of ${name} bom" 1> /dev/null 2> /dev/null
30+
git tag -a "${release_name}" -m "${version} release of ${name} bom" 1> /dev/null
2931
git push --tags 1> /dev/null 2> /dev/null
3032

33+
echo " Copying asset to /tmp/asset/${name}" 1>&2
3134
mkdir -p "/tmp/asset/${name}" 1> /dev/null
3235
cp "${file}" "/tmp/asset/${name}/bom.yaml" 1> /dev/null
3336

@@ -37,7 +40,7 @@ while read -r bom; do
3740
--title "${release_name}" \
3841
--notes "${version} release of ${name} bom" \
3942
--repo "${REPO}" \
40-
"/tmp/asset/${name}/bom.yaml" 1> /dev/null 2> /dev/null || continue
43+
"/tmp/asset/${name}/bom.yaml" 1> /dev/null || continue
4144

4245
echo "Release created: ${release_name}" 1>&2
4346
RELEASES=$(echo "${RELEASES}" | jq --argjson bom "${bom}" '. += [$bom]')

.github/scripts/get-releases.sh

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
#!/usr/bin/env bash
2+
3+
REPO="${1:-github.com/cloud-native-toolkit/automation-solutions}"
4+
5+
BASE_URL="https://github.com/cloud-native-toolkit/automation-solutions/releases/download"
6+
7+
if ! command -v yq 1> /dev/null 2> /dev/null; then
8+
echo "yq not installed" 1>&2
9+
exit 1
10+
fi
11+
if ! command -v jq 1> /dev/null 2> /dev/null; then
12+
echo "jq not installed" 1>&2
13+
exit 1
14+
fi
15+
16+
TAB=$'\t'
17+
RELEASES=$(gh release list --repo "${REPO}" | grep -v TITLE | sed -E "s/^([^ ${TAB}]+)[ ${TAB}]+.*/\1/g")
18+
19+
RESULT="[]"
20+
21+
bom_details() {
22+
local bom="$1"
23+
24+
name=$(yq e '.metadata.name' "${bom}")
25+
version=$(yq e '.spec.version // "v1.0.0"' "${bom}")
26+
display_name=$(yq e '.metadata.annotation.displayName // ""' "${bom}")
27+
description=$(yq e '.metadata.annotation.description // ""' "${bom}")
28+
category=$(yq e '.metadata.labels.type // ""' "${bom}")
29+
release_name="${name}_${version}"
30+
31+
if [[ -z "${display_name}" ]]; then
32+
display_name="${name}"
33+
fi
34+
if [[ -z "${description}" ]]; then
35+
description="Layer for ${name}"
36+
fi
37+
38+
RESULT=$(echo "${RESULT}" | jq --arg name "${name}" --arg file "${bom}" --arg version "${version}" --arg release "${release_name}" --arg displayName "${display_name}" --arg description "${description}" --arg category "${category}" '. += [{"name": $name, "version": $version, "release_name": $release, "display_name": $displayName, "description": $description, "category": $category, "file": $file}]')
39+
}
40+
41+
while read -r release_name; do
42+
43+
release_url="${BASE_URL}/${release_name}/bom.yaml"
44+
45+
mkdir -p "/tmp/asset/${release_name}"
46+
curl -Lso "/tmp/asset/${release_name}/bom.yaml" "${release_url}"
47+
48+
if ! yq e '.' "/tmp/asset/${release_name}/bom.yaml" 1> /dev/null 2> /dev/null; then
49+
echo "Failed to parse file: /tmp/asset/${release_name}/bom.yaml" 1>&2
50+
continue
51+
fi
52+
53+
bom_details "/tmp/asset/${release_name}/bom.yaml"
54+
55+
done < <(echo "${RELEASES}")
56+
57+
echo "${RESULT}"

.github/scripts/releases-to-index.sh

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
#!/usr/bin/env bash
22

3-
INDEX_FILE="${1:-index.yaml}"
3+
INPUT_FILE="${1:-index.yaml}"
4+
OUTPUT_FILE="${2:-/dev/stdout}"
45

56
if ! command -v yq 1> /dev/null 2> /dev/null; then
67
echo "yq not installed" 1>&2
@@ -16,7 +17,7 @@ RELEASES=$(</dev/stdin)
1617

1718
BASE_URL="https://github.com/cloud-native-toolkit/automation-solutions/releases/download"
1819

19-
INDEX_JSON=$(yq e '.' -o json "${INDEX_FILE}")
20+
INDEX_JSON=$(yq e '.' -o json "${INPUT_FILE}")
2021

2122
while read -r release; do
2223
name=$(echo "${release}" | jq -r '.name')
@@ -32,7 +33,13 @@ while read -r release; do
3233

3334
release_json=$(echo "${INDEX_JSON}" | jq --arg name "${name}" -c '.boms[] | select(.name == $name)')
3435
if [[ -n "${release_json}" ]]; then
35-
versions=$(echo "${release_json}" | jq -c --argjson version "${version_json}" '.versions | reverse | . += [$version] | reverse')
36+
versions=$(echo "${release_json}" | jq -c '.versions')
37+
38+
if [[ $(echo "${versions}" | jq -r --arg version "${version}" '.[] | select(.version == $version) | .version // ""') == "${version}" ]]; then
39+
versions=$(echo "${versions}" | jq -c --arg version "${version}" --arg url "${release_url}" 'map((select(.version == $version) | .metadataUrl) |= $url)')
40+
else
41+
versions=$(echo "${versions}" | jq -c --argjson version "${version_json}" '. | reverse | . += [$version] | reverse')
42+
fi
3643

3744
release_json=$(echo "${release_json}" | jq -c --argjson versions "${versions}" '.versions = $versions')
3845

@@ -45,4 +52,4 @@ while read -r release; do
4552

4653
done < <(echo "${RELEASES}" | jq -c '.[]')
4754

48-
echo "${INDEX_JSON}" | yq e -P '.' -
55+
echo "${INDEX_JSON}" | yq e -P '.' - > "${OUTPUT_FILE}"

.github/workflows/release.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,10 @@ jobs:
6666
output_file="/tmp/output/index.yaml"
6767
6868
cd main
69+
70+
git config user.name "$GITHUB_ACTOR"
71+
git config user.email "[email protected]"
72+
6973
echo "${{ steps.changed-files.outputs.all_changed_files }}" | \
7074
tr " " "\n" | xargs -I{} echo "${PWD}/{}" | \
7175
.github/scripts/bom-changes-to-details.sh | \

boms/infrastructure/aws/105-aws-vpc-openshift.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ metadata:
77
code: '105'
88
platform: aws
99
annotations:
10-
displayName: AWS OpenShift Quickstart
11-
description: Provision OpenShift on AWS
10+
displayName: AWS OpenShift (ROSA) Quickstart
11+
description: Provision ROSA managed OpenShift on AWS
1212
spec:
1313
version: v1.0.1
1414
modules:

boms/infrastructure/aws/110-aws-vpc-openshift-standard.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ metadata:
77
code: '110'
88
platform: aws
99
annotations:
10-
displayName: AWS OpenShift Standard
11-
description: Provision OpenShift on AWS
10+
displayName: AWS OpenShift (ROSA) Standard
11+
description: Provision ROSA managed OpenShift on AWS
1212
spec:
1313
version: v1.0.1
1414
modules:

boms/infrastructure/azure/101-azure-vnet-std.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ metadata:
77
platform: azure
88
code: '101'
99
annotations:
10-
displayName: Azure Red Hat OpenShift Standard
10+
displayName: Azure vnet Standard
1111
description: Azure base infrastructure for OpenShift standard architecture
1212
vpn/required: false
1313
spec:

boms/infrastructure/azure/105-azure-aro-std.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ metadata:
88
code: '105'
99
annotations:
1010
displayName: Azure Red Hat OpenShift (ARO) Standard
11-
description: Azure ARO for Standard Architecture
11+
description: Azure ARO managed OpenShift for Standard Architecture
1212
vpn/required: 'true'
1313
spec:
1414
version: v1.0.0

boms/infrastructure/azure/110-azure-byo-certificate.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
apiVersion: cloud.ibm.com/v1alpha1
22
kind: BillOfMaterial
33
metadata:
4-
name: 111-supplied-certificate
4+
name: 110-supplied-certificate
55
labels:
66
type: infrastructure
77
platform: azure
8-
code: '111'
8+
code: '110'
99
annotations:
1010
displayName: Supplied Certificate
1111
description: Supplied Certificate for OpenShift

0 commit comments

Comments
 (0)