Skip to content

Commit d780a9b

Browse files
authored
Merge pull request #1267 from yue9944882/codegen-abort-on-failure
Codegen should abort upon hitting any error
2 parents 069c6c5 + a44b189 commit d780a9b

File tree

5 files changed

+43
-7
lines changed

5 files changed

+43
-7
lines changed

.github/workflows/maven.yml

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,3 +63,29 @@ jobs:
6363
-B \
6464
-De2e.skip=false \
6565
-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn
66+
codegen:
67+
runs-on: ubuntu-latest
68+
services:
69+
registry:
70+
image: registry:2
71+
ports:
72+
- 5000:5000
73+
name: CRD Java Models Code Generation
74+
steps:
75+
- name: Publish to Registry
76+
uses: elgohr/Publish-Docker-Github-Action@master
77+
with:
78+
name: kubernetes-client/java/crd-model-gen
79+
tags: gh-action-tmp
80+
username: ${{ github.actor }}
81+
password: ${{ secrets.GITHUB_TOKEN }}
82+
registry: docker.pkg.github.com
83+
workdir: client-java-contrib
84+
no_push: true
85+
- name: Run Code-gen for Cert-Manager
86+
working-directory: ${{ github.workspace }}/client-java-contrib/cert-manager
87+
run: IMAGE_TAG=gh-action-tmp ./update.sh
88+
- name: Run Code-gen for Prometheus-Operator
89+
working-directory: ${{ github.workspace }}/client-java-contrib/prometheus-operator
90+
run: IMAGE_TAG=gh-action-tmp ./update.sh
91+

client-java-contrib/cert-manager/update.sh

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,16 +16,18 @@
1616
# This script generates the model classes from a released version of cert-manager CRDs
1717
# under src/main/java/io/cert/manager/models.
1818

19+
IMAGE_NAME=${IMAGE_NAME:docker.pkg.github.com/kubernetes-client/java/crd-model-gen}
20+
IMAGE_TAG=${IMAGE_TAG:v1.0.2}
21+
1922
# a crdgen container is run in a way that:
2023
# 1. it has access to the docker daemon on the host so that it is able to create sibling container on the host
2124
# 2. it runs on the host network so that it is able to communicate with the KinD cluster it launched on the host
2225
docker run \
2326
--rm \
2427
-v /var/run/docker.sock:/var/run/docker.sock \
2528
-v "$(pwd)":"$(pwd)" \
26-
-ti \
2729
--network host \
28-
docker.pkg.github.com/kubernetes-client/java/crd-model-gen:v1.0.1 \
30+
${IMAGE_NAME}:${IMAGE_TAG} \
2931
/generate.sh \
3032
-u https://github.com/jetstack/cert-manager/releases/download/v0.16.1/cert-manager.crds.yaml \
3133
-n io.cert-manager \

client-java-contrib/generate.sh

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,12 +41,16 @@ while getopts 'u:n:p:o:' flag; do
4141
esac
4242
done
4343

44+
set -e
45+
4446
# create a KinD cluster on the host
4547
kind create cluster
4648

4749
# install CRDs to the KinD cluster and dump the swagger spec
4850
for url in "${CRD_URLS[@]}"; do
49-
kubectl apply -f "$url"
51+
if [[ ! -z $url ]]; then
52+
kubectl apply -f "$url"
53+
fi
5054
done
5155

5256
sleep 5
@@ -58,10 +62,12 @@ kubectl get crd -o name \
5862
do
5963
if [[ $(kubectl get $L -o jsonpath='{.status.conditions[?(@.type=="NonStructuralSchema")].status}') == "True" ]]; then
6064
echo "$L failed publishing openapi schema because it's attached non-structral-schema condition."
65+
kind delete cluster
6166
exit 1
6267
fi
6368
if [[ $(kubectl get $L -o jsonpath='{.spec.preserveUnknownFields}') == "true" ]]; then
6469
echo "$L failed publishing openapi schema because it explicitly disabled unknown fields pruning."
70+
kind delete cluster
6571
exit 1
6672
fi
6773
echo "$L successfully installed"

client-java-contrib/prometheus-operator/update.sh

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,16 +16,18 @@
1616
# This script generates the model classes from a released version of cert-manager CRDs
1717
# under src/main/java/io/cert/manager/models.
1818

19+
IMAGE_NAME=${IMAGE_NAME:docker.pkg.github.com/kubernetes-client/java/crd-model-gen}
20+
IMAGE_TAG=${IMAGE_TAG:v1.0.2}
21+
1922
# a crdgen container is run in a way that:
2023
# 1. it has access to the docker daemon on the host so that it is able to create sibling container on the host
2124
# 2. it runs on the host network so that it is able to communicate with the KinD cluster it launched on the host
2225
docker run \
2326
--rm \
2427
-v /var/run/docker.sock:/var/run/docker.sock \
2528
-v "$(pwd)":"$(pwd)" \
26-
-ti \
2729
--network host \
28-
docker.pkg.github.com/kubernetes-client/java/crd-model-gen:v1.0.1 \
30+
${IMAGE_NAME}:${IMAGE_TAG} \
2931
/generate.sh \
3032
-u https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.38.1/example/prometheus-operator-crd/monitoring.coreos.com_alertmanagers.yaml \
3133
-u https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.38.1/example/prometheus-operator-crd/monitoring.coreos.com_thanosrulers.yaml \

docs/generate-model-from-third-party-resources.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ docker run \
5353
-v "$(pwd)":"$(pwd)" \
5454
-ti \
5555
--network host \
56-
docker.pkg.github.com/kubernetes-client/java/crd-model-gen:v1.0.1 \
56+
docker.pkg.github.com/kubernetes-client/java/crd-model-gen:v1.0.2 \
5757
/generate.sh \
5858
-u https://gist.githubusercontent.com/yue9944882/266fee8e95c2f15a93778263633e72ed/raw/be12c13379eeed13d2532cb65da61fffb19ee3e7/crontab-crd.yaml \
5959
-n com.example.stable \
@@ -84,7 +84,7 @@ docker run \
8484
-v "$(pwd)":"$(pwd)" \
8585
-ti \
8686
--network host \
87-
docker.pkg.github.com/kubernetes-client/java/crd-model-gen:v1.0.1 \
87+
docker.pkg.github.com/kubernetes-client/java/crd-model-gen:v1.0.2 \
8888
/generate.sh \
8989
-u $LOCAL_MANIFEST_FILE \
9090
-n com.example.stable \

0 commit comments

Comments
 (0)