Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit ea43a9c

Browse files
umbynosper1234
andauthored
Add windows .msi installer to the CI (#1899)
* add step to generate a windows msi installer of the Arduino CLI * remove warning: `warning : Solution properties are only available during IDE builds or when building the solution file from the command line. To turn off this warning set <DefineSolutionProperties>false</DefineSolutionProperties> in your .wixproj` * fix error caused by wix peculiar version constraints: `error CNDL0108: The Product/@Version attribute's value, '0.0.0-test', is not a valid version. Legal version values should look like 'x.x.x.x' where x is an integer from 0 to 65534.` * fix `error LGHT0103: The system cannot find the file 'arduino-cli.exe'` * final adjustments in wix config * exclude prettier from checking the installer config files, prettier does not support xml out of the box * add download links * temporarily disable s3 push and homebrew update for testing * Upload nightly artifacts for testing * add windows check certs * bump to latest windows-sdk and document better specify timestamp algorithm. Apparently this is required in the latest version of the sdk * remove useless job id not used anymore (followup of #1883) * fixed comments * It's useless to use the output from setupmsbuild * use YAML-style syntax * try to uniform the usage of version/tag across the workflow * Revert "Upload nightly artifacts for testing" && "temporarily disable s3 push and homebrew update for testing" This reverts commit 3123dfd. This reverts commit 24fa25c. * Apply suggestions from code review Co-authored-by: per1234 <accounts@perglass.com> Co-authored-by: per1234 <accounts@perglass.com>
1 parent 57bfabe commit ea43a9c

File tree

9 files changed

+328
-31
lines changed

9 files changed

+328
-31
lines changed

‎.github/workflows/check-certificates.yml‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,9 @@ jobs:
3636
- identifier: macOS signing certificate # Text used to identify certificate in notifications.
3737
certificate-secret: INSTALLER_CERT_MAC_P12 # Name of the secret that contains the certificate.
3838
password-secret: INSTALLER_CERT_MAC_PASSWORD # Name of the secret that contains the certificate password.
39+
- identifier: Windows signing certificate
40+
certificate-secret: INSTALLER_CERT_WINDOWS_PASSWORD
41+
password-secret: INSTALLER_CERT_WINDOWS_PFX
3942

4043
steps:
4144
- name: Set certificate path environment variable

‎.github/workflows/publish-go-nightly-task.yml‎

Lines changed: 72 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ on:
2020

2121
jobs:
2222
create-nightly-artifacts:
23+
outputs:
24+
version: ${{ steps.get-version.outputs.version }}
2325
runs-on: ubuntu-latest
2426

2527
strategy:
@@ -50,6 +52,12 @@ jobs:
5052
NIGHTLY: true
5153
run: task dist:${{ matrix.os }}
5254

55+
- name: Output Version
56+
id: get-version
57+
env:
58+
NIGHTLY: true
59+
run: echo "::set-output name=version::$(task general:get-version)"
60+
5361
- name: Upload artifacts
5462
uses: actions/upload-artifact@v3
5563
with:
@@ -61,9 +69,6 @@ jobs:
6169
name: Notarize ${{ matrix.artifact.name }}
6270
runs-on: macos-latest
6371
needs: create-nightly-artifacts
64-
outputs:
65-
checksum-darwin_amd64: ${{ steps.re-package.outputs.checksum-darwin_amd64 }}
66-
checksum-darwin_arm64: ${{ steps.re-package.outputs.checksum-darwin_arm64 }}
6772

6873
env:
6974
GON_CONFIG_PATH: gon.config.hcl
@@ -141,15 +146,14 @@ jobs:
141146
gon "${{ env.GON_CONFIG_PATH }}"
142147
143148
- name: Re-package binary
144-
id: re-package
145149
working-directory: ${{ env.DIST_DIR }}
146150
# Repackage the signed binary replaced in place by Gon (ignoring the output zip file)
147151
run: |
148152
# GitHub's upload/download-artifact@v2 actions don't preserve file permissions,
149153
# so we need to add execution permission back until the action is made to do this.
150154
chmod +x "${{ env.PROJECT_NAME }}_osx_${{ matrix.artifact.name }}/${{ env.PROJECT_NAME }}"
151-
# Use of an array here is required for globbing
152-
PACKAGE_FILENAME=(${{ env.PROJECT_NAME }}_nightly-*${{ matrix.artifact.path }})
155+
VERSION=${{ needs.create-nightly-artifacts.outputs.version }}
156+
PACKAGE_FILENAME=(${{ env.PROJECT_NAME }}_${VERSION}_${{ matrix.artifact.path }})
153157
tar -czvf "$PACKAGE_FILENAME" \
154158
-C "${{ env.PROJECT_NAME }}_osx_${{ matrix.artifact.name }}/" "${{ env.PROJECT_NAME }}" \
155159
-C ../../ LICENSE.txt
@@ -162,9 +166,68 @@ jobs:
162166
name: ${{ env.ARTIFACT_NAME }}
163167
path: ${{ env.DIST_DIR }}/${{ env.PACKAGE_FILENAME }}
164168

169+
create-windows-installer:
170+
runs-on: windows-latest
171+
needs: create-nightly-artifacts
172+
173+
defaults:
174+
run:
175+
shell: bash
176+
177+
env:
178+
INSTALLER_CERT_WINDOWS_PFX: "/tmp/cert.pfx"
179+
# We are hardcoding the path for signtool because is not present on the windows PATH env var by default.
180+
# Keep in mind that this path could change when upgrading to a new runner version
181+
# https://github.com/actions/runner-images/blob/main/images/win/Windows2022-Readme.md#installed-windows-sdks
182+
SIGNTOOL_PATH: "C:/Program Files (x86)/Windows Kits/10/bin/10.0.22621.0/x86/signtool.exe"
183+
184+
steps:
185+
- name: Checkout repository
186+
uses: actions/checkout@v3
187+
188+
- name: Download artifacts
189+
uses: actions/download-artifact@v3
190+
with:
191+
name: ${{ env.ARTIFACT_NAME }}
192+
path: ${{ env.DIST_DIR }}
193+
194+
- name: Prepare PATH
195+
uses: microsoft/setup-msbuild@v1
196+
197+
- name: Build MSI
198+
id: buildmsi
199+
run: |
200+
VERSION=${{ needs.create-nightly-artifacts.outputs.version }}
201+
WIX_VERSION="0.0.0" # use 0.0.0 as version for the installer since wix is picky about other alternatives, this only affects nightly builds (error CNDL0242)
202+
PACKAGE_FILENAME="${{ env.PROJECT_NAME }}_${VERSION}_Windows_64bit"
203+
SOURCE_DIR="${GITHUB_WORKSPACE}/${{ env.DIST_DIR }}/${{ env.PROJECT_NAME }}_windows_amd64/"
204+
MSBuild.exe ./installer/cli.wixproj -p:SourceDir="$SOURCE_DIR" -p:OutputPath="${GITHUB_WORKSPACE}/${{ env.DIST_DIR }}" -p:OutputName="$PACKAGE_FILENAME" -p:ProductVersion="$WIX_VERSION"
205+
206+
- name: Save Win signing certificate to file
207+
run: echo "${{ secrets.INSTALLER_CERT_WINDOWS_PFX }}" | base64 --decode > ${{ env.INSTALLER_CERT_WINDOWS_PFX}}
208+
209+
- name: Sign MSI
210+
env:
211+
MSI_FILE: ${{ steps.buildmsi.outputs.msi }} # this comes from .installer/cli.wixproj
212+
CERT_PASSWORD: ${{ secrets.INSTALLER_CERT_WINDOWS_PASSWORD }}
213+
run: |
214+
"${{ env.SIGNTOOL_PATH }}" sign -d "Arduino CLI" -f ${{ env.INSTALLER_CERT_WINDOWS_PFX}} -p ${{ env.CERT_PASSWORD }} -fd sha256 -tr http://timestamp.digicert.com -td SHA256 -v "${{ env.MSI_FILE }}"
215+
216+
- name: Upload artifacts
217+
uses: actions/upload-artifact@v3
218+
env:
219+
MSI_FILE: ${{ steps.buildmsi.outputs.msi }}
220+
with:
221+
if-no-files-found: error
222+
name: ${{ env.ARTIFACT_NAME }}
223+
path: ${{ env.MSI_FILE }}
224+
165225
publish-nightly:
166226
runs-on: ubuntu-latest
167-
needs: notarize-macos
227+
needs:
228+
- create-nightly-artifacts
229+
- notarize-macos
230+
- create-windows-installer
168231

169232
steps:
170233
- name: Download artifact
@@ -176,8 +239,8 @@ jobs:
176239
- name: Create checksum file
177240
working-directory: ${{ env.DIST_DIR}}
178241
run: |
179-
TAG="nightly-$(date -u +"%Y%m%d")"
180-
sha256sum ${{ env.PROJECT_NAME }}_${TAG}* > ${TAG}-checksums.txt
242+
VERSION=${{ needs.create-nightly-artifacts.outputs.version }}
243+
sha256sum ${{ env.PROJECT_NAME }}_${VERSION}* > ${VERSION}-checksums.txt
181244
182245
- name: Upload release files on Arduino downloads servers
183246
uses: docker://plugins/s3

‎.github/workflows/release-go-task.yml‎

Lines changed: 69 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ on:
1717

1818
jobs:
1919
create-release-artifacts:
20+
outputs:
21+
version: ${{ steps.get-version.outputs.version }}
2022
runs-on: ubuntu-latest
2123

2224
strategy:
@@ -57,6 +59,10 @@ jobs:
5759
- name: Build
5860
run: task dist:${{ matrix.os }}
5961

62+
- name: Output Version
63+
id: get-version
64+
run: echo "::set-output name=version::$(task general:get-version)"
65+
6066
- name: Upload artifacts
6167
uses: actions/upload-artifact@v3
6268
with:
@@ -68,9 +74,6 @@ jobs:
6874
name: Notarize ${{ matrix.artifact.name }}
6975
runs-on: macos-latest
7076
needs: create-release-artifacts
71-
outputs:
72-
checksum-darwin_amd64: ${{ steps.re-package.outputs.checksum-darwin_amd64 }}
73-
checksum-darwin_arm64: ${{ steps.re-package.outputs.checksum-darwin_arm64 }}
7477

7578
env:
7679
GON_CONFIG_PATH: gon.config.hcl
@@ -148,14 +151,13 @@ jobs:
148151
gon "${{ env.GON_CONFIG_PATH }}"
149152
150153
- name: Re-package binary
151-
id: re-package
152154
working-directory: ${{ env.DIST_DIR }}
153155
# Repackage the signed binary replaced in place by Gon (ignoring the output zip file)
154156
run: |
155157
# GitHub's upload/download-artifact@v2 actions don't preserve file permissions,
156158
# so we need to add execution permission back until the action is made to do this.
157159
chmod +x "${{ env.PROJECT_NAME }}_osx_${{ matrix.artifact.name }}/${{ env.PROJECT_NAME }}"
158-
TAG="${GITHUB_REF/refs\/tags\//}"
160+
TAG=${{ needs.create-release-artifacts.outputs.version }}
159161
PACKAGE_FILENAME="${{ env.PROJECT_NAME }}_${TAG}_${{ matrix.artifact.path }}"
160162
tar -czvf "$PACKAGE_FILENAME" \
161163
-C "${{ env.PROJECT_NAME }}_osx_${{ matrix.artifact.name }}/" "${{ env.PROJECT_NAME }}" \
@@ -169,9 +171,68 @@ jobs:
169171
name: ${{ env.ARTIFACT_NAME }}
170172
path: ${{ env.DIST_DIR }}/${{ env.PACKAGE_FILENAME }}
171173

174+
create-windows-installer:
175+
runs-on: windows-latest
176+
needs: create-release-artifacts
177+
178+
defaults:
179+
run:
180+
shell: bash
181+
182+
env:
183+
INSTALLER_CERT_WINDOWS_PFX: "/tmp/cert.pfx"
184+
# We are hardcoding the path for signtool because is not present on the windows PATH env var by default.
185+
# Keep in mind that this path could change when upgrading to a new runner version
186+
# https://github.com/actions/runner-images/blob/main/images/win/Windows2022-Readme.md#installed-windows-sdks
187+
SIGNTOOL_PATH: "C:/Program Files (x86)/Windows Kits/10/bin/10.0.22621.0/x86/signtool.exe"
188+
189+
steps:
190+
- name: Checkout repository
191+
uses: actions/checkout@v3
192+
193+
- name: Download artifacts
194+
uses: actions/download-artifact@v3
195+
with:
196+
name: ${{ env.ARTIFACT_NAME }}
197+
path: ${{ env.DIST_DIR }}
198+
199+
- name: Prepare PATH
200+
uses: microsoft/setup-msbuild@v1
201+
202+
- name: Build MSI
203+
id: buildmsi
204+
run: |
205+
TAG=${{ needs.create-release-artifacts.outputs.version }}
206+
WIX_TAG="${TAG%%-*}" # removes "-rc*" since wix is not happy with it, this only affects RCs builds (error CNDL0108)
207+
PACKAGE_FILENAME="${{ env.PROJECT_NAME }}_${TAG}_Windows_64bit"
208+
SOURCE_DIR="${GITHUB_WORKSPACE}/${{ env.DIST_DIR }}/${{ env.PROJECT_NAME }}_windows_amd64/"
209+
MSBuild.exe ./installer/cli.wixproj -p:SourceDir="$SOURCE_DIR" -p:OutputPath="${GITHUB_WORKSPACE}/${{ env.DIST_DIR }}" -p:OutputName="$PACKAGE_FILENAME" -p:ProductVersion="$WIX_TAG"
210+
211+
- name: Save Win signing certificate to file
212+
run: echo "${{ secrets.INSTALLER_CERT_WINDOWS_PFX }}" | base64 --decode > ${{ env.INSTALLER_CERT_WINDOWS_PFX}}
213+
214+
- name: Sign MSI
215+
env:
216+
MSI_FILE: ${{ steps.buildmsi.outputs.msi }} # this comes from .installer/cli.wixproj
217+
CERT_PASSWORD: ${{ secrets.INSTALLER_CERT_WINDOWS_PASSWORD }}
218+
run: |
219+
"${{ env.SIGNTOOL_PATH }}" sign -d "Arduino CLI" -f ${{ env.INSTALLER_CERT_WINDOWS_PFX}} -p ${{ env.CERT_PASSWORD }} -fd sha256 -tr http://timestamp.digicert.com -td SHA256 -v "${{ env.MSI_FILE }}"
220+
221+
- name: Upload artifacts
222+
uses: actions/upload-artifact@v3
223+
env:
224+
MSI_FILE: ${{ steps.buildmsi.outputs.msi }}
225+
with:
226+
if-no-files-found: error
227+
name: ${{ env.ARTIFACT_NAME }}
228+
path: ${{ env.MSI_FILE }}
229+
172230
create-release:
173231
runs-on: ubuntu-latest
174-
needs: notarize-macos
232+
needs:
233+
- create-release-artifacts
234+
- notarize-macos
235+
- create-windows-installer
175236

176237
steps:
177238
- name: Download artifact
@@ -183,7 +244,7 @@ jobs:
183244
- name: Create checksum file
184245
working-directory: ${{ env.DIST_DIR}}
185246
run: |
186-
TAG="${GITHUB_REF/refs\/tags\//}"
247+
TAG=${{ needs.create-release-artifacts.outputs.version }}
187248
sha256sum ${{ env.PROJECT_NAME }}_${TAG}* > ${TAG}-checksums.txt
188249
189250
- name: Identify Prerelease
@@ -193,7 +254,7 @@ jobs:
193254
run: |
194255
wget -q -P /tmp https://github.com/fsaintjacques/semver-tool/archive/3.0.0.zip
195256
unzip -p /tmp/3.0.0.zip semver-tool-3.0.0/src/semver >/tmp/semver && chmod +x /tmp/semver
196-
if [[ "$(/tmp/semver get prerel "${GITHUB_REF/refs\/tags\//}")" ]]; then echo "::set-output name=IS_PRE::true"; fi
257+
if [[ "$(/tmp/semver get prerel ${{ needs.create-release-artifacts.outputs.version }} )" ]]; then echo "::set-output name=IS_PRE::true"; fi
197258
198259
- name: Create Github Release and upload artifacts
199260
uses: ncipollo/release-action@v1

‎.prettierignore‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,4 @@
88
/arduino/security/testdata/
99
/.licenses/
1010
/site/
11+
/installer/

‎Taskfile.yml‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -327,6 +327,11 @@ tasks:
327327
cmds:
328328
- poetry run mkdocs serve
329329

330+
general:get-version:
331+
desc: Returns the version used in the project
332+
cmds:
333+
- echo {{.VERSION}}
334+
330335
vars:
331336
PROJECT_NAME: "arduino-cli"
332337
DIST_DIR: "dist"

‎docs/installation.md‎

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -58,20 +58,22 @@ in your [`PATH`](https://en.wikipedia.org/wiki/PATH%5F%28variable%29) or add the
5858

5959
### Latest release
6060

61-
| Platform | | |
62-
| --------- | -------------------- | -------------------- |
63-
| Linux | [32 bit][linux32] | [64 bit][linux64] |
64-
| Linux ARM | [32 bit][linuxarm32] | [64 bit][linuxarm64] |
65-
| Windows | [32 bit][windows32] | [64 bit][windows64] |
66-
| macOS | | [64 bit][macos64] |
67-
| macOS ARM | | [64 bit][macosarm64] |
61+
| Platform | | |
62+
| ----------- | -------------------- | ---------------------- |
63+
| Linux | [32 bit][linux32] | [64 bit][linux64] |
64+
| Linux ARM | [32 bit][linuxarm32] | [64 bit][linuxarm64] |
65+
| Windows exe | [32 bit][windows32] | [64 bit][windows64] |
66+
| Windows msi | | [64 bit][windowsmsi64] |
67+
| macOS | | [64 bit][macos64] |
68+
| macOS ARM | | [64 bit][macosarm64] |
6869

6970
[linux64]: https://downloads.arduino.cc/arduino-cli/arduino-cli_latest_Linux_64bit.tar.gz
7071
[linux32]: https://downloads.arduino.cc/arduino-cli/arduino-cli_latest_Linux_32bit.tar.gz
7172
[linuxarm64]: https://downloads.arduino.cc/arduino-cli/arduino-cli_latest_Linux_ARM64.tar.gz
7273
[linuxarm32]: https://downloads.arduino.cc/arduino-cli/arduino-cli_latest_Linux_ARMv7.tar.gz
7374
[windows64]: https://downloads.arduino.cc/arduino-cli/arduino-cli_latest_Windows_64bit.zip
7475
[windows32]: https://downloads.arduino.cc/arduino-cli/arduino-cli_latest_Windows_32bit.zip
76+
[windowsmsi64]: https://downloads.arduino.cc/arduino-cli/arduino-cli_latest_Windows_64bit.msi
7577
[macos64]: https://downloads.arduino.cc/arduino-cli/arduino-cli_latest_macOS_64bit.tar.gz
7678
[macosarm64]: https://downloads.arduino.cc/arduino-cli/arduino-cli_latest_macOS_ARM64.tar.gz
7779

@@ -88,20 +90,22 @@ These are available from the "Assets" sections on the [releases page](https://gi
8890
These builds are generated every day at 01:00 GMT from the `master` branch and should be considered unstable. In order
8991
to get the latest nightly build available for the supported platform, use the following links:
9092

91-
| Platform | | |
92-
| --------- | ---------------------------- | ---------------------------- |
93-
| Linux | [32 bit][linux32-nightly] | [64 bit][linux64-nightly] |
94-
| Linux ARM | [32 bit][linuxarm32-nightly] | [64 bit][linuxarm64-nightly] |
95-
| Windows | [32 bit][windows32-nightly] | [64 bit][windows64-nightly] |
96-
| macOS | | [64 bit][macos64-nightly] |
97-
| macOS ARM | | [64 bit][macosarm64-nightly] |
93+
| Platform | | |
94+
| ----------- | ---------------------------- | ------------------------------ |
95+
| Linux | [32 bit][linux32-nightly] | [64 bit][linux64-nightly] |
96+
| Linux ARM | [32 bit][linuxarm32-nightly] | [64 bit][linuxarm64-nightly] |
97+
| Windows exe | [32 bit][windows32-nightly] | [64 bit][windows64-nightly] |
98+
| Windows msi | | [64 bit][windowsmsi64-nightly] |
99+
| macOS | | [64 bit][macos64-nightly] |
100+
| macOS ARM | | [64 bit][macosarm64-nightly] |
98101

99102
[linux64-nightly]: https://downloads.arduino.cc/arduino-cli/nightly/arduino-cli_nightly-latest_Linux_64bit.tar.gz
100103
[linux32-nightly]: https://downloads.arduino.cc/arduino-cli/nightly/arduino-cli_nightly-latest_Linux_32bit.tar.gz
101104
[linuxarm64-nightly]: https://downloads.arduino.cc/arduino-cli/nightly/arduino-cli_nightly-latest_Linux_ARM64.tar.gz
102105
[linuxarm32-nightly]: https://downloads.arduino.cc/arduino-cli/nightly/arduino-cli_nightly-latest_Linux_ARMv7.tar.gz
103106
[windows64-nightly]: https://downloads.arduino.cc/arduino-cli/nightly/arduino-cli_nightly-latest_Windows_64bit.zip
104107
[windows32-nightly]: https://downloads.arduino.cc/arduino-cli/nightly/arduino-cli_nightly-latest_Windows_32bit.zip
108+
[windowsmsi64-nightly]: https://downloads.arduino.cc/arduino-cli/nightly/arduino-cli_nightly-latest_Windows_64bit.msi
105109
[macos64-nightly]: https://downloads.arduino.cc/arduino-cli/nightly/arduino-cli_nightly-latest_macOS_64bit.tar.gz
106110
[macosarm64-nightly]: https://downloads.arduino.cc/arduino-cli/nightly/arduino-cli_nightly-latest_macOS_ARM64.tar.gz
107111

‎installer/cli.wixproj‎

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3+
<PropertyGroup>
4+
<Configuration>Release</Configuration>
5+
<Platform Condition="'$(Platform)' == ''">x64</Platform>
6+
<!-- "ProductVersion" gets overridden when run with the commandline by the release CI, this is useful to define it if not defined -->
7+
<ProductVersion Condition="'$(ProductVersion)' == ''">0.1.0</ProductVersion>
8+
<!-- "OutputName" gets overridden when run with the commandline by the release CI, it's the name of the output file -->
9+
<OutputName Condition="'$(OutputName)' == ''">$(MSBuildProjectName)</OutputName>
10+
<OutputType>package</OutputType>
11+
<DefineConstants>
12+
$(DefineConstants);
13+
ProductVersion=$(ProductVersion);
14+
</DefineConstants>
15+
<DefineSolutionProperties>false</DefineSolutionProperties>
16+
<WixTargetsPath Condition="'$(WixTargetsPath)' == ''">$(MSBuildExtensionsPath)\Microsoft\WiX\v3.x\Wix.targets</WixTargetsPath>
17+
</PropertyGroup>
18+
<ItemGroup>
19+
<!-- path and name of the additional files that contains additional config for the installer generation and needs Compile -->
20+
<Compile Include="cli.wxs"/>
21+
<Compile Include="ui.wxs"/>
22+
</ItemGroup>
23+
<ItemGroup>
24+
<!-- Include directories containing both user-specified output and unzipped release for ease -->
25+
<!-- "SourceDir" is defined when run with the commandline by the release CI, it's the folder containing files to include in the installer -->
26+
<BindInputPaths Include="$(SourceDir)"/>
27+
</ItemGroup>
28+
<ItemGroup>
29+
<!-- https://wixtoolset.org//documentation/manual/v3/wixui/wixui_dialog_library.html -->
30+
<WixExtension Include="WixUIExtension"/>
31+
<!-- we need the following to be able to broadcast the environment vars change -->
32+
<WixExtension Include="WixUtilExtension"/>
33+
</ItemGroup>
34+
<Target Name="SetStepOutput" AfterTargets="Build" Condition="'$(GITHUB_ACTIONS)' != ''">
35+
<!-- Define a GitHub Actions workflow step output containing the target path -->
36+
<Message Importance="high" Text="::set-output name=msi::$(TargetPath)"/>
37+
</Target>
38+
<Import Project="$(WixTargetsPath)"/>
39+
</Project>

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /