Convert update-supported-enterprise-server-versions script to TypeScript
#2048
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: Update Supported Enterprise Server Versions | |
| on: | |
| schedule: | |
| - cron: "0 0 * * *" | |
| workflow_dispatch: | |
| pull_request: | |
| branches: | |
| - main | |
| paths: | |
| - .github/workflows/update-supported-enterprise-server-versions.yml | |
| - pr-checks/update-ghes-versions.ts | |
| jobs: | |
| update-supported-enterprise-server-versions: | |
| name: Update Supported Enterprise Server Versions | |
| timeout-minutes: 45 | |
| runs-on: ubuntu-slim | |
| if: github.repository == 'github/codeql-action' | |
| permissions: | |
| contents: write # needed to push commits | |
| pull-requests: write # needed to create pull request | |
| steps: | |
| - name: Checkout CodeQL Action | |
| uses: actions/checkout@v6 | |
| - name: Set up Node.js | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version: 24 | |
| cache: 'npm' | |
| - name: Install dependencies | |
| run: npm ci | |
| - name: Checkout Enterprise Releases | |
| uses: actions/checkout@v6 | |
| with: | |
| repository: github/enterprise-releases | |
| token: ${{ secrets.ENTERPRISE_RELEASE_TOKEN }} | |
| path: ${{ github.workspace }}/enterprise-releases/ | |
| sparse-checkout: releases.json | |
| - name: Update Supported Enterprise Server Versions | |
| working-directory: pr-checks | |
| run: | | |
| npx tsx update-ghes-versions.ts | |
| rm --recursive "$ENTERPRISE_RELEASES_PATH" | |
| env: | |
| ENTERPRISE_RELEASES_PATH: ${{ github.workspace }}/enterprise-releases/ | |
| - name: Rebuild | |
| run: npm run build | |
| - name: Update git config | |
| run: | | |
| git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com" | |
| git config --global user.name "github-actions[bot]" | |
| - name: Commit changes | |
| id: prepare-commit | |
| run: | | |
| if [[ -z $(git status --porcelain) ]]; then | |
| echo "No changes to commit" | |
| echo "committed=false" >> $GITHUB_OUTPUT | |
| else | |
| git checkout -b update-supported-enterprise-server-versions | |
| git add . | |
| git commit --message "Update supported GitHub Enterprise Server versions" | |
| echo "committed=true" >> $GITHUB_OUTPUT | |
| fi | |
| - name: Open PR | |
| if: github.event_name != 'pull_request' && steps.prepare-commit.outputs.committed == 'true' | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| run: | | |
| git push origin update-supported-enterprise-server-versions | |
| body="This PR updates the list of supported GitHub Enterprise Server versions, either because a new " | |
| body+="version is about to be feature frozen, or because an old release has been deprecated." | |
| body+=$'\n\n' | |
| body+="If an old release has been deprecated, please follow the instructions in CONTRIBUTING.md to " | |
| body+="deprecate the corresponding version of CodeQL." | |
| gh pr create --draft \ | |
| --title "Update supported GitHub Enterprise Server versions" \ | |
| --body "$body" |