2025-02-13 13:18:51 +08:00

90 lines
2.6 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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: halo-theme-dream2.0-plus CI
on:
push:
paths: ["theme.yaml"]
workflow_dispatch:
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'
registry-url: https://registry.npmjs.org/
- name: Install dependencies
run: npm install
# 构建
- name: Build
run: npm run release --tag=${{ env.version }}
# 如果是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' }}
# 创建Release Asset
- name: Upload Release Asset
id: upload_asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./dist/halo-theme-dream2.0-plus.zip
asset_name: halo-theme-dream2.0-plus-V${{ env.version }}.zip
asset_content_type: application/zip
- name: npm ci
if: ${{ env.branch_type == 'master' }}
run: npm ci
- name: npm publish
if: ${{ env.branch_type == 'master' }}
run: npm publish --tag=latest
env:
NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}