diff --git a/.github/release-config.yml b/.github/release-config.yml new file mode 100644 index 000000000..2f024ea0c --- /dev/null +++ b/.github/release-config.yml @@ -0,0 +1,45 @@ +name-template: 'Release v$RESOLVED_VERSION' +tag-template: 'v$RESOLVED_VERSION' +categories: + - title: '🌱 新功能 Features' + labels: + - 'feature' + - 'enhancement' + - 'feat' + - '新功能' + - title: '🚀 性能优化 Optimization' + labels: + - 'perf' + - 'opt' + - 'refactor' + - 'Optimization' + - '优化' + - title: '🐛 Bug修复 Bug Fixes' + labels: + - 'fix' + - 'bugfix' + - 'bug' + - title: '🧰 其它 Maintenance' + labels: + - 'chore' + - 'docs' +exclude-labels: + - 'no' + - '无需处理' + - 'wontfix' +change-template: '- $TITLE @$AUTHOR (#$NUMBER)' +version-resolver: + major: + labels: + - 'major' + minor: + labels: + - 'minor' + patch: + labels: + - 'patch' + default: patch +template: | + ## 版本变化 What’s Changed + + $CHANGES diff --git a/.github/workflows/release-drafter.yml b/.github/workflows/release-drafter.yml new file mode 100644 index 000000000..954ceb4c6 --- /dev/null +++ b/.github/workflows/release-drafter.yml @@ -0,0 +1,46 @@ +on: + push: + # Sequence of patterns matched against refs/tags + tags: + - 'v*' # Push events to matching v*, i.e. v1.0, v20.15.10 + +name: Create Release And Upload assets + +jobs: + create-realese: + name: Create Release + runs-on: ubuntu-latest + outputs: + upload_url: ${{ steps.create_release.outputs.upload_url }} + steps: + - name: Checkout code + uses: actions/checkout@v2 + - name: Get version + id: get_version + run: | + TAG=$(basename ${GITHUB_REF}) + VERSION=${TAG/v/} + echo "::set-output name=TAG::$TAG" + echo "::set-output name=VERSION::$VERSION" + - name: Create Release + id: create_release + uses: release-drafter/release-drafter@v5 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + config-name: release-config.yml + version: ${{ steps.get_version.outputs.TAG }} + tag: ${{ steps.get_version.outputs.TAG }} + + build-and-release: + needs: create-realese + name: Build and Release Matrix + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Build it and upload + uses: jumpserver/action-build-upload-assets@master + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ needs.create-realese.outputs.upload_url }} diff --git a/utils/build.sh b/utils/build.sh new file mode 100644 index 000000000..15ecdef66 --- /dev/null +++ b/utils/build.sh @@ -0,0 +1,37 @@ +#!/bin/bash +# +# 该build基于 node:10 +utils_dir=$(pwd) +project_dir=$(dirname "$utils_dir") +release_dir=${project_dir}/release + +if [[ $(uname) == 'Darwin' ]];then + alias sedi="sed -i ''" +else + alias sedi='sed -i' +fi + +function change_version() { + sedi "s@Version .*@Version ${VERSION}@g" "${project_dir}/src/layout/components/Footer/index.vue" || return 2 +} + +# 修改版本号文件 +if [[ -n ${VERSION} ]]; then + change_version || exit 2 +fi + +# 下载依赖模块并构建 +cd "${project_dir}" && yarn || exit 3 +rm -rf lina dist +yarn build:prod || exit 4 + +# 打包 +rm -rf "${release_dir:?}"/* +mkdir -p "${release_dir}" +to_dir="${release_dir}/lina" + +if [[ -d "dist" ]];then + mv dist "${to_dir}" +elif [[ -d "lina" ]]; then + mv lina "${to_dir}" +fi