| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- # 当分支 main 有 push 事件,并且此次 push 包含了 demo 目录下的文件时触发,使用 GitHub Actions 执行
- name: SYNC DEMO
- on:
- push:
- branches:
- - main
- paths:
- - 'demo/**'
- jobs:
- build-and-deploy:
- runs-on: ubuntu-latest
- steps:
- - name: Checkout
- uses: actions/checkout@v2
- # 1. clone 仓库 github.com/dufu1991/stdf
- - name: Clone stdf
- uses: actions/checkout@v3
- with:
- repository: dufu1991/stdf
- token: ${{ secrets.STDF_GITHUB_TOKEN }}
- path: stdf
- # 2. 读取 packages/stdf/package.json 中的 version 字段,作为 stdf 的最新版本
- - name: Get version
- id: version
- run: |
- echo version=$(cat packages/stdf/package.json | grep version | head -1 | awk -F: '{ print $2 }' | sed 's/[",]//g' | tr -d '[[:space:]]') >> $GITHUB_OUTPUT
- # 3. cd 到 stdf/demo 文件内,初始化本地仓库
- # 将 demo/src/App.svelte 文件内的 ../../packages/stdf 替换为 stdf
- # 将 demo/src/pages 目录下的所有子孙 .svelte 文件内的 ../../../../packages/stdf 替换为 stdf
- # 将 demo/package.json 内的第 10 行增加内容为 stdf,版本号为 ${{ steps.version.outputs.version }}
- # 将 demo 目录下的所有文件提交到本地仓库,提交信息为 Github Actions auto commit: update demo from stdf.
- - name: Init stdf demo
- run: |
- cd stdf/demo
- git init
- git config --global user.name 'GitHub Actions'
- git config --global user.email 'GitHub Actions'
- sed -i 's|../../packages/stdf|stdf|g' src/App.svelte
- sed -i 's|../../../../packages/stdf|stdf|g' src/pages/**/*.svelte
- sed -i '10a\ "stdf": "^${{ steps.version.outputs.version }}",' package.json
- git add .
- git commit -am "Github Actions auto commit: update demo from stdf."
- # 4. 将修改内容推送到 git@github.com:dufu1991/demo-stdf.git 的 main 分支
- - name: Push to demo-stdf
- uses: ad-m/github-push-action@master
- with:
- github_token: ${{ secrets.STDF_GITHUB_TOKEN }}
- branch: main
- force: true
- directory: stdf/demo
- repository: dufu1991/demo-stdf
|