generate api pages #175
Workflow file for this run
This file contains hidden or 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 api pages | |
| on: | |
| workflow_dispatch: | |
| inputs: | |
| tag: | |
| description: 'Netbird release tag version' | |
| required: true | |
| default: "refs/tags/vX.Y.Z" | |
| type: string | |
| jobs: | |
| generate_api_pages: | |
| runs-on: macos-latest | |
| steps: | |
| - name: Parse tag input | |
| id: semver_parser | |
| uses: booxmedialtd/ws-action-parse-semver@v1 | |
| with: | |
| input_string: ${{ github.event.inputs.tag }} | |
| version_extractor_regex: '\/v(.*)$' | |
| - uses: actions/checkout@v2 | |
| with: | |
| token: ${{ secrets.DEV_GITHUB_TOKEN }} | |
| - name: Create directory | |
| run: mkdir -p generator/openapi | |
| - name: Download openapi.yml | |
| run: curl -L -o generator/openapi/openapi.yml "https://raw.githubusercontent.com/netbirdio/netbird/v${{ steps.semver_parser.outputs.fullversion }}/shared/management/http/api/openapi.yml" | |
| - name: Install Go | |
| uses: actions/setup-go@v3 | |
| with: | |
| go-version: '1.21.1' | |
| - name: Build Go project | |
| run: (cd ./generator && go build -o expandOpenAPIRef) | |
| - name: Expand openapi.yml | |
| run: (cd ./generator && ./expandOpenAPIRef) | |
| - name: Remove old generated files | |
| run: rm -rf src/pages/ipa/resources/* | |
| - name: Npm install | |
| run: npm install | |
| - name: Display expanded OpenAPI YAML | |
| run: | | |
| echo "Expanded OpenAPI YAML:" | |
| cat generator/openapi/expanded.yml | |
| - name: Run OpenAPI generator and capture output | |
| run: | | |
| set -x | |
| export TS_NODE_TRANSPILE_ONLY=true | |
| export NODE_OPTIONS="--trace-warnings" | |
| echo "--- Running generator script ---" | |
| npx --yes ts-node generator/index.ts gen \ | |
| --input generator/openapi/expanded.yml \ | |
| --output src/pages/ipa/resources \ | |
| > generator.log 2>&1 || true | |
| echo "--- Script Output ---" | |
| cat generator.log | |
| - name: Show generated files and their contents | |
| run: | | |
| echo "--- Listing generated files ---" | |
| find src/pages/ipa/resources -type f | |
| echo "--- Showing contents of generated files ---" | |
| for file in src/pages/ipa/resources/*; do | |
| echo "===== $file =====" | |
| cat "$file" | |
| echo "" | |
| done | |
| - name: Check git diff and send to output | |
| id: git_diff | |
| run: | | |
| if git --no-pager diff --exit-code; then | |
| echo "changed=false" >> "$GITHUB_OUTPUT" | |
| else | |
| echo "changed=true" >> "$GITHUB_OUTPUT" | |
| fi | |
| - name: Commit and push changes | |
| if: steps.git_diff.outputs.changed == 'true' | |
| run: | | |
| git config --global user.email "[email protected]" | |
| git config --global user.name "netbirddev" | |
| git add -A | |
| git commit -m "Update API pages with v${{ steps.semver_parser.outputs.fullversion }}" | |
| git push |