diff --git a/.github/workflows/openapi-generate.yml b/.github/workflows/openapi-generate.yml index 824ac5c7..ceec9de5 100644 --- a/.github/workflows/openapi-generate.yml +++ b/.github/workflows/openapi-generate.yml @@ -12,15 +12,8 @@ jobs: - uses: actions/checkout@v4 - name: Set up system run: sudo apt install -y xq - - id: openapi-version - name: Detect openapi-generator-cli version - run: | - version=`wget https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/maven-metadata.xml -O - | xq -x "//metadata/versioning/latest"` - echo "version=$version" >> $GITHUB_OUTPUT - - name: Set up openapi-generator-cli - run: wget https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/${{ steps.openapi-version.outputs.version }}/openapi-generator-cli-${{ steps.openapi-version.outputs.version }}.jar -O openapi-generator-cli.jar - name: OpenAPI Generate - run: java -jar openapi-generator-cli.jar generate --input-spec https://raw.githubusercontent.com/kubevirt/kubevirt/refs/heads/main/api/openapi-spec/swagger.json --skip-validate-spec --generator-name ruby --config .openapi-config.json + run: bin/openapi-generate - name: Create Pull Request uses: peter-evans/create-pull-request@v7 with: diff --git a/.gitignore b/.gitignore index 7fb66bdd..d3abda29 100644 --- a/.gitignore +++ b/.gitignore @@ -7,6 +7,7 @@ /coverage/ /Gemfile.lock /InstalledFiles +/openapi-generator-cli*.jar /pkg/ /spec/reports/ /spec/examples.txt diff --git a/.openapi-generator-ignore b/.openapi-generator-ignore index 7484ee59..5f2771c4 100644 --- a/.openapi-generator-ignore +++ b/.openapi-generator-ignore @@ -21,3 +21,8 @@ #docs/*.md # Then explicitly reverse the ignore rule for a single file: #!docs/README.md + +.gitlab-ci.yml +.gitignore +.travis.yml +Gemfile diff --git a/bin/openapi-generate b/bin/openapi-generate new file mode 100755 index 00000000..c9e86b30 --- /dev/null +++ b/bin/openapi-generate @@ -0,0 +1,18 @@ +#!/bin/bash + +# Detect the latest version of the openapi-generator-cli package +version=`wget https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/maven-metadata.xml -O - 2>/dev/null | xq -x "//metadata/versioning/latest"` + +# Download the openapi-generator-cli jar if we don't already have it locally +if [[ ! -f openapi-generator-cli-$version.jar ]] +then + echo "Downloading 'openapi-generator-cli-$version.jar'..." + wget https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/$version/openapi-generator-cli-$version.jar +fi + +# Clear out any existing files in paths that are autogenerated to prevent deleted files +# from remaining after running the generate +rm -rf ./docs ./lib ./spec + +# Generate the kubevirt gem from the current openapi-spec +java -jar openapi-generator-cli-$version.jar generate --input-spec https://raw.githubusercontent.com/kubevirt/kubevirt/refs/heads/main/api/openapi-spec/swagger.json --skip-validate-spec --generator-name ruby --config .openapi-config.json