publish #115
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: publish | |
on: | |
push: | |
tags: | |
- "*" | |
env: | |
PROJECT_NAME: "XinjingdailyBot.WebAPI" | |
CONFIGURATION: Release | |
DOTNET_SDK_VERSION: 7.0.x | |
jobs: | |
build: | |
strategy: | |
fail-fast: false | |
matrix: | |
arch: | |
[ | |
win-x64, | |
win-arm64, | |
osx-x64, | |
osx-arm64, | |
linux-x64, | |
linux-arm, | |
linux-arm64, | |
] | |
runs-on: windows-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3.0.2 | |
with: | |
submodules: recursive | |
- name: Setup .NET Core | |
uses: actions/setup-dotnet@v2.1.0 | |
with: | |
dotnet-version: ${{ env.DOTNET_SDK_VERSION }} | |
- name: Verify .NET Core | |
run: dotnet --info | |
- name: Prepare for publishing ${{ env.PROJECT_NAME }} | |
shell: pwsh | |
run: | | |
dotnet restore | |
dotnet build ${{ env.PROJECT_NAME }} -c "$env:CONFIGURATION" -p:ContinuousIntegrationBuild=true -p:TargetLatestRuntimePatch=false -p:UseAppHost=false --no-restore --nologo | |
- name: Publish ${{ env.PROJECT_NAME }} ${{ matrix.arch }} | |
shell: pwsh | |
run: | | |
$variant = '${{ matrix.arch }}' | |
$commonArgs = '-p:PublishTrimmed=false' | |
$buildArgs = '-r', "$variant", '-p:PublishSingleFile=true', '-p:IncludeNativeLibrariesForSelfExtract=true' | |
dotnet publish ${{ env.PROJECT_NAME }} -c "$env:CONFIGURATION" -o "./tmp/${{ env.PROJECT_NAME }}-fde" --self-contained=true -p:XJBVariant="$variant" -p:ContinuousIntegrationBuild=true --no-restore --nologo $commonArgs $buildArgs | |
dotnet publish ${{ env.PROJECT_NAME }} -c "$env:CONFIGURATION" -o "./tmp/${{ env.PROJECT_NAME }}" --self-contained=false -p:XJBVariant="$variant" -p:ContinuousIntegrationBuild=true --no-restore --nologo $commonArgs $buildArgs | |
- name: Clean Xmls | |
shell: pwsh | |
run: | | |
Remove-Item './tmp/${{ env.PROJECT_NAME }}-fde/*.xml' | |
Remove-Item './tmp/${{ env.PROJECT_NAME }}/*.xml' | |
- name: Zip files | |
run: | | |
7z a -bd -slp -tzip -mm=Deflate -mx=5 -mfb=150 -mpass=10 "./dist/${{ matrix.arch }}-fde.zip" "./tmp/${{ env.PROJECT_NAME }}-fde/*" | |
7z a -bd -slp -tzip -mm=Deflate -mx=5 -mfb=150 -mpass=10 "./dist/${{ matrix.arch }}.zip" "./tmp/${{ env.PROJECT_NAME }}/*" | |
- name: Upload ${{ env.PROJECT_NAME }}-fde ${{ matrix.arch }} | |
continue-on-error: true | |
uses: actions/upload-artifact@v3.0.0 | |
with: | |
name: ${{ matrix.arch }}-fde | |
path: ./dist/${{ matrix.arch }}-fde.zip | |
- name: Upload ${{ env.PROJECT_NAME }} ${{ matrix.arch }} | |
continue-on-error: true | |
uses: actions/upload-artifact@v3.0.0 | |
with: | |
name: ${{ matrix.arch }} | |
path: ./dist/${{ matrix.arch }}.zip | |
release: | |
needs: build | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3.0.2 | |
- name: Download win-x64-fde artifact | |
continue-on-error: true | |
uses: actions/download-artifact@v3.0.0 | |
with: | |
name: win-x64-fde | |
path: out | |
- name: Download win-x64 artifact | |
continue-on-error: true | |
uses: actions/download-artifact@v3.0.0 | |
with: | |
name: win-x64 | |
path: out | |
- name: Download win-arm64-fde artifact | |
continue-on-error: true | |
uses: actions/download-artifact@v3.0.0 | |
with: | |
name: win-arm64-fde | |
path: out | |
- name: Download win-arm64 artifact | |
continue-on-error: true | |
uses: actions/download-artifact@v3.0.0 | |
with: | |
name: win-arm64 | |
path: out | |
- name: Download osx-x64-fde artifact | |
continue-on-error: true | |
uses: actions/download-artifact@v3.0.0 | |
with: | |
name: osx-x64-fde | |
path: out | |
- name: Download osx-x64 artifact | |
continue-on-error: true | |
uses: actions/download-artifact@v3.0.0 | |
with: | |
name: osx-x64 | |
path: out | |
- name: Download osx-arm64-fde artifact | |
continue-on-error: true | |
uses: actions/download-artifact@v3.0.0 | |
with: | |
name: osx-arm64-fde | |
path: out | |
- name: Download osx-arm64 artifact | |
continue-on-error: true | |
uses: actions/download-artifact@v3.0.0 | |
with: | |
name: osx-arm64 | |
path: out | |
- name: Download linux-x64-fde artifact | |
continue-on-error: true | |
uses: actions/download-artifact@v3.0.0 | |
with: | |
name: linux-x64-fde | |
path: out | |
- name: Download linux-x64 artifact | |
continue-on-error: true | |
uses: actions/download-artifact@v3.0.0 | |
with: | |
name: linux-x64 | |
path: out | |
- name: Download linux-arm-fde artifact | |
continue-on-error: true | |
uses: actions/download-artifact@v3.0.0 | |
with: | |
name: linux-arm-fde | |
path: out | |
- name: Download linux-arm artifact | |
continue-on-error: true | |
uses: actions/download-artifact@v3.0.0 | |
with: | |
name: linux-arm | |
path: out | |
- name: Download linux-arm64-fde artifact | |
continue-on-error: true | |
uses: actions/download-artifact@v3.0.0 | |
with: | |
name: linux-arm64-fde | |
path: out | |
- name: Download linux-arm64 artifact | |
continue-on-error: true | |
uses: actions/download-artifact@v3.0.0 | |
with: | |
name: linux-arm64 | |
path: out | |
- name: Create ${{ env.PROJECT_NAME }} GitHub release | |
uses: ncipollo/release-action@v1.12.0 | |
with: | |
artifacts: "out/*" | |
makeLatest: false | |
prerelease: true | |
tag: ${{ github.ref_name }} | |
name: ${{ env.PROJECT_NAME }} ${{ github.ref_name }} | |
body: | | |
# 更新说明 | |
![XinjingdailyBot Release](https://img.shields.io/badge/XinjingdailyBot-${{ github.ref_name }}-brightgreen) ![Downloads](https://img.shields.io/github/downloads/chr233/XinjingdailyBot/${{ github.ref_name }}/total?label=Downloads) | |
release created bt github actions | |
--- | |
> 带 `fde` 表示可执行文件内置 .net 框架, 可以脱离框架运行, 但是体积比较大 | |
> 如果电脑上已经安装过 .net 框架, 可以下载不带 `fde` 的版本, 节约硬盘空间 |