Skip to content

release-created

release-created #10

name: Codegen automate generation
on:
workflow_dispatch:
inputs:
release_version:
type: string
required: true
repository_dispatch:
types: [release-created]
jobs:
build:
runs-on: ubuntu-latest
env:
SWAGGER_URL: https://app.statflo.com/api/doc.json
RELEASE_VERSION: ${{ inputs.release_version }}
steps:
- name: Set release version from webapp's release
if: github.event.client_payload.release_version != ''
run: echo "RELEASE_VERSION=${{ github.event.client_payload.release_version }}" >> $GITHUB_ENV
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Install GitHub CLI
run: sudo apt-get install -y gh
- name: Generate code from Swagger file
run: |
# Delete README.md to allow swagger-codegen generate it automatically
rm -f README.md
# Generate code from Swagger file
java -jar ./bin/swagger-codegen-cli-3.0.62.jar generate -i $SWAGGER_URL -l java -o . -t ./templates \
--invoker-package com.statflo.client \
--model-package com.statflo.client.model \
--api-package com.statflo.client.api \
--additional-properties groupId=com.statflo,artifactId=statflo-java-sdk,releaseVersion=${{ env.RELEASE_VERSION }}
- name: Commit and Push
run: |
git config --global user.name "github-actions[bot]"
git config --global user.email "github-actions[bot]@users.noreply.github.com"
git add .
git commit -m "Update generated SDK (run number: ${GITHUB_RUN_NUMBER})"
git push origin main
- name: Create a release tag
env:
GH_TOKEN: ${{ github.token }}
run: |
# Create new tag and push
git tag ${{ env.RELEASE_VERSION }}
git push origin ${{ env.RELEASE_VERSION }}
gh release create ${{ env.RELEASE_VERSION }} --title "Release ${{ env.RELEASE_VERSION }}" --notes "Auto-generated release for ${{ env.RELEASE_VERSION }}"