Skip to content

update

update #104

Workflow file for this run

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` 的版本, 节约硬盘空间