Weekly Release Issue #10
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: Weekly Release Issue | |
| on: | |
| schedule: | |
| # Runs every Monday at 4:00 AM UTC (7:00 AM Moscow time, UTC+3) | |
| - cron: '0 4 * * 1' | |
| workflow_dispatch: # Allows manual triggering for testing | |
| permissions: | |
| issues: write | |
| contents: read | |
| jobs: | |
| create-release-issue: | |
| runs-on: ubuntu-latest | |
| if: github.repository == 'ydb-platform/ydb-embedded-ui' | |
| steps: | |
| - name: Create weekly release issue | |
| uses: actions/github-script@v7 | |
| with: | |
| github-token: ${{ secrets.GITHUB_TOKEN }} | |
| script: | | |
| const title = 'Release a new version of ydb-embedded-ui'; | |
| const body = `## Release Checklist | |
| - [ ] **Launch a new version release of ydb-embedded-ui on GitHub:** | |
| - The release is built by the ydb-platform-bot | |
| - Find its pull request | |
| - Review the release notes (make changes in the same branch if necessary) | |
| - Approve and merge the PR | |
| - After merging, the new library version will be automatically published to npm | |
| - [ ] **Update yandex ydb-embedded-ui** | |
| - [ ] **Update embedded UI in YDB** | |
| - Run [action](https://github.com/ydb-platform/ydb/actions/workflows/embedded_ui_refresh.yaml) to update embedded UI in YDB | |
| - Merge created PR | |
| `; | |
| // Check if an open issue with this title already exists | |
| const existingIssues = await github.rest.issues.listForRepo({ | |
| owner: context.repo.owner, | |
| repo: context.repo.repo, | |
| state: 'open', | |
| labels: 'area/duty', | |
| per_page: 100 | |
| }); | |
| const duplicateIssue = existingIssues.data.find(issue => issue.title === title); | |
| if (duplicateIssue) { | |
| console.log(`Issue already exists: #${duplicateIssue.number}`); | |
| console.log(`Skipping creation to avoid duplicates`); | |
| return; | |
| } | |
| // Create the issue | |
| const issue = await github.rest.issues.create({ | |
| owner: context.repo.owner, | |
| repo: context.repo.repo, | |
| title: title, | |
| body: body, | |
| labels: ['area/duty', 'size/m'] | |
| }); | |
| console.log(`Created issue #${issue.data.number}`); | |
| console.log(`Issue URL: ${issue.data.html_url}`); | |
| console.log(`Please manually add the issue to project #24 if needed`); |