Skip to content

Commit dc9f0b5

Browse files
committed
Fetch and build families and split into smaller pieces
Signed-off-by: Knut-Erik Johnsen <[email protected]>
1 parent 5182092 commit dc9f0b5

File tree

3 files changed

+70
-15
lines changed

3 files changed

+70
-15
lines changed

.github/workflows/maven-release-provider-model.yaml

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,11 @@ on:
1919
- provider-upjet-github
2020
- provider-terraform
2121
- provider-kubernetes
22+
family:
23+
type: boolean
24+
description: 'Whether to release all crds as a family. False creates individual releases for each family.'
25+
required: true
26+
default: true
2227

2328

2429
jobs:
@@ -37,25 +42,15 @@ jobs:
3742
server-password: MAVEN_CENTRAL_TOKEN # env variable for token in deploy
3843
gpg-private-key: ${{ secrets.MAVEN_GPG_PRIVATE_KEY }} # Value of the GPG private key to import
3944
gpg-passphrase: MAVEN_GPG_PASSPHRASE # env variable for GPG private key passphrase
40-
- name: Fetch crds
45+
- name: Fetch and build crds
4146
env:
4247
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
43-
working-directory: "./provider-models/crossplane-${{ github.event.inputs.provider }}/src/main/resources/kubernetes"
44-
run : ./fetch.sh "${{ github.event.inputs.releaseversion }}"
45-
- name: List crds
46-
working-directory: "./provider-models/crossplane-${{ github.event.inputs.provider }}/src/main/resources/kubernetes"
47-
run : ls
48-
- name: Set the revision property
49-
working-directory: "./provider-models/crossplane-${{ github.event.inputs.provider }}"
50-
run: mvn versions:set-property -Dproperty=modelrevision "-DnewVersion=${{ github.event.inputs.releaseversion }}" -DgenerateBackupPoms=false
51-
- name: Build with Maven
52-
working-directory: "./provider-models/crossplane-${{ github.event.inputs.provider }}"
53-
run: mvn -B deploy --file pom.xml -Pdeploy
54-
env:
5548
MAVEN_CENTRAL_USERNAME: ${{ secrets.MAVEN_CENTRAL_USERNAME }}
5649
MAVEN_CENTRAL_TOKEN: ${{ secrets.MAVEN_CENTRAL_TOKEN }}
5750
MAVEN_GPG_PASSPHRASE: ${{ secrets.MAVEN_GPG_PASSPHRASE }}
5851
MAVEN_OPTS: "-Xmx2048m"
52+
working-directory: "./provider-models/crossplane-${{ github.event.inputs.provider }}"
53+
run : ./fetchAndBuild.sh "${{ github.event.inputs.releaseversion }}"
5954
- name: Create release
6055
env:
6156
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
#!/bin/bash
2+
3+
javaRelease="2.3.0"
4+
release="v${javaRelease}"
5+
split="false"
6+
7+
if [ $# -eq 2 ]
8+
then
9+
javaRelease="$1"
10+
release="v$1"
11+
split="$2"
12+
fi
13+
14+
echo "Fetching release: ${release}"
15+
16+
commitSha=$(gh api "repos/crossplane-contrib/provider-upjet-azure/git/ref/tags/${release}" -q '.object.sha')
17+
commitTreeSha=$(gh api "repos/crossplane-contrib/provider-upjet-azure/git/commits/${commitSha}" -q '.tree.sha')
18+
packageTreeSha=$(gh api "repos/crossplane-contrib/provider-upjet-azure/git/trees/${commitTreeSha}" -q '.tree[] | select(.path=="package") | .sha')
19+
crdsTreeSha=$(gh api "repos/crossplane-contrib/provider-upjet-azure/git/trees/${packageTreeSha}" -q '.tree[] | select(.path=="crds") | .sha')
20+
21+
# echo "Resolved commit SHA: ${commitSha}"
22+
# echo "Resolved commit tree SHA: ${commitTreeSha}"
23+
# echo "Resolved package tree SHA: ${packageTreeSha}"
24+
# echo "Resolved crds tree SHA: ${crdsTreeSha}"
25+
26+
crds=$(gh api "repos/crossplane-contrib/provider-upjet-azure/git/trees/${crdsTreeSha}" --jq '[ .tree[].path]' | jq -r '.[]')
27+
#crds=$(gh api --jq '.[].name' "/repos/crossplane-contrib/provider-upjet-azure/contents/package/crds?ref=${release}")
28+
29+
groups=$(echo -e "$crds" | cut -d'.' -f1 | sort | uniq)
30+
31+
for crd in $crds;
32+
do
33+
folder="./src/main/resources/kubernetes/"
34+
if [ "$split" = "true" ] ; then
35+
folder="${folder}$(echo $crd | cut -d'.' -f1 )/"
36+
mkdir -p "${folder}"
37+
fi
38+
# output=$(echo $file | cut -d'_' -f2)
39+
gh api -H "Accept: application/vnd.github.raw+json" "/repos/crossplane-contrib/provider-upjet-azure/contents/package/crds/${crd}?ref=${release}" > "${folder}${crd}"
40+
retVal=$?
41+
if [ $retVal -ne 0 ]; then
42+
echo "Failed to fetch ${crd}"
43+
fi
44+
45+
done
46+
47+
if [ "$split" = "true" ] ; then
48+
for group in $groups; do
49+
mvn -B deploy --file pom.xml -Pdeploy -Dmodelrevision="${javaRelease}" -DmodelDirectory="/${group}" -DmodelGroup="${group}"
50+
done
51+
fi
52+
mvn -B deploy --file pom.xml -Pdeploy -Dmodelrevision="${javaRelease}"
53+
54+
55+
56+
57+
58+

provider-models/crossplane-provider-upjet-azure/pom.xml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,15 @@
1010
</parent>
1111

1212
<name>Crossplane Provider Azure</name>
13-
<artifactId>crossplane-provider-upjet-azure-model</artifactId>
13+
<artifactId>crossplane-provider-upjet-azure-model-${modelGroup}</artifactId>
1414
<description>Crossplane models for the Azure upjet based provider</description>
1515

1616

1717
<version>${modelrevision}</version>
1818
<properties>
1919
<modelrevision>1.0.0-SNAPSHOT</modelrevision>
20+
<modelDirectory/>
21+
<modelGroup>family</modelGroup>
2022
</properties>
2123

2224
<!-- DEPENDENCIES -->
@@ -46,7 +48,7 @@
4648
</execution>
4749
</executions>
4850
<configuration>
49-
<source>src/main/resources/kubernetes</source>
51+
<source>src/main/resources/kubernetes${modelDirectory}</source>
5052
</configuration>
5153
</plugin>
5254
</plugins>

0 commit comments

Comments
 (0)