Openapi and Clients #118
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: Openapi and Clients | |
on: | |
release: | |
push: | |
branches: | |
- main | |
- dev | |
workflow_dispatch: | |
jobs: | |
generate-openapi-and-clients: | |
runs-on: ubuntu-latest | |
permissions: | |
contents: write | |
packages: write | |
services: | |
redis: | |
image: redis | |
ports: | |
- 6379:6379 | |
mongo: | |
image: mongo | |
ports: | |
- 27017:27017 | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
with: | |
ref: ${{ github.head_ref }} # checkout the correct branch name | |
fetch-depth: 0 # fetch the whole repo history | |
- name: Git Version | |
id: version | |
uses: codacy/[email protected] | |
with: | |
release-branch: main | |
dev-branch: dev | |
major-identifier: "breaking:" | |
minor-identifier: "feature:" | |
- uses: actions/setup-java@v4 | |
with: | |
distribution: temurin | |
java-version: 21 | |
# - name: Startup Mongodb | |
# uses: supercharge/[email protected] | |
# | |
# - name: Startup Redis | |
# uses: shogo82148/actions-setup-redis@v1 | |
- name: Remove aliyun maven mirror | |
run: | | |
sed -i '/maven(url/d' build.gradle.kts | |
- name: Set versions | |
run: | | |
sed -i "s/^version.*$/version = \"${{ steps.version.outputs.version }}\"/g" build.gradle.kts | |
sed -i 's/"packageVersion.*,/"packageVersion": "${{ steps.version.outputs.version }}",/g' client-config/cpp.json | |
sed -i 's/"packageVersion.*,/"packageVersion": "${{ steps.version.outputs.version }}",/g' client-config/csharp-netcore.json | |
sed -i 's/"packageVersion.*,/"packageVersion": "${{ steps.version.outputs.version }}",/g' client-config/rust.json | |
sed -i 's/"npmVersion.*,/"npmVersion": "${{ steps.version.outputs.version }}",/g' client-config/ts-fetch.json | |
- run: chmod 777 ./gradlew | |
- name: Execute Gradle generateOpenApi | |
run: ./gradlew generateOpenApi | |
- name: Generate Clients | |
run: ./gradlew generateSwaggerCode | |
- name: upload openapi | |
uses: actions/upload-artifact@v4 | |
with: | |
name: openapi-${{ steps.version.outputs.version }} | |
path: ./build/docs/swagger.json | |
- name: upload cpp client | |
uses: actions/upload-artifact@v4 | |
with: | |
name: cpp-client | |
path: ./build/clients/cpp-client/* | |
- name: upload csharp client | |
uses: actions/upload-artifact@v4 | |
with: | |
name: csharp-client | |
path: ./build/clients/csharp-client/* | |
- name: upload rust client | |
uses: actions/upload-artifact@v4 | |
with: | |
name: rust-client | |
path: ./build/clients/rust-client/* | |
- name: upload ts client | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ts-client | |
path: ./build/clients/ts-fetch-client/* | |
- name: Checkout maa-copilot-client-ts | |
uses: actions/checkout@v4 | |
with: | |
repository: MaaAssistantArknights/maa-copilot-client-ts | |
path: maa-copilot-client-ts | |
token: ${{ secrets.TS_CLIENT_PAT }} | |
- name: Update maa-copilot-client-ts and push to remote | |
run: | | |
cp -rf build/clients/ts-fetch-client/* maa-copilot-client-ts/ | |
cd maa-copilot-client-ts | |
git diff --quiet && exit 0 | |
git config user.name "github-actions[bot]" | |
git config user.email "41898282+github-actions[bot]@users.noreply.github.com" | |
git add . | |
git commit -m "release: ${{ steps.version.outputs.version }}"\ | |
-m "Generated from https://github.com/MaaAssistantArknights/MaaBackendCenter/actions/runs/${{ github.run_id }}" | |
git tag ${{ steps.version.outputs.version }} | |
git push | |
git push --tags |