try workflow build for linux

This commit is contained in:
cs8425
2026-04-29 21:39:39 +08:00
parent 391879a483
commit 04121eb357

View File

@@ -9,6 +9,9 @@ on:
permissions: permissions:
contents: write contents: write
env:
BRANCH_NAME: ${{ github.head_ref || github.ref_name }}
jobs: jobs:
build-release: build-release:
runs-on: windows-latest runs-on: windows-latest
@@ -54,3 +57,55 @@ jobs:
files: | files: |
artifacts/MikuSB-win-x64.zip artifacts/MikuSB-win-x64.zip
artifacts/MikuSB-win-x64.zip.sha256 artifacts/MikuSB-win-x64.zip.sha256
build-release-linux:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-dotnet@v4
with:
dotnet-version: '10.0.x'
- name: Publish server
run: |
dotnet publish ./MikuSB/MikuSB.csproj -c Release -r linux-x64 --self-contained true -p:PublishSingleFile=true --property:PublishDir=../artifacts/dist
- name: Read version
id: version
shell: bash
run: |
line=$(head -n 1 version.txt | xargs)
VERSION=${line#v=}
SHORT_HASH="$(git rev-parse --short=7 HEAD)"
if [ -z "$VERSION" ]; then
echo "version.txt is empty."
VERSION=${SHORT_HASH}
fi
if [[ "${{ env.BRANCH_NAME }}" == "main" ]]; then
echo "tag=v${VERSION}" >> $GITHUB_OUTPUT
else
SAFE_NAME=$(echo "${{ env.BRANCH_NAME }}" | tr '/' '-')
echo "tag=${SAFE_NAME}-v${VERSION}-${SHORT_HASH}" >> $GITHUB_OUTPUT
fi
- name: Assemble release package
run: |
packageDir="./artifacts/dist/"
zipFile="MikuSB-linux-x64.zip"
cp ./version.txt ${packageDir}
pushd ${packageDir}
zip -r ../${zipFile} .
popd
sha256sum ./artifacts/${zipFile} > ./artifacts/${zipFile}.sha256
- name: Create release
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ steps.version.outputs.tag }}
name: ${{ steps.version.outputs.tag }}
generate_release_notes: true
files: |
./artifacts/MikuSB-linux-x64.zip
./artifacts/MikuSB-linux-x64.zip.sha256