# This workflow will do a clean installation of node dependencies, cache/restore them, build the source code and run tests across different versions of node # For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-nodejs name: Gitea halo-theme-dream2.0-plus CI on: push: branches: [ "master", "dev" ] paths: ["theme.yaml"] jobs: build: runs-on: ubuntu-latest strategy: matrix: node-version: [20.x] # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ steps: # 迁出代码 - uses: actions/checkout@v4 # 确定构建分支类型 - name: Determine Branch Type id: determine_branch_type run: | branch_type=unknown if [[ $GITHUB_REF == refs/heads/master ]]; then branch_type=master elif [[ $GITHUB_REF == refs/heads/dev ]]; then branch_type=dev fi echo "branch_type=$branch_type" >> $GITHUB_ENV shell: bash # 确定构建版本 - name: version id: version run: | version=$(grep 'version:' theme.yaml | sed 's/.*:\s*//') echo "version=$version" >> $GITHUB_ENV - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} cache: 'npm' - name: Install dependencies run: npm install # Actions构建 - name: Build run: npm run actions --tag=${{ env.version }} # # 上传构建产物zip # - name: Upload artifacts # uses: actions/upload-artifact@v3 # with: # name: halo-theme-dream2.0-plus # path: dist-actions # 如果是master分支,创建latest的Release,否则创建 预览版 - name: Create Release id: create_release uses: actions/create-release@latest env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: tag_name: ${{ env.version }} release_name: ${{ env.version }} body: ${{ github.event.commits[0].message }} draft: false prerelease: ${{ env.branch_type != 'master' }}