Skip to content

refactor(project): 重构项目结构并优化样式 #45

refactor(project): 重构项目结构并优化样式

refactor(project): 重构项目结构并优化样式 #45

Workflow file for this run

name: 发布发行版
on:
workflow_dispatch:
push:
branches:
- main
permissions:
contents: write
id-token: write
packages: write
jobs:
release:
runs-on: ubuntu-latest
outputs:
releases_created: ${{ steps.release-please.outputs.releases_created }}
steps:
- name: 获取token
uses: actions/create-github-app-token@v2
id: app-token
with:
app-id: ${{ secrets.APP_ID }}
private-key: ${{ secrets.APP_PRIVATE_KEY }}
- name: 获取用户ID
id: get-user-id
run: echo "user-id=$(gh api "/users/${{ steps.app-token.outputs.app-slug }}[bot]" --jq .id)" >> "$GITHUB_OUTPUT"
env:
GH_TOKEN: ${{ steps.app-token.outputs.token }}
- name: 运行 release-please-action
id: release-please
uses: googleapis/release-please-action@v4
with:
token: ${{ steps.app-token.outputs.token }}
config-file: .release-please-config.json
manifest-file: .release-please-manifest.json
create-release:
needs: [release]
if: needs.release.outputs.releases_created == 'true'
runs-on: ubuntu-latest
outputs:
package_name: ${{ steps.get-package-name.outputs.name }}
package_short_name: ${{ steps.get-package-name.outputs.PACKAGE_SHORT_NAME }}
steps:
- name: 检出主分支代码
uses: actions/checkout@v4
with:
ref: main
fetch-tags: true
- name: 获取token
uses: actions/create-github-app-token@v2
id: app-token
with:
app-id: ${{ secrets.APP_ID }}
private-key: ${{ secrets.APP_PRIVATE_KEY }}
owner: ${{ github.repository_owner }}
- name: 获取用户ID
id: get-user-id
run: echo "user-id=$(gh api "/users/${{ steps.app-token.outputs.app-slug }}[bot]" --jq .id)" >> "$GITHUB_OUTPUT"
env:
GH_TOKEN: ${{ steps.app-token.outputs.token }}
- name: 设置 pnpm
uses: pnpm/action-setup@v4
with:
version: 9.13.2
run_install: |
- args: [--no-frozen-lockfile]
- name: 获取包名
id: get-package-name
run: |
PACKAGE_NAME=$(pnpm pkg get name | tr -d '"')
PACKAGE_SHORT_NAME=$(pnpm pkg get name | tr -d '"' | awk -F'/' '{print $2}')
echo "PACKAGE_SHORT_NAME=$PACKAGE_SHORT_NAME" >> $GITHUB_OUTPUT
echo "PACKAGE_NAME=$PACKAGE_NAME" >> $GITHUB_OUTPUT
- name: 构建
run: |
pnpm build
pnpm pkg delete devDependencies
mkdir -p ${{ runner.temp }}/temp/
cp -r package.json CHANGELOG.md README.md LICENSE resources config lib ${{ runner.temp }}/temp/
- name: 上传构建产物
uses: actions/upload-artifact@v4
with:
name: ${{ steps.get-package-name.outputs.PACKAGE_SHORT_NAME }}
path: ${{ runner.temp }}/temp/
publish-to-github:
runs-on: ubuntu-latest
needs: [release, create-release]
if: needs.release.outputs.releases_created == 'true'
steps:
- name: 导入构建产物
uses: actions/download-artifact@v4
with:
name: ${{ needs.create-release.outputs.package_short_name }}
path: ./
- name: 发布到 GitHub Packages
id: publish-to-github
uses: JS-DevTools/npm-publish@v3
with:
token: ${{ secrets.GITHUB_TOKEN }}
registry: https://npm.pkg.github.com
access: public
provenance: true
publish-to-npm:
runs-on: ubuntu-latest
needs: [release, create-release]
if: needs.release.outputs.releases_created == 'true'
steps:
- name: 导入构建产物
uses: actions/download-artifact@v4
with:
name: ${{ needs.create-release.outputs.package_short_name }}
path: ./
- name: 发布到 NPM
id: publish-to-npm
uses: JS-DevTools/npm-publish@v3
with:
token: ${{ secrets.NPM_TOKEN }}
registry: https://registry.npmjs.org/
access: public
provenance: true