1+ name : Trigger SDK Generation
2+ on :
3+ repository_dispatch :
4+ types : [publish_sdk]
5+ env :
6+ GENERATOR_VERISON : " 7.6.0"
7+ jobs :
8+ pull_request :
9+ runs-on : ubuntu-latest
10+ steps :
11+ - name : Checkout
12+ uses : actions/checkout@v4
13+
14+ - name : Get Latest Release
15+ id : latest-version
16+ uses :
pozetroninc/[email protected] 17+ with :
18+ owner : ${{ github.repository_owner }}
19+ repo : ${{ github.repository }}
20+ excludes : prerelease, draft
21+ token : ${{ secrets.GITHUB_TOKEN }}
22+
23+ - name : Determine Version
24+ id : version
25+ uses : actions/github-script@v7
26+ with :
27+ script : |
28+ const version = '${{ steps.latest-version.outputs.release }}';
29+ const parts = version.split('.');
30+ switch('${{ github.event.client_payload.labels }}') {
31+ case 'patch':
32+ parts[2] = parseInt(parts[2]) + 1;
33+ break;
34+ case 'minor':
35+ parts[1] = parseInt(parts[1]) + 1;
36+ break;
37+ case 'major':
38+ parts[0] = parseInt(parts[0]) + 1;
39+ break;
40+ default:
41+ parts[2] = parseInt(parts[2]) + 1;
42+ break;
43+ }
44+ const newVersion = parts.join('.');
45+ return newVersion;
46+
47+ - name : Download OpenAPI Generator
48+ run : |
49+ curl https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/${{ env.GENERATOR_VERISON }}/openapi-generator-cli-${{ env.GENERATOR_VERISON }}.jar -o ${{ runner.temp }}/openapi-generator-cli.jar
50+
51+ - name : Download OpenAPI Specification
52+ uses : actions/download-artifact@v4
53+ with :
54+ name : ${{ github.event.client_payload.openapi_spec }}
55+ path : ${{ runner.temp }}/openapi.yml
56+ repository : databox/data-link
57+ github-token : ${{ secrets.GITHUB_TOKEN }}
58+
59+ - name : Remove old SDK
60+ run : rm -rf src/*
61+
62+ - name : Set SDK version
63+ run : |
64+ cp ./.github/sdk-gen-config.yml ${{ runner.temp }}/sdk-gen-config.yml
65+ sed -i "s/{VERSION}/${{ steps.version.outputs.result }}/g" ${{ runner.temp }}/sdk-gen-config.yml
66+
67+ - name : Generate SDK
68+ run : |
69+ java -jar ${{ runner.temp }}/openapi-generator-cli.jar generate -i ${{ runner.temp }}/openapi.yml -g csharp -o ./src -c ${{ runner.temp }}/sdk-gen-config.yml
70+
71+ - name : Create Pull Request
72+ id : cpr
73+ uses : peter-evans/create-pull-request@v6
74+ with :
75+ token : ${{ secrets.GITHUB_TOKEN }}
76+ commit-message : ' chore: release data-link SDK'
77+ title : ' [SDK release] Generated SDK release'
78+ branch : ' release/${{ github.event.client_payload.version }}/${{ github.event.client_payload.timestamp }}'
79+ body : >
80+ This is a release of the SDK based on the API changes for `data-link` [${{ github.event.client_payload.version }}](${{ github.event.client_payload.release_url }}).
81+ labels : |
82+ automated
83+ ${{ github.event.client_payload.labels }}
0 commit comments