Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 26 additions & 11 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,40 +13,55 @@ jobs:
uses: dawidd6/action-download-artifact@v11
with:
workflow: build.yml
workflow_conclusion: ""
branch: master
name: msi_143_x64
branch: arm64
name_is_regexp: true
name: msi_143_[x64|arm64]
merge_multiple: true
repo: open-eid/updater
- name: Download DigiDoc4 package
uses: dawidd6/action-download-artifact@v11
with:
workflow: build.yml
branch: master
name: msi_143_x64
branch: arm64
name_is_regexp: true
name: msi_143_[x64|arm64]
merge_multiple: true
repo: open-eid/DigiDoc4-Client
- name: Download Web-eID packages
uses: dawidd6/action-download-artifact@v11
with:
workflow: cmake-windows.yml
branch: main
branch: coverity_scan
name_is_regexp: true
name: web-eid-app-windows-build-[x64|arm64]-*
merge_multiple: true
repo: web-eid/web-eid-app
- name: Install WiX
- name: Cache Open-EID
id: cache-open-eid
uses: actions/cache@v4
with:
path: |
Open-EID.zip
~/.dotnet/tools
~/.wix
key: ${{ runner.os }}-open-eid
- name: Install dependencies
if: steps.cache-open-eid.outputs.cache-hit != 'true'
run: |
dotnet tool install --global wix --version 6.0.2
wix extension -g add WixToolset.UI.wixext/6.0.2
wix extension -g add WixToolset.Util.wixext/6.0.2
wix extension -g add WixToolset.BootstrapperApplications.wixext/6.0.2
curl -O -L https://installer.id.ee/media/win/Open-EID.zip
- name: Build
env:
BUILD_NUBMER: ${{ github.run_number }}
VER_SUFFIX: .GITHUB
run: |
curl -O -L https://installer.id.ee/media/win/Open-EID.zip
unzip --% Open-EID.zip -x 'Digidoc*' 'web-eid*' 'ID-Updater*'
move web-eid*-x64*/src/app/web-eid_*.x64.msi .
pwsh build.ps1
- name: Archive artifacts
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v5
with:
name: windows
path: Open-EID_*.exe
path: Open-EID-*.exe
11 changes: 10 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,18 @@ A WIX bootstrapper EXE with DigiDoc4 Client and package with various drivers and

1. Fetch the source

git clone --recursive https://github.com/open-eid/windows-installer
git clone https://github.com/open-eid/windows-installer
cd windows-installer

