diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..86a4e2d --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,75 @@ +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 diff --git a/installer/Intune-Manager.wxs b/installer/Intune-Manager.wxs new file mode 100644 index 0000000..30a4ecd --- /dev/null +++ b/installer/Intune-Manager.wxs @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/installer/License.rtf b/installer/License.rtf new file mode 100644 index 0000000..c02d635 --- /dev/null +++ b/installer/License.rtf @@ -0,0 +1,9 @@ +{\rtf1\ansi\deff0 +{\fonttbl{\f0 Arial;}} +\f0\fs20 +Intune Manager \endash{} Web Edition\par +\par +Copyright (c) 2026 Wende IT\par +\par +Dieses Werkzeug wird intern bereitgestellt. Eine Weitergabe an Dritte ist nicht gestattet.\par +}