From 63671a96a96d7e1e4339d14aeeca8f74fa1e3cf3 Mon Sep 17 00:00:00 2001 From: mirtlecn Date: Tue, 20 Aug 2024 13:04:34 +0800 Subject: [PATCH] ci: merge ci workflows --- .github/workflows/build.yaml | 48 --------------------------------- .github/workflows/release.yml | 50 +++++++++++++++++++++++++++-------- 2 files changed, 39 insertions(+), 59 deletions(-) delete mode 100644 .github/workflows/build.yaml diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml deleted file mode 100644 index 6a1fa82..0000000 --- a/.github/workflows/build.yaml +++ /dev/null @@ -1,48 +0,0 @@ -name: Check and Build - -on: - push: - branches: - - main - workflow_dispatch: - -jobs: - build: - runs-on: ubuntu-latest - if: ${{ github.event_name == 'workflow_dispatch' || contains(github.event.head_commit.message, ' [build]') }} - - steps: - - name: Set up git - run: | - git config --global user.name "github-actions[bot]" - git config --global user.email "github-actions[bot]@users.noreply.github.com" - - - name: Set up Go - uses: actions/setup-go@v5 - with: - go-version: "1.22" - # cache: false # set to be true by default. Disable cache when debugging - - - name: Checkout - uses: actions/checkout@v4 - - - name: Install dependencies - run: | - cd others/script - go mod tidy - - - name: Check and build - run: | - cd others/script - go run main.go --rime_path "${{ github.workspace }}" --auto_confirm - - - name: Commit and push - run: | - git add --all - if ! git diff --cached --quiet; then - COMMIT_MSG=$(git log -1 --pretty=%B | sed -e 's/\s\[build\]$//' -e 's/^[a-zA-Z()]*:\s*//') - git commit -m "build(ci): auto build for -> ${COMMIT_MSG} <-" - git push - else - echo "No changes to commit." - fi diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 1c9dc55..46ee086 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,27 +1,41 @@ -name: Pack and Release +name: Build and Release on: push: branches: - main tags: - - '[0-9]+.*' + - "[0-9]+.*" paths: - - '**/**' - - '!**.md' - - '!**.gitignore' - - '!others/**' - - '!.github/**' + - "**/**" + - "!**.md" + - "!**.gitignore" + - "!.github/**" workflow_dispatch: jobs: Release: runs-on: ubuntu-latest + if: github.repository == 'iDvel/rime-ice' steps: - name: Checkout uses: actions/checkout@v4 + - name: Setup Go + if: ${{ contains(github.event.head_commit.message, ' [build]') || github.event_name == 'workflow_dispatch' }} + uses: actions/setup-go@v5 + with: + go-version: 1.22 + + - name: Check and build + id: check_and_build + if: ${{ contains(github.event.head_commit.message, ' [build]') || github.event_name == 'workflow_dispatch' }} + run: | + cd others/script + go mod tidy + go run main.go --rime_path "${{ github.workspace }}" --auto_confirm + - name: Pack dicts run: | mkdir dist @@ -42,11 +56,11 @@ jobs: - name: Create nightly release if: ${{ github.ref == 'refs/heads/main' }} - uses: 'softprops/action-gh-release@v2' + uses: "softprops/action-gh-release@v2" with: body: | ## 说明 - + 这里是每次提交后自动打包的版本,包含最新的功能和词库 - `README.md`:简易的使用说明 @@ -65,10 +79,24 @@ jobs: - name: Create stable release if: startsWith(github.ref, 'refs/tags/') - uses: 'softprops/action-gh-release@v2' + uses: "softprops/action-gh-release@v2" with: body_path: ${{ github.workspace }}/others/CHANGELOG.md draft: true make_latest: true files: | - dist/* \ No newline at end of file + dist/* + + - name: Push and commit + if: ${{ steps.check_and_build.outcome == 'success' }} + run: | + git config --global user.name "github-actions[bot]" + git config --global user.email "github-actions[bot]@users.noreply.github.com" + git add --all + if ! git diff --cached --quiet; then + COMMIT_MSG=$(git log -1 --pretty=%B | sed -e 's/\s\[build\]$//' -e 's/^[a-zA-Z()]*:\s*//') + git commit -m "build(ci): auto build for -> ${COMMIT_MSG} <-" + git push + else + echo "No changes to commit." + fi \ No newline at end of file