This repository was archived by the owner on Feb 13, 2026. It is now read-only.
build_release #535
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: build_release | |
| on: | |
| schedule: | |
| - cron: '0 19 * * *' | |
| workflow_dispatch: | |
| jobs: | |
| check_changes: | |
| runs-on: ubuntu-latest | |
| outputs: | |
| changed: ${{ steps.changes.outputs.changed }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - id: changes | |
| run: | | |
| if [ "${{ github.event_name }}" == "workflow_dispatch" ]; then | |
| echo "changed=true" >> $GITHUB_OUTPUT | |
| else | |
| prev_tag=$(git describe --tags --abbrev=0 2>/dev/null || echo "none") | |
| if [ "$prev_tag" == "none" ]; then | |
| echo "changed=true" >> $GITHUB_OUTPUT | |
| else | |
| if git diff --exit-code $prev_tag HEAD -- src; then | |
| echo "No changes detected in 'src' directory between $prev_tag and the latest commit." | |
| echo "changed=false" >> $GITHUB_OUTPUT | |
| else | |
| echo "changed=true" >> $GITHUB_OUTPUT | |
| fi | |
| fi | |
| fi | |
| build_release: | |
| needs: check_changes | |
| if: ${{ needs.check_changes.outputs.changed == 'true' }} | |
| runs-on: ubuntu-latest | |
| outputs: | |
| version: ${{ steps.version.outputs.version }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: 25 | |
| - uses: pnpm/action-setup@v4 | |
| - run: pnpm install | |
| - run: pnpm run build | |
| - id: version | |
| run: | | |
| version=$(node -e "import('@gkd-kit/tools').then((m) => m.stdoutGkdVersion());") | |
| echo "version=${version}" >> "$GITHUB_OUTPUT" | |
| - name: Git commit | |
| id: commit | |
| run: | | |
| git config --local user.email github-actions[bot]@users.noreply.github.com | |
| git config --local user.name github-actions[bot] | |
| git status | |
| git add . | |
| git commit -a -m "chore: v${{steps.version.outputs.version}}" | |
| continue-on-error: true | |
| - name: Git push | |
| if: ${{ steps.commit.outcome == 'success' }} | |
| uses: ad-m/github-push-action@master | |
| with: | |
| github_token: ${{ secrets.GITHUB_TOKEN }} | |
| branch: ${{ github.ref }} | |
| tags: true | |
| - name: Create Release | |
| id: create_release | |
| if: ${{ steps.commit.outcome == 'success' }} | |
| uses: softprops/action-gh-release@v2 | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| with: | |
| tag_name: v${{ steps.version.outputs.version }} | |
| release_name: Release ${{ steps.version.outputs.version }} | |
| body_path: ./dist/CHANGELOG.md | |
| - name: Publish package | |
| env: | |
| NPM_TOKEN: ${{ secrets.NPM_TOKEN }} | |
| if: ${{ steps.commit.outcome == 'success' && env.NPM_TOKEN != '' }} | |
| run: | | |
| pnpm config set //registry.npmjs.org/:_authToken ${{ secrets.NPM_TOKEN }} | |
| node -e "import('@gkd-kit/tools').then((m) => m.updatePkgVersion());" | |
| pnpm publish --no-git-checks | |
| node -e "import('@gkd-kit/tools').then((m) => m.syncNpmmirror());" |