2. Download dependencies to packages folder
* [Digidoc4*x64.msi](https://github.com/open-eid/DigiDoc4-Client/releases)
* [Digidoc4*arm64.msi](https://github.com/open-eid/DigiDoc4-Client/releases)
* [Digidoc_ShellExt*x64.msi](https://github.com/open-eid/DigiDoc4-Client/releases)
* [Digidoc_ShellExt*arm64.msi](https://github.com/open-eid/DigiDoc4-Client/releases)
* [ID-Updater*x64.msi](https://github.com/open-eid/updater/releases)
* [ID-Updater*arm64.msi](https://github.com/open-eid/updater/releases)
* [web-eid*x64.msi](https://github.com/web-eid/web-eid-app/releases)
* [web-eid*arm64.msi](https://github.com/web-eid/web-eid-app/releases)
* [idplug-classic-*-Estonia_64bit.msi](https://installer.id.ee/media/win/Open-EID.zip)
* [SmartCard_Client_*.msi](https://installer.id.ee/media/win/Open-EID.zip)
* [CertDelApp_*.msi](https://installer.id.ee/media/win/Open-EID.zip)
Expand All @@ -21,6 +25,11 @@ A WIX bootstrapper EXE with DigiDoc4 Client and package with various drivers and

https://wixtoolset.org/docs/intro/#nettool

dotnet tool install --global wix --version 6.0.2
wix extension -g add WixToolset.UI.wixext/6.0.2
wix extension -g add WixToolset.Util.wixext/6.0.2
wix extension -g add WixToolset.BootstrapperApplications.wixext/6.0.2

5. Run build.ps1 script, optional parameter -msiversion

powershell -ExecutionPolicy ByPass -File build.ps1
Expand Down
37 changes: 30 additions & 7 deletions bootstrapper.wxs
Original file line number Diff line number Diff line change
Expand Up @@ -79,13 +79,26 @@
<MsiProperty Name="INSTALLFOLDER" Value="[InstallFolder]" />
</MsiPackage>

<MsiPackage Id="Updater" ForcePerMachine="yes" SourceFile="$(var.updater)" Compressed="yes">
<MsiPackage Id="Updater.X64" ForcePerMachine="yes" SourceFile="$(var.updater_x64)" InstallCondition="NOT ARCH=&quot;ARM64&quot;" Compressed="yes">
<MsiProperty Name="INSTALLFOLDER" Value="[InstallFolder]" />
<MsiProperty Name="AUTO_UPDATE" Value="[AutoUpdate]" />
</MsiPackage>
<MsiPackage Id="Updater.ARM64" ForcePerMachine="yes" SourceFile="$(var.updater_arm64)" InstallCondition="ARCH=&quot;ARM64&quot;" Compressed="yes">
<MsiProperty Name="INSTALLFOLDER" Value="[InstallFolder]" />
<MsiProperty Name="AUTO_UPDATE" Value="[AutoUpdate]" />
</MsiPackage>

<MsiPackage Id="WebEID" InstallCondition="ChromeSupport = 1 OR EdgeSupport = 1 OR FirefoxSupport = 1" ForcePerMachine="yes"
SourceFile="$(var.webeid)" Compressed="yes">
<MsiPackage Id="WebEID.X64" InstallCondition="ChromeSupport = 1 OR EdgeSupport = 1 OR FirefoxSupport = 1 AND NOT ARCH=&quot;ARM64&quot;"
ForcePerMachine="yes" SourceFile="$(var.webeid_x64)" Compressed="yes">
<MsiProperty Name="INSTALLFOLDER" Value="[InstallFolder]" />
<MsiProperty Name="CHROMEINSTALL" Value="[ChromeSupport]" />
<MsiProperty Name="CHROMEPOLICY" Value="[ForceChromeExtensionActivation2]" />
<MsiProperty Name="EDGEINSTALL" Value="[EdgeSupport]" />
<MsiProperty Name="EDGEPOLICY" Value="[ForceEdgeExtensionActivation2]" />
<MsiProperty Name="FIREFOXINSTALL" Value="[FirefoxSupport]" />
</MsiPackage>
<MsiPackage Id="WebEID.ARM64" InstallCondition="ChromeSupport = 1 OR EdgeSupport = 1 OR FirefoxSupport = 1 AND ARCH=&quot;ARM64&quot;"
ForcePerMachine="yes" SourceFile="$(var.webeid_arm64)" Compressed="yes">
<MsiProperty Name="INSTALLFOLDER" Value="[InstallFolder]" />
<MsiProperty Name="CHROMEINSTALL" Value="[ChromeSupport]" />
<MsiProperty Name="CHROMEPOLICY" Value="[ForceChromeExtensionActivation2]" />
Expand All @@ -94,18 +107,28 @@
<MsiProperty Name="FIREFOXINSTALL" Value="[FirefoxSupport]" />
</MsiPackage>

<MsiPackage Id="DigiDoc4" InstallCondition="Qdigidoc4Install = 1" ForcePerMachine="yes"
SourceFile="$(var.qdigidoc4)" Compressed="yes">
<MsiPackage Id="DigiDoc4.X64" InstallCondition="Qdigidoc4Install = 1 AND NOT ARCH=&quot;ARM64&quot;"
ForcePerMachine="yes" SourceFile="$(var.qdigidoc4_x64)" Compressed="yes">
<MsiProperty Name="INSTALLFOLDER" Value="[InstallFolder]" />
<MsiProperty Name="DESKTOP_SHORTCUT" Value="[IconsDesktop]" />
</MsiPackage>
<MsiPackage Id="DigiDoc4.ARM64" InstallCondition="Qdigidoc4Install = 1 AND ARCH=&quot;ARM64&quot;"
ForcePerMachine="yes" SourceFile="$(var.qdigidoc4_arm64)" Compressed="yes">
<MsiProperty Name="INSTALLFOLDER" Value="[InstallFolder]" />
<MsiProperty Name="DESKTOP_SHORTCUT" Value="[IconsDesktop]" />
</MsiPackage>

<MsiPackage Id="shellext" InstallCondition="Qdigidoc4Install = 1" ForcePerMachine="yes"
SourceFile="$(var.shellext)" Compressed="yes">
<MsiPackage Id="shellext.X64" InstallCondition="Qdigidoc4Install = 1 AND NOT ARCH=&quot;ARM64&quot;"
ForcePerMachine="yes" SourceFile="$(var.shellext_x64)" Compressed="yes">
<MsiProperty Name="APPLICATIONFOLDER" Value="[InstallFolder]" />
<MsiProperty Name="MSIRMSHUTDOWN" Value="2" />
<Provides Key="{EA515788-340A-428E-8DE6-F79C84CBBFCA}"/>
</MsiPackage>
<MsiPackage Id="shellext.ARM64" InstallCondition="Qdigidoc4Install = 1 AND ARCH=&quot;ARM64&quot;"
ForcePerMachine="yes" SourceFile="$(var.shellext_arm64)" Compressed="yes">
<MsiProperty Name="APPLICATIONFOLDER" Value="[InstallFolder]" />
<MsiProperty Name="MSIRMSHUTDOWN" Value="2" />
</MsiPackage>

<MsiPackage Id="MetaInfo" ForcePerMachine="yes" SourceFile="metainfo.msi" Compressed="yes">
<MsiProperty Name="MinidriverInstall" Value="[MinidriverInstall]" />
Expand Down
17 changes: 11 additions & 6 deletions build.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,14 @@ param(
[string]$build_number = $(if ($null -eq $env:BUILD_NUMBER) {"0"} else {$env:BUILD_NUMBER}),
[string]$msiversion = (Get-Date -Format "%y.%M.%d.$build_number"),
[string]$filename = "Open-EID-$msiversion$env:VER_SUFFIX",
[string]$updater = (Get-ChildItem "ID-Updater*x64.msi"),
[string]$qdigidoc4 = (Get-ChildItem "Digidoc4*x64.msi"),
[string]$shellext = (Get-ChildItem "Digidoc_ShellExt*x64.msi"),
[string]$webeid = (Get-ChildItem "web-eid*x64.msi"),
[string]$updater_x64 = (Get-ChildItem "ID-Updater*x64.msi"),
[string]$updater_arm64 = (Get-ChildItem "ID-Updater*arm64.msi"),
[string]$qdigidoc4_x64 = (Get-ChildItem "Digidoc4*x64.msi"),
[string]$qdigidoc4_arm64 = (Get-ChildItem "Digidoc4*arm64.msi"),
[string]$shellext_x64 = (Get-ChildItem "Digidoc_ShellExt*x64.msi"),
[string]$shellext_arm64 = (Get-ChildItem "Digidoc_ShellExt*arm64.msi"),
[string]$webeid_x64 = (Get-ChildItem "web-eid*x64.msi"),
[string]$webeid_arm64 = (Get-ChildItem "web-eid*arm64.msi"),
[string]$idemia = (Get-ChildItem "idplug-classic-*-Estonia_64bit.msi"),
[string]$thales_x64 = (Get-ChildItem "SmartCard_Client_64*.msi"),
[string]$thales_arm64 = (Get-ChildItem "SmartCard_Client_arm64*.msi"),
Expand All @@ -26,9 +30,10 @@ if($sign) {
Sign("$path\RemoveAWPBlock.mst")
}
& wix build -nologo -ext WixToolset.BootstrapperApplications.wixext -ext WixToolset.Util.wixext "$path\bootstrapper.wxs" `
-d "MSI_VERSION=$msiversion" -d "path=$path" -d "updater=$updater" -d "idemia=$idemia" `
-out "$filename.exe" -d "MSI_VERSION=$msiversion" -d "path=$path" -d "idemia=$idemia" `
-d "thales_x64=$thales_x64" -d "thales_arm64=$thales_arm64" -d "certdel_x64=$certdel_x64" -d "certdel_arm64=$certdel_arm64" `
-d "webeid=$webeid" -d "qdigidoc4=$qdigidoc4" -d "shellext=$shellext" -out "$filename.exe"
-d "webeid_x64=$webeid_x64" -d "qdigidoc4_x64=$qdigidoc4_x64" -d "shellext_x64=$shellext_x64" -d "updater_x64=$updater_x64" `
-d "webeid_arm64=$webeid_arm64" -d "qdigidoc4_arm64=$qdigidoc4_arm64" -d "shellext_arm64=$shellext_arm64" -d "updater_arm64=$updater_arm64"
if($sign) {
& wix burn detach -nologo "$filename.exe" -engine "$filename.engine.exe"
Sign("$filename.engine.exe")
Expand Down