name: Build & Release MSI on: push: tags: - 'v*' jobs: build-msi: runs-on: windows-latest permissions: contents: write steps: - name: Checkout uses: actions/checkout@v4 - name: Extract version (strip leading v) id: ver shell: pwsh run: | $tag = "${{ github.ref_name }}" $ver = $tag.TrimStart('v') # WiX requires 4-part version (Major.Minor.Patch.Build) if ($ver -notmatch '^\d+\.\d+\.\d+\.\d+$') { $ver = "$ver.0" } echo "VERSION=$ver" >> $env:GITHUB_OUTPUT echo "TAG=$tag" >> $env:GITHUB_OUTPUT - name: Prepare staging directory shell: pwsh run: | $stage = "${{ runner.temp }}\stage" New-Item -ItemType Directory -Force $stage | Out-Null # Copy everything except .git, .github, installer Get-ChildItem -Path . -Exclude '.git','.github','installer' | Copy-Item -Destination $stage -Recurse -Force - name: Install WiX Toolset v4 shell: pwsh run: | dotnet tool install --global wix wix extension add WixToolset.UI.wixext --global - name: Build MSI shell: pwsh run: | $stage = "${{ runner.temp }}\stage" $installerDir = "${{ github.workspace }}\installer" $msiName = "IntuneManager-${{ steps.ver.outputs.TAG }}.msi" wix build installer\Intune-Manager.wxs ` -d Version=${{ steps.ver.outputs.VERSION }} ` -d SourceDir=$stage ` -d InstallerDir=$installerDir ` -o $msiName echo "MSI_NAME=$msiName" >> $env:GITHUB_OUTPUT id: build - name: Create GitHub Release uses: softprops/action-gh-release@v2 with: name: "Intune Manager ${{ steps.ver.outputs.TAG }}" body: | ## Intune Manager ${{ steps.ver.outputs.TAG }} ### Installation 1. `IntuneManager-${{ steps.ver.outputs.TAG }}.msi` herunterladen 2. Doppelklick → Installer folgen 3. Intune Manager über das Startmenü starten ### Voraussetzungen - Windows 10/11 - PowerShell 5.1 oder 7+ - `Microsoft.Graph.Authentication` Modul (wird beim ersten Start automatisch angeboten) files: "IntuneManager-${{ steps.ver.outputs.TAG }}.msi" generate_release_notes: false