Skip to content

ci(publish-builds): 馃敡 simplify build matrix config #2

ci(publish-builds): 馃敡 simplify build matrix config

ci(publish-builds): 馃敡 simplify build matrix config #2

name: Publish Builds
on:
workflow_dispatch:
push:
branches: [ main ]
release:
types:
- created
jobs:
publish:
name: Publish ${{ matrix.runtimeIdentifier }}
runs-on: ${{ matrix.operatingSystem }}
strategy:
fail-fast: false
matrix:
include:
- operatingSystem: ubuntu-24.04-arm
runtimeIdentifier: linux-arm
- operatingSystem: ubuntu-24.04-arm
runtimeIdentifier: linux-arm64
- operatingSystem: ubuntu-24.04-arm
runtimeIdentifier: linux-bionic-arm64
- operatingSystem: ubuntu-latest
runtimeIdentifier: linux-bionic-x64
- operatingSystem: ubuntu-24.04-arm
runtimeIdentifier: linux-musl-arm
- operatingSystem: ubuntu-24.04-arm
runtimeIdentifier: linux-musl-arm64
- operatingSystem: ubuntu-latest
runtimeIdentifier: linux-musl-x64
- operatingSystem: ubuntu-latest
runtimeIdentifier: linux-x64
- operatingSystem: macos-latest
runtimeIdentifier: osx-arm64
- operatingSystem: macos-15-intel
runtimeIdentifier: osx-x64
- operatingSystem: windows-latest
runtimeIdentifier: win-arm64
- operatingSystem: windows-latest
runtimeIdentifier: win-x64
- operatingSystem: windows-latest
runtimeIdentifier: win-x86
steps:
- name: Checkout Repository
uses: actions/checkout@v6
- name: Setup .NET
uses: actions/setup-dotnet@v5
with:
dotnet-version: '10'
- name: Install Linux Prerequisites
if: startsWith(matrix.operatingSystem, 'ubuntu')
run: sudo apt-get update && sudo apt-get install -y clang zlib1g-dev
- name: Publish Application
run: dotnet publish src/EcoFlow.Mqtt.Api/EcoFlow.Mqtt.Api.csproj -c Release -r ${{ matrix.runtimeIdentifier }} -o ./publish/${{ matrix.runtimeIdentifier }}
- name: Upload Build Artifact
uses: actions/upload-artifact@v6
with:
name: EcoFlow-Mqtt-Api-${{ matrix.runtimeIdentifier }}
path: ./publish/${{ matrix.runtimeIdentifier }}