Generate #9
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Generate | |
on: | |
workflow_dispatch: | |
inputs: | |
kubernetesBranch: | |
type: string | |
required: true | |
description: 'The remote kubernetes release branch to fetch openapi spec. e.g. "release-1.28"' | |
genCommit: | |
type: string | |
required: true | |
default: 'master' | |
description: 'The commit to use for the kubernetes-client/gen repo' | |
oagCommit: | |
type: string | |
required: true | |
default: 'master' | |
description: 'The commit to use for the OpenAPITools/openapi-generator repo. e.g. "v7.0.0"' | |
clientVersion: | |
type: string | |
required: true | |
default: '0.8.0' | |
description: 'Semvar to use for the version number' | |
jobs: | |
generate: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout C | |
uses: actions/checkout@v3 | |
- uses: actions/setup-java@v3 | |
with: | |
distribution: 'temurin' | |
java-version: '17' | |
- name: Checkout Gen | |
run: | | |
git clone https://github.com/kubernetes-client/gen | |
pushd gen | |
git checkout "${{ github.event.inputs.genCommit }}" | |
- name: Generate Branch Name | |
run: | | |
SUFFIX=$(openssl rand -hex 4) | |
echo "BRANCH=automated-generate-$SUFFIX" >> $GITHUB_ENV | |
- name: Remove old files | |
run: | | |
find kubernetes/model -type f -not -name "int_or_string*" -exec rm -r {} \; | |
find kubernetes/api -type f -not -name "int_or_string*" -exec rm -r {} \; | |
find kubernetes/unit-test -type f -not -name "manual*" -exec rm -r {} \; | |
- name: Generate Openapi | |
run: | | |
pushd gen/openapi | |
cat <<"EOF"> settings | |
# Kubernetes branch/tag to get the OpenAPI spec from. | |
export KUBERNETES_BRANCH="${{ github.event.inputs.kubernetesBranch }}" | |
# client version is not currently used by the code generator. | |
export CLIENT_VERSION="${{github.event.inputs.clientVersion}}" | |
# Name of the release package | |
export PACKAGE_NAME="client" | |
# OpenAPI-Generator branch/tag to generate the client library | |
export OPENAPI_GENERATOR_COMMIT="${{ github.event.inputs.oagCommit }}" | |
export USERNAME=kubernetes | |
EOF | |
bash c.sh ../../kubernetes settings | |
cp settings ../../settings | |
popd | |
rm -rf gen | |
- name: Update version | |
run: | | |
perl -pi -e "s/PROJECT_VERSION_MAJOR \\d/PROJECT_VERSION_MAJOR $(echo ${{ github.event.inputs.clientVersion }} | awk -F. '{print $1}')/" kubernetes/PreTarget.cmake | |
perl -pi -e "s/PROJECT_VERSION_MINOR \\d/PROJECT_VERSION_MINOR $(echo ${{ github.event.inputs.clientVersion }} | awk -F. '{print $2}')/" kubernetes/PreTarget.cmake | |
perl -pi -e "s/PROJECT_VERSION_PATCH \\d/PROJECT_VERSION_PATCH $(echo ${{ github.event.inputs.clientVersion }} | awk -F. '{print $3}')/" kubernetes/PreTarget.cmake | |
- name: Commit and push | |
run: | | |
# Commit and push | |
git config user.email "k8s.ci.robot@gmail.com" | |
git config user.name "Kubernetes Prow Robot" | |
git checkout -b "$BRANCH" | |
git add . | |
git commit -s -m 'Automated openapi generation from ${{ github.event.inputs.kubernetesBranch }}' | |
git push origin "$BRANCH" | |
- name: Pull Request | |
uses: repo-sync/pull-request@v2 | |
with: | |
source_branch: ${{ env.BRANCH }} | |
destination_branch: ${{ github.ref_name }} | |
github_token: ${{ secrets.GITHUB_TOKEN }} | |
pr_title: "Automated Generate from openapi ${{ github.event.inputs.kubernetesBranch }}" |