Merge pull request #580 from uozi-tech/changeset-release/main #315
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 Template Dependencies | |
| on: | |
| push: | |
| paths: | |
| - packages/curd/package.json | |
| - packages/layout-antdv/package.json | |
| - packages/request/package.json | |
| - packages/shared-config/package.json | |
| - .github/workflows/update-template-deps.yml | |
| branches: | |
| - main | |
| jobs: | |
| update-dependencies: | |
| name: Update Dependencies | |
| runs-on: ubuntu-latest | |
| if: github.repository == 'uozi-tech/admin-kit' | |
| permissions: | |
| contents: write | |
| pull-requests: write | |
| steps: | |
| - uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 0 | |
| - name: Update Template Dependencies | |
| id: update-deps | |
| run: | | |
| # 获取各个包的最新版本 | |
| CURD_VERSION=$(node -p "require('./packages/curd/package.json').version") | |
| LAYOUT_VERSION=$(node -p "require('./packages/layout-antdv/package.json').version") | |
| REQUEST_VERSION=$(node -p "require('./packages/request/package.json').version") | |
| SHARED_CONFIG_VERSION=$(node -p "require('./packages/shared-config/package.json').version") | |
| # 获取模板中的当前版本 | |
| cd packages/create-uozi-admin/template | |
| CURRENT_CURD_VERSION=$(node -p "require('./package.json').dependencies['@uozi-admin/curd'].replace('^', '')") | |
| CURRENT_LAYOUT_VERSION=$(node -p "require('./package.json').dependencies['@uozi-admin/layout-antdv'].replace('^', '')") | |
| CURRENT_REQUEST_VERSION=$(node -p "require('./package.json').dependencies['@uozi-admin/request'].replace('^', '')") | |
| CURRENT_SHARED_CONFIG_VERSION=$(node -p "require('./package.json').devDependencies['@uozi-admin/shared-config'].replace('^', '')") | |
| cd ../../.. | |
| # 检查是否有版本更新 | |
| if [ "$CURD_VERSION" = "$CURRENT_CURD_VERSION" ] && \ | |
| [ "$LAYOUT_VERSION" = "$CURRENT_LAYOUT_VERSION" ] && \ | |
| [ "$REQUEST_VERSION" = "$CURRENT_REQUEST_VERSION" ] && \ | |
| [ "$SHARED_CONFIG_VERSION" = "$CURRENT_SHARED_CONFIG_VERSION" ]; then | |
| echo "No version changes detected, skipping update" | |
| echo "needs_update=false" >> $GITHUB_OUTPUT | |
| exit 0 | |
| fi | |
| # 导出版本变量供后续步骤使用 | |
| echo "CURD_VERSION=$CURD_VERSION" >> $GITHUB_ENV | |
| echo "LAYOUT_VERSION=$LAYOUT_VERSION" >> $GITHUB_ENV | |
| echo "REQUEST_VERSION=$REQUEST_VERSION" >> $GITHUB_ENV | |
| echo "SHARED_CONFIG_VERSION=$SHARED_CONFIG_VERSION" >> $GITHUB_ENV | |
| # 导出当前版本变量 | |
| echo "CURRENT_CURD_VERSION=$CURRENT_CURD_VERSION" >> $GITHUB_ENV | |
| echo "CURRENT_LAYOUT_VERSION=$CURRENT_LAYOUT_VERSION" >> $GITHUB_ENV | |
| echo "CURRENT_REQUEST_VERSION=$CURRENT_REQUEST_VERSION" >> $GITHUB_ENV | |
| echo "CURRENT_SHARED_CONFIG_VERSION=$CURRENT_SHARED_CONFIG_VERSION" >> $GITHUB_ENV | |
| # 更新模板的 package.json | |
| cd packages/create-uozi-admin/template | |
| # 使用 jq 更新依赖版本 | |
| jq --arg cv "$CURD_VERSION" \ | |
| --arg lv "$LAYOUT_VERSION" \ | |
| --arg rv "$REQUEST_VERSION" \ | |
| --arg sv "$SHARED_CONFIG_VERSION" \ | |
| '.dependencies["@uozi-admin/curd"] = "^" + $cv | | |
| .dependencies["@uozi-admin/layout-antdv"] = "^" + $lv | | |
| .dependencies["@uozi-admin/request"] = "^" + $rv | | |
| .devDependencies["@uozi-admin/shared-config"] = "^" + $sv' \ | |
| package.json > package.json.tmp | |
| mv package.json.tmp package.json | |
| echo "needs_update=true" >> $GITHUB_OUTPUT | |
| - name: Create Changeset | |
| if: steps.update-deps.outputs.needs_update == 'true' | |
| run: | | |
| # 创建.changeset目录 | |
| mkdir -p .changeset | |
| # 生成随机ID | |
| CHANGE_ID=$(date +%s%N | md5sum | head -c 8) | |
| # 准备更新信息 | |
| UPDATES="" | |
| if [ "$CURD_VERSION" != "$CURRENT_CURD_VERSION" ]; then | |
| UPDATES+="- @uozi-admin/curd@^${CURD_VERSION}"$'\n' | |
| echo "UPDATED_CURD_VERSION=^${CURD_VERSION}" >> $GITHUB_ENV | |
| else | |
| echo "UPDATED_CURD_VERSION=already at latest" >> $GITHUB_ENV | |
| fi | |
| if [ "$LAYOUT_VERSION" != "$CURRENT_LAYOUT_VERSION" ]; then | |
| UPDATES+="- @uozi-admin/layout-antdv@^${LAYOUT_VERSION}"$'\n' | |
| echo "UPDATED_LAYOUT_VERSION=^${LAYOUT_VERSION}" >> $GITHUB_ENV | |
| else | |
| echo "UPDATED_LAYOUT_VERSION=already at latest" >> $GITHUB_ENV | |
| fi | |
| if [ "$REQUEST_VERSION" != "$CURRENT_REQUEST_VERSION" ]; then | |
| UPDATES+="- @uozi-admin/request@^${REQUEST_VERSION}"$'\n' | |
| echo "UPDATED_REQUEST_VERSION=^${REQUEST_VERSION}" >> $GITHUB_ENV | |
| else | |
| echo "UPDATED_REQUEST_VERSION=already at latest" >> $GITHUB_ENV | |
| fi | |
| if [ "$SHARED_CONFIG_VERSION" != "$CURRENT_SHARED_CONFIG_VERSION" ]; then | |
| UPDATES+="- @uozi-admin/shared-config@^${SHARED_CONFIG_VERSION}"$'\n' | |
| echo "UPDATED_SHARED_CONFIG_VERSION=^${SHARED_CONFIG_VERSION}" >> $GITHUB_ENV | |
| else | |
| echo "UPDATED_SHARED_CONFIG_VERSION=already at latest" >> $GITHUB_ENV | |
| fi | |
| # 创建changeset文件 | |
| cat <<EOF > .changeset/$CHANGE_ID.md | |
| --- | |
| "create-uozi-admin": patch | |
| --- | |
| Update template dependencies: | |
| ${UPDATES} | |
| EOF | |
| - name: Create Pull Request | |
| if: steps.update-deps.outputs.needs_update == 'true' | |
| uses: peter-evans/create-pull-request@v8 | |
| with: | |
| commit-message: 'chore(create-uozi-admin): update template dependencies' | |
| title: 'chore(create-uozi-admin): update template dependencies' | |
| body: | | |
| Auto update template project dependencies version: | |
| - **@uozi-admin/curd**: ${{ env.UPDATED_CURD_VERSION }} | |
| - **@uozi-admin/layout-antdv**: ${{ env.UPDATED_LAYOUT_VERSION }} | |
| - **@uozi-admin/request**: ${{ env.UPDATED_REQUEST_VERSION }} | |
| - **@uozi-admin/shared-config**: ${{ env.UPDATED_SHARED_CONFIG_VERSION }} | |
| branch: update-template-deps | |
| base: main | |
| labels: | | |
| automated pr | |
| delete-branch: true |