Skip to content

颤音相关文字提示 #51

颤音相关文字提示

颤音相关文字提示 #51

# Modified from https://github.com/actions/starter-workflows/blob/main/ci/dotnet-desktop.yml
name: Build artifacts
on:
push:
branches: [ "master" ]
tags:
- 'v*'
pull_request:
branches: [ "master" ]
jobs:
build-windows:
name: Build Windows version
strategy:
matrix:
runtime: [ "win-x64" ]
runs-on: windows-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Install .NET Core
uses: actions/setup-dotnet@v4
with:
dotnet-version: 8.0.x
- name: Build the application
run: dotnet publish --configuration Release -r ${{ matrix.runtime }}
- name: Set short SHA as package name
if: "!startsWith(github.event.ref, 'refs/tags/')"
run: echo "ARCHIVE_NAME=TuneLab-${{ matrix.runtime }}-$(git rev-parse --short HEAD)" >> $env:GITHUB_ENV
- name: Set tag version into env
if: startsWith(github.event.ref, 'refs/tags/')
run: echo "TAG_NAME=${env:GITHUB_REF_NAME}" >> $env:GITHUB_ENV
- name: Set tag version as package name
if: startsWith(github.event.ref, 'refs/tags/')
run: echo "ARCHIVE_NAME=TuneLab-${{ matrix.runtime }}-${env:TAG_NAME}" >> $env:GITHUB_ENV
- name: Move artifacts
shell: pwsh
run: Move-Item -Path TuneLab\bin\Release\net8.0\${{ matrix.runtime }}\publish -Destination workspace
- name: Pack artifacts
shell: pwsh
run: Compress-Archive -Path workspace\* -DestinationPath ${env:ARCHIVE_NAME}'.zip'
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: ${{ env.ARCHIVE_NAME }}
path: workspace
- name: Upload release artifacts
if: startsWith(github.event.ref, 'refs/tags/')
uses: actions/upload-artifact@v4
with:
name: ${{ env.ARCHIVE_NAME }}.zip
path: ${{ env.ARCHIVE_NAME }}.zip
retention-days: 1
build-macos:
name: Build macOS version
strategy:
matrix:
runtime: [ "osx-arm64" ]
runs-on: macos-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Install .NET Core
uses: actions/setup-dotnet@v4
with:
dotnet-version: 8.0.x
- name: Build the application
run: dotnet publish --configuration Release -r ${{ matrix.runtime }}
- name: Set short SHA as package name
if: "!startsWith(github.event.ref, 'refs/tags/')"
run: echo "ARCHIVE_NAME=TuneLab-${{ matrix.runtime }}-$(git rev-parse --short HEAD)" >> $GITHUB_ENV
- name: Set tag version into env
if: startsWith(github.event.ref, 'refs/tags/')
run: echo "TAG_NAME=$GITHUB_REF_NAME" >> $GITHUB_ENV
- name: Set tag version as package name
if: startsWith(github.event.ref, 'refs/tags/')
run: echo "ARCHIVE_NAME=TuneLab-${{ matrix.runtime }}-$TAG_NAME" >> $GITHUB_ENV
- name: Move artifacts
run: mv TuneLab/bin/Release/net8.0/${{ matrix.runtime }}/publish workspace
- name: Pack artifacts
run: |
cd workspace
tar -zcvf ../$ARCHIVE_NAME.tar.gz .
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: ${{ env.ARCHIVE_NAME }}.tar.gz
path: ${{ env.ARCHIVE_NAME }}.tar.gz
build-linux:
name: Build Linux version
strategy:
matrix:
runtime: [ "linux-x64" ]
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Install .NET Core
uses: actions/setup-dotnet@v4
with:
dotnet-version: 8.0.x
- name: Build the application
run: dotnet publish --configuration Release -r ${{ matrix.runtime }}
- name: Set short SHA as package name
if: "!startsWith(github.event.ref, 'refs/tags/')"
run: echo "ARCHIVE_NAME=TuneLab-${{ matrix.runtime }}-$(git rev-parse --short HEAD)" >> $GITHUB_ENV
- name: Set tag version into env
if: startsWith(github.event.ref, 'refs/tags/')
run: echo "TAG_NAME=$GITHUB_REF_NAME" >> $GITHUB_ENV
- name: Set tag version as package name
if: startsWith(github.event.ref, 'refs/tags/')
run: echo "ARCHIVE_NAME=TuneLab-${{ matrix.runtime }}-$TAG_NAME" >> $GITHUB_ENV
- name: Move artifacts
run: mv TuneLab/bin/Release/net8.0/${{ matrix.runtime }}/publish workspace
- name: Pack artifacts
run: |
cd workspace
tar -zcvf ../$ARCHIVE_NAME.tar.gz .
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: ${{ env.ARCHIVE_NAME }}.tar.gz
path: ${{ env.ARCHIVE_NAME }}.tar.gz
prepare-release:
name: Prepare release
if: startsWith(github.event.ref, 'refs/tags/')
needs:
- build-windows
- build-macos
- build-linux
runs-on: ubuntu-latest
steps:
- name: Download artifacts
uses: actions/download-artifact@v4
with:
merge-multiple: true
- name: Create release (draft)
uses: softprops/action-gh-release@v2
with:
name: TuneLab - ${{ github.ref_name }}
generate_release_notes: true
draft: true
files: |
TuneLab-*.zip
# TuneLab-*.tar.gz # 因为还没有解决跨平台的问题所以这个先注释掉,等跨平台完成了就可以去掉这个注释一并发布 linux 和 osx 的版本了