chore(ci): update actions/checkout to v6.0.2 (#473) #1535
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 SDK | |
| on: | |
| push: | |
| branches: | |
| - main | |
| paths: | |
| - '.github/workflows/generate.yml' | |
| - 'scripts/generate-sdk.mjs' | |
| - 'scripts/generate-types.mjs' | |
| - 'scripts/generate-strict-types.mjs' | |
| schedule: | |
| # At 07:23 on every day-of-week from Monday through Friday. | |
| - cron: '23 7 * * 1-5' | |
| workflow_dispatch: | |
| inputs: | |
| force: | |
| description: 'Force regeneration even if no changes detected' | |
| required: false | |
| default: false | |
| type: boolean | |
| jobs: | |
| fetch_and_update: | |
| name: Sync OpenAPI definition | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: write | |
| pull-requests: write | |
| outputs: | |
| has_changes: ${{ steps.check.outputs.has_changes }} | |
| steps: | |
| - name: Random delay | |
| if: github.event_name == 'schedule' | |
| run: | | |
| # Add random delay between 0-10 minutes for scheduled runs | |
| delay=$((RANDOM % 600)) | |
| echo "Sleeping for $delay seconds..." | |
| sleep $delay | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| with: | |
| autocrlf: false | |
| persist-credentials: false | |
| token: ${{ secrets.GITHUB_TOKEN }} | |
| - uses: SocketDev/socket-registry/.github/actions/setup-and-install@4709a2443e5a036bb0cd94e5d1559f138f05994c # main | |
| - name: Generate SDK | |
| run: pnpm run generate-sdk | |
| - name: Check for changes | |
| id: check | |
| run: | | |
| if [ -n "$(git status --porcelain)" ]; then | |
| echo "has_changes=true" >> $GITHUB_OUTPUT | |
| else | |
| echo "has_changes=false" >> $GITHUB_OUTPUT | |
| fi | |
| - name: Configure git | |
| if: steps.check.outputs.has_changes == 'true' | |
| env: | |
| GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| run: | | |
| git config --global user.name "github-actions[bot]" | |
| git config --global user.email "github-actions[bot]@users.noreply.github.com" | |
| # Configure git to use the GitHub token for authentication | |
| git config --global url."https://x-access-token:${GH_TOKEN}@github.com/".insteadOf "https://github.com/" | |
| - name: Commit and push changes | |
| if: steps.check.outputs.has_changes == 'true' | |
| run: | | |
| git checkout -b automated/open-api | |
| git add . | |
| git commit -m "fix(openapi): sync with openapi definition" | |
| git push origin automated/open-api -fu --no-verify | |
| - name: Create Pull Request | |
| if: steps.check.outputs.has_changes == 'true' | |
| env: | |
| GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| run: | | |
| # Check if PR already exists | |
| existing_pr=$(gh pr list --head automated/open-api --json number --jq '.[0].number' || echo "") | |
| if [ -z "$existing_pr" ]; then | |
| gh pr create \ | |
| --head automated/open-api \ | |
| --base main \ | |
| --title "Sync with OpenAPI definition" \ | |
| --body "## 🔄 OpenAPI Sync | |
| The OpenAPI definition in the API has been updated. This PR automatically: | |
| - Downloads the latest OpenAPI specification | |
| - Regenerates TypeScript types | |
| - Updates SDK method signatures if needed | |
| ### What's Changed | |
| See the file changes below for specific updates to the API types and methods. | |
| ⚠️ **Please review carefully for any breaking changes in the API.**" \ | |
| --label "dependencies" \ | |
| --label "automated" | |
| else | |
| echo "PR #$existing_pr already exists, skipping creation" | |
| fi | |
| validate: | |
| name: Validate generated SDK | |
| needs: fetch_and_update | |
| if: needs.fetch_and_update.outputs.has_changes == 'true' | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: read | |
| outputs: | |
| has_changes: ${{ steps.check.outputs.has_changes }} | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| with: | |
| autocrlf: false | |
| persist-credentials: false | |
| ref: automated/open-api | |
| - uses: SocketDev/socket-registry/.github/actions/setup-and-install@4709a2443e5a036bb0cd94e5d1559f138f05994c # main | |
| - name: Build SDK | |
| run: pnpm run build | |
| - name: Type check | |
| run: pnpm run check | |
| - name: Lint | |
| run: pnpm run lint --all | |
| - name: Test | |
| run: pnpm run test --all | |
| - name: Check for API breaking changes | |
| run: | | |
| if git diff origin/main...HEAD --name-only | grep -q 'types/api.d.ts'; then | |
| echo "⚠️ API types have changed. Please review for breaking changes." | |
| git diff origin/main...HEAD types/api.d.ts | head -100 | |
| fi |