Files

92 lines
2.7 KiB
YAML

name: Publish MultiInject
on:
push:
branches: [ "main" ]
jobs:
build-and-release:
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
runs-on: ${{ matrix.os }}
env:
VERSION: ${{ github.event.ref_name }} # Set the version tag as the release version
APP_NAME: "MultiInject" # Application name
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup .NET SDK
uses: actions/setup-dotnet@v4
with:
dotnet-version: '8.0' # Specify .NET SDK version
- name: Install MAUI Workloads
run: dotnet workload restore
- name: Build for Windows
if: matrix.os == 'windows-latest'
run: dotnet publish MultiInject.sln -c Release -o output -f net8.0-windows10.0.19041.0
- name: Build for macOS
if: matrix.os == 'macos-latest'
run: dotnet publish MultiInject.sln -c Release -o output -f net8.0-maccatalyst
- name: Build for Linux
if: matrix.os == 'ubuntu-latest'
run: dotnet publish MultiInject.sln -c Release -o output -f net8.0
- name: Upload build artifact
uses: actions/upload-artifact@v3
with:
name: ${{ matrix.os }}-build
path: output
- name: Create GitHub Release
id: create_release
if: github.ref_type == 'tag'
uses: actions/create-release@v1
with:
tag_name: ${{ env.VERSION }}
release_name: Release ${{ env.VERSION }}
draft: false
prerelease: false
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Upload to Release - Linux
if: matrix.os == 'ubuntu-latest'
uses: actions/upload-release-asset@v1
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: output
asset_name: MultiInject-linux-${{ env.VERSION }}.zip
asset_content_type: application/zip
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Upload to Release - Windows
if: matrix.os == 'windows-latest'
uses: actions/upload-release-asset@v1
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: output
asset_name: MultiInject-win-${{ env.VERSION }}.zip
asset_content_type: application/zip
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Upload to Release - macOS
if: matrix.os == 'macos-latest'
uses: actions/upload-release-asset@v1
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: output
asset_name: MultiInject-mac-${{ env.VERSION }}.zip
asset_content_type: application/zip
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}