From 2fa00535d344530d5173b885b3e7df645fd2707d Mon Sep 17 00:00:00 2001 From: umbynos Date: Fri, 30 Sep 2022 11:07:00 +0200 Subject: [PATCH 01/18] add step to generate a windows msi installer of the Arduino CLI --- .github/workflows/publish-go-nightly-task.yml | 57 +++++++++++++++- .github/workflows/release-go-task.yml | 57 +++++++++++++++- installer/cli.wixproj | 39 +++++++++++ installer/cli.wxs | 67 +++++++++++++++++++ installer/ui.wxs | 54 +++++++++++++++ 5 files changed, 272 insertions(+), 2 deletions(-) create mode 100644 installer/cli.wixproj create mode 100644 installer/cli.wxs create mode 100644 installer/ui.wxs diff --git a/.github/workflows/publish-go-nightly-task.yml b/.github/workflows/publish-go-nightly-task.yml index 6ddc4e7e7fc..d73a52c8984 100644 --- a/.github/workflows/publish-go-nightly-task.yml +++ b/.github/workflows/publish-go-nightly-task.yml @@ -162,9 +162,64 @@ jobs: name: ${{ env.ARTIFACT_NAME }} path: ${{ env.DIST_DIR }}/${{ env.PACKAGE_FILENAME }} + create-windows-installer: + runs-on: windows-latest + needs: create-nightly-artifacts + + defaults: + run: + shell: bash + + env: + INSTALLER_CERT_WINDOWS_PFX: "/tmp/cert.pfx" + SIGNTOOL_PATH: "C:/Program Files (x86)/Windows Kits/10/bin/10.0.17763.0/x86/signtool.exe" + + steps: + - name: Checkout repository + uses: actions/checkout@v3 + + - name: Download artifacts + uses: actions/download-artifact@v3 + with: + name: ${{ env.ARTIFACT_NAME }} + path: ${{ env.DIST_DIR }} + + - name: Prepare PATH + id: setupmsbuild + uses: microsoft/setup-msbuild@v1 + + - name: Build MSI + id: buildmsi + env: + MSBUILD_PATH: ${{ steps.setupmsbuild.outputs.msbuildPath }} + run: | + WIX_TAG="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) + PACKAGE_FILENAME="${{ env.PROJECT_NAME }}_${TAG}_Windows_64bit" + SOURCE_DIR="${GITHUB_WORKSPACE}/${{ env.DIST_DIR }}/${{ env.PROJECT_NAME }}_windows_amd64/" + "${{ env.MSBUILD_PATH }}\MSBuild.exe" ./installer/cli.wixproj -p:SourceDir="$SOURCE_DIR" -p:OutputPath="${GITHUB_WORKSPACE}/${{ env.DIST_DIR }}" -p:OutputName="$PACKAGE_FILENAME" -p:ProductVersion="$WIX_TAG" + + - name: Save Win signing certificate to file + run: echo "${{ secrets.INSTALLER_CERT_WINDOWS_PFX }}" | base64 --decode > ${{ env.INSTALLER_CERT_WINDOWS_PFX}} + + - name: Sign MSI + env: + MSI_FILE: ${{ steps.buildmsi.outputs.msi }} # this comes from .installer/cli.wixproj + CERT_PASSWORD: ${{ secrets.INSTALLER_CERT_WINDOWS_PASSWORD }} + run: | + "${{ env.SIGNTOOL_PATH }}" sign -d "Arduino CLI" -f ${{ env.INSTALLER_CERT_WINDOWS_PFX}} -p ${{ env.CERT_PASSWORD }} -fd sha256 -tr http://timestamp.digicert.com -v "${{ env.MSI_FILE }}" + + - name: Upload artifacts + uses: actions/upload-artifact@v3 + env: + MSI_FILE: ${{ steps.buildmsi.outputs.msi }} + with: + if-no-files-found: error + name: ${{ env.ARTIFACT_NAME }} + path: ${{ env.MSI_FILE }} + publish-nightly: runs-on: ubuntu-latest - needs: notarize-macos + needs: [notarize-macos, create-windows-installer] steps: - name: Download artifact diff --git a/.github/workflows/release-go-task.yml b/.github/workflows/release-go-task.yml index 8c27721899e..06876cc20c3 100644 --- a/.github/workflows/release-go-task.yml +++ b/.github/workflows/release-go-task.yml @@ -169,9 +169,64 @@ jobs: name: ${{ env.ARTIFACT_NAME }} path: ${{ env.DIST_DIR }}/${{ env.PACKAGE_FILENAME }} + create-windows-installer: + runs-on: windows-latest + needs: create-release-artifacts + + defaults: + run: + shell: bash + + env: + INSTALLER_CERT_WINDOWS_PFX: "/tmp/cert.pfx" + SIGNTOOL_PATH: "C:/Program Files (x86)/Windows Kits/10/bin/10.0.17763.0/x86/signtool.exe" + + steps: + - name: Checkout repository + uses: actions/checkout@v3 + + - name: Download artifacts + uses: actions/download-artifact@v3 + with: + name: ${{ env.ARTIFACT_NAME }} + path: ${{ env.DIST_DIR }} + + - name: Prepare PATH + id: setupmsbuild + uses: microsoft/setup-msbuild@v1 + + - name: Build MSI + id: buildmsi + env: + MSBUILD_PATH: ${{ steps.setupmsbuild.outputs.msbuildPath }} + run: | + TAG="${GITHUB_REF/refs\/tags\//}" + PACKAGE_FILENAME="${{ env.PROJECT_NAME }}_${TAG}_Windows_64bit" + SOURCE_DIR="${{ env.DIST_DIR }}/${{ env.PROJECT_NAME }}_windows_amd64/${{ env.PROJECT_NAME }}.exe" + "${{ env.MSBUILD_PATH }}\MSBuild.exe" ./installer/cli.wixproj -p:SourceDir="$SOURCE_DIR" -p:OutputPath="${{ env.DIST_DIR }}" -p:OutputName="$PACKAGE_FILENAME" -p:ProductVersion="$TAG" + + - name: Save Win signing certificate to file + run: echo "${{ secrets.INSTALLER_CERT_WINDOWS_PFX }}" | base64 --decode > ${{ env.INSTALLER_CERT_WINDOWS_PFX}} + + - name: Sign MSI + env: + MSI_FILE: ${{ steps.buildmsi.outputs.msi }} # this comes from .installer/cli.wixproj + CERT_PASSWORD: ${{ secrets.INSTALLER_CERT_WINDOWS_PASSWORD }} + run: | + "${{ env.SIGNTOOL_PATH }}" sign -d "Arduino CLI" -f ${{ env.INSTALLER_CERT_WINDOWS_PFX}} -p ${{ env.CERT_PASSWORD }} -fd sha256 -tr http://timestamp.digicert.com -v "${{ env.MSI_FILE }}" + + - name: Upload artifacts + uses: actions/upload-artifact@v3 + env: + MSI_FILE: ${{ steps.buildmsi.outputs.msi }} + with: + if-no-files-found: error + name: ${{ env.ARTIFACT_NAME }} + path: ${{ env.MSI_FILE }} + create-release: runs-on: ubuntu-latest - needs: notarize-macos + needs: [notarize-macos, create-windows-installer] steps: - name: Download artifact diff --git a/installer/cli.wixproj b/installer/cli.wixproj new file mode 100644 index 00000000000..d0f91fa54dd --- /dev/null +++ b/installer/cli.wixproj @@ -0,0 +1,39 @@ + + + + Release + x64 + + 0.1.0 + + $(MSBuildProjectName) + package + + + $(DefineConstants); + ProductVersion=$(ProductVersion); + + $(MSBuildExtensionsPath)\Microsoft\WiX\v3.x\Wix.targets + + + + + + + + + + + + + + + + + + + + + + + diff --git a/installer/cli.wxs b/installer/cli.wxs new file mode 100644 index 00000000000..4ef98ea9360 --- /dev/null +++ b/installer/cli.wxs @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/installer/ui.wxs b/installer/ui.wxs new file mode 100644 index 00000000000..5de8cf2c3d7 --- /dev/null +++ b/installer/ui.wxs @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + 1 + "1"]]> + + 1 + + NOT Installed + Installed AND PATCH + + 1 + 1 + NOT WIXUI_DONTVALIDATEPATH + "1"]]> + WIXUI_DONTVALIDATEPATH OR WIXUI_INSTALLDIR_VALID="1" + 1 + 1 + + NOT Installed + Installed AND NOT PATCH + Installed AND PATCH + + 1 + + 1 + 1 + 1 + + + + + + + \ No newline at end of file From 7fb4887427cf5ccfc33717456ed519e0bbbc91e5 Mon Sep 17 00:00:00 2001 From: Umberto Baldi Date: Wed, 14 Sep 2022 16:32:56 +0200 Subject: [PATCH 02/18] 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 false in your .wixproj` --- installer/cli.wixproj | 1 + 1 file changed, 1 insertion(+) diff --git a/installer/cli.wixproj b/installer/cli.wixproj index d0f91fa54dd..58888803550 100644 --- a/installer/cli.wixproj +++ b/installer/cli.wixproj @@ -13,6 +13,7 @@ $(DefineConstants); ProductVersion=$(ProductVersion); + false $(MSBuildExtensionsPath)\Microsoft\WiX\v3.x\Wix.targets From 4bc4895024d19e7bfb6b2d3f69d7f7ec6cad6509 Mon Sep 17 00:00:00 2001 From: Umberto Baldi Date: Wed, 14 Sep 2022 17:15:27 +0200 Subject: [PATCH 03/18] 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.` --- .github/workflows/release-go-task.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/release-go-task.yml b/.github/workflows/release-go-task.yml index 06876cc20c3..b0ea0535281 100644 --- a/.github/workflows/release-go-task.yml +++ b/.github/workflows/release-go-task.yml @@ -201,9 +201,10 @@ jobs: MSBUILD_PATH: ${{ steps.setupmsbuild.outputs.msbuildPath }} run: | TAG="${GITHUB_REF/refs\/tags\//}" + WIX_TAG="${TAG%%-*}" # removes "-rc*" since wix is not happy with it, this only affects RCs builds (error CNDL0108) PACKAGE_FILENAME="${{ env.PROJECT_NAME }}_${TAG}_Windows_64bit" SOURCE_DIR="${{ env.DIST_DIR }}/${{ env.PROJECT_NAME }}_windows_amd64/${{ env.PROJECT_NAME }}.exe" - "${{ env.MSBUILD_PATH }}\MSBuild.exe" ./installer/cli.wixproj -p:SourceDir="$SOURCE_DIR" -p:OutputPath="${{ env.DIST_DIR }}" -p:OutputName="$PACKAGE_FILENAME" -p:ProductVersion="$TAG" + "${{ env.MSBUILD_PATH }}\MSBuild.exe" ./installer/cli.wixproj -p:SourceDir="$SOURCE_DIR" -p:OutputPath="${{ env.DIST_DIR }}" -p:OutputName="$PACKAGE_FILENAME" -p:ProductVersion="$WIX_TAG" - name: Save Win signing certificate to file run: echo "${{ secrets.INSTALLER_CERT_WINDOWS_PFX }}" | base64 --decode > ${{ env.INSTALLER_CERT_WINDOWS_PFX}} From e77e6f031672a1b694277d3ebadc7921cd176358 Mon Sep 17 00:00:00 2001 From: umbynos Date: Thu, 15 Sep 2022 13:09:33 +0200 Subject: [PATCH 04/18] fix `error LGHT0103: The system cannot find the file 'arduino-cli.exe'` --- .github/workflows/release-go-task.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release-go-task.yml b/.github/workflows/release-go-task.yml index b0ea0535281..19c7502811e 100644 --- a/.github/workflows/release-go-task.yml +++ b/.github/workflows/release-go-task.yml @@ -203,8 +203,8 @@ jobs: TAG="${GITHUB_REF/refs\/tags\//}" WIX_TAG="${TAG%%-*}" # removes "-rc*" since wix is not happy with it, this only affects RCs builds (error CNDL0108) PACKAGE_FILENAME="${{ env.PROJECT_NAME }}_${TAG}_Windows_64bit" - SOURCE_DIR="${{ env.DIST_DIR }}/${{ env.PROJECT_NAME }}_windows_amd64/${{ env.PROJECT_NAME }}.exe" - "${{ env.MSBUILD_PATH }}\MSBuild.exe" ./installer/cli.wixproj -p:SourceDir="$SOURCE_DIR" -p:OutputPath="${{ env.DIST_DIR }}" -p:OutputName="$PACKAGE_FILENAME" -p:ProductVersion="$WIX_TAG" + SOURCE_DIR="${GITHUB_WORKSPACE}/${{ env.DIST_DIR }}/${{ env.PROJECT_NAME }}_windows_amd64/" + "${{ env.MSBUILD_PATH }}\MSBuild.exe" ./installer/cli.wixproj -p:SourceDir="$SOURCE_DIR" -p:OutputPath="${GITHUB_WORKSPACE}/${{ env.DIST_DIR }}" -p:OutputName="$PACKAGE_FILENAME" -p:ProductVersion="$WIX_TAG" - name: Save Win signing certificate to file run: echo "${{ secrets.INSTALLER_CERT_WINDOWS_PFX }}" | base64 --decode > ${{ env.INSTALLER_CERT_WINDOWS_PFX}} From d16b8cced67980a7c8c5268dd055aa8cdeb5cc6b Mon Sep 17 00:00:00 2001 From: umbynos Date: Fri, 30 Sep 2022 13:17:18 +0200 Subject: [PATCH 05/18] final adjustments in wix config --- installer/cli.wxs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/installer/cli.wxs b/installer/cli.wxs index 4ef98ea9360..0a3731edda2 100644 --- a/installer/cli.wxs +++ b/installer/cli.wxs @@ -40,19 +40,19 @@ - + - - + + - + From fab641278cd27c099ce60f452f83534cdf5de43f Mon Sep 17 00:00:00 2001 From: umbynos Date: Fri, 30 Sep 2022 16:04:01 +0200 Subject: [PATCH 06/18] exclude prettier from checking the installer config files, prettier does not support xml out of the box --- .prettierignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.prettierignore b/.prettierignore index 26aad378ce1..3b34afa1ed6 100644 --- a/.prettierignore +++ b/.prettierignore @@ -8,3 +8,4 @@ /arduino/security/testdata/ /.licenses/ /site/ +/installer/ \ No newline at end of file From 9cbfe14ec29fa3459aab722a6750a46de27a85af Mon Sep 17 00:00:00 2001 From: umbynos Date: Fri, 30 Sep 2022 16:30:22 +0200 Subject: [PATCH 07/18] add download links --- docs/installation.md | 32 ++++++++++++++++++-------------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/docs/installation.md b/docs/installation.md index 9677997ac43..6a444fe4bfc 100644 --- a/docs/installation.md +++ b/docs/installation.md @@ -58,13 +58,14 @@ in your [`PATH`](https://en.wikipedia.org/wiki/PATH%5F%28variable%29) or add the ### Latest release -| Platform | | | -| --------- | -------------------- | -------------------- | -| Linux | [32 bit][linux32] | [64 bit][linux64] | -| Linux ARM | [32 bit][linuxarm32] | [64 bit][linuxarm64] | -| Windows | [32 bit][windows32] | [64 bit][windows64] | -| macOS | | [64 bit][macos64] | -| macOS ARM | | [64 bit][macosarm64] | +| Platform | | | +| ----------- | -------------------- | ---------------------- | +| Linux | [32 bit][linux32] | [64 bit][linux64] | +| Linux ARM | [32 bit][linuxarm32] | [64 bit][linuxarm64] | +| Windows exe | [32 bit][windows32] | [64 bit][windows64] | +| Windows msi | | [64 bit][windowsmsi64] | +| macOS | | [64 bit][macos64] | +| macOS ARM | | [64 bit][macosarm64] | [linux64]: https://downloads.arduino.cc/arduino-cli/arduino-cli_latest_Linux_64bit.tar.gz [linux32]: https://downloads.arduino.cc/arduino-cli/arduino-cli_latest_Linux_32bit.tar.gz @@ -72,6 +73,7 @@ in your [`PATH`](https://en.wikipedia.org/wiki/PATH%5F%28variable%29) or add the [linuxarm32]: https://downloads.arduino.cc/arduino-cli/arduino-cli_latest_Linux_ARMv7.tar.gz [windows64]: https://downloads.arduino.cc/arduino-cli/arduino-cli_latest_Windows_64bit.zip [windows32]: https://downloads.arduino.cc/arduino-cli/arduino-cli_latest_Windows_32bit.zip +[windowsmsi64]: https://downloads.arduino.cc/arduino-cli/arduino-cli_latest_Windows_64bit.msi [macos64]: https://downloads.arduino.cc/arduino-cli/arduino-cli_latest_macOS_64bit.tar.gz [macosarm64]: https://downloads.arduino.cc/arduino-cli/arduino-cli_latest_macOS_ARM64.tar.gz @@ -88,13 +90,14 @@ These are available from the "Assets" sections on the [releases page](https://gi These builds are generated every day at 01:00 GMT from the `master` branch and should be considered unstable. In order to get the latest nightly build available for the supported platform, use the following links: -| Platform | | | -| --------- | ---------------------------- | ---------------------------- | -| Linux | [32 bit][linux32-nightly] | [64 bit][linux64-nightly] | -| Linux ARM | [32 bit][linuxarm32-nightly] | [64 bit][linuxarm64-nightly] | -| Windows | [32 bit][windows32-nightly] | [64 bit][windows64-nightly] | -| macOS | | [64 bit][macos64-nightly] | -| macOS ARM | | [64 bit][macosarm64-nightly] | +| Platform | | | +| ----------- | ---------------------------- | ------------------------------ | +| Linux | [32 bit][linux32-nightly] | [64 bit][linux64-nightly] | +| Linux ARM | [32 bit][linuxarm32-nightly] | [64 bit][linuxarm64-nightly] | +| Windows exe | [32 bit][windows32-nightly] | [64 bit][windows64-nightly] | +| Windows msi | | [64 bit][windowsmsi64-nightly] | +| macOS | | [64 bit][macos64-nightly] | +| macOS ARM | | [64 bit][macosarm64-nightly] | [linux64-nightly]: https://downloads.arduino.cc/arduino-cli/nightly/arduino-cli_nightly-latest_Linux_64bit.tar.gz [linux32-nightly]: https://downloads.arduino.cc/arduino-cli/nightly/arduino-cli_nightly-latest_Linux_32bit.tar.gz @@ -102,6 +105,7 @@ to get the latest nightly build available for the supported platform, use the fo [linuxarm32-nightly]: https://downloads.arduino.cc/arduino-cli/nightly/arduino-cli_nightly-latest_Linux_ARMv7.tar.gz [windows64-nightly]: https://downloads.arduino.cc/arduino-cli/nightly/arduino-cli_nightly-latest_Windows_64bit.zip [windows32-nightly]: https://downloads.arduino.cc/arduino-cli/nightly/arduino-cli_nightly-latest_Windows_32bit.zip +[windowsmsi64-nightly]: https://downloads.arduino.cc/arduino-cli/nightly/arduino-cli_nightly-latest_Windows_64bit.msi [macos64-nightly]: https://downloads.arduino.cc/arduino-cli/nightly/arduino-cli_nightly-latest_macOS_64bit.tar.gz [macosarm64-nightly]: https://downloads.arduino.cc/arduino-cli/nightly/arduino-cli_nightly-latest_macOS_ARM64.tar.gz From 598c334299cc7b67ce5f77b8534eef8b743a9924 Mon Sep 17 00:00:00 2001 From: Umberto Baldi Date: Wed, 14 Sep 2022 15:54:38 +0200 Subject: [PATCH 08/18] temporarily disable s3 push and homebrew update for testing --- .github/workflows/publish-go-nightly-task.yml | 18 +++++------ .github/workflows/release-go-task.yml | 32 +++++++++---------- 2 files changed, 25 insertions(+), 25 deletions(-) diff --git a/.github/workflows/publish-go-nightly-task.yml b/.github/workflows/publish-go-nightly-task.yml index d73a52c8984..14defb65a34 100644 --- a/.github/workflows/publish-go-nightly-task.yml +++ b/.github/workflows/publish-go-nightly-task.yml @@ -234,15 +234,15 @@ jobs: TAG="nightly-$(date -u +"%Y%m%d")" sha256sum ${{ env.PROJECT_NAME }}_${TAG}* > ${TAG}-checksums.txt - - name: Upload release files on Arduino downloads servers - uses: docker://plugins/s3 - env: - PLUGIN_SOURCE: "${{ env.DIST_DIR }}/*" - PLUGIN_TARGET: "${{ env.AWS_PLUGIN_TARGET }}nightly" - PLUGIN_STRIP_PREFIX: "${{ env.DIST_DIR }}/" - PLUGIN_BUCKET: ${{ secrets.DOWNLOADS_BUCKET }} - AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} - AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + # - name: Upload release files on Arduino downloads servers + # uses: docker://plugins/s3 + # env: + # PLUGIN_SOURCE: "${{ env.DIST_DIR }}/*" + # PLUGIN_TARGET: "${{ env.AWS_PLUGIN_TARGET }}nightly" + # PLUGIN_STRIP_PREFIX: "${{ env.DIST_DIR }}/" + # PLUGIN_BUCKET: ${{ secrets.DOWNLOADS_BUCKET }} + # AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} + # AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} report: runs-on: ubuntu-latest diff --git a/.github/workflows/release-go-task.yml b/.github/workflows/release-go-task.yml index 19c7502811e..6e5c5a1eda5 100644 --- a/.github/workflows/release-go-task.yml +++ b/.github/workflows/release-go-task.yml @@ -262,19 +262,19 @@ jobs: # (all the files we need are in the DIST_DIR root) artifacts: ${{ env.DIST_DIR }}/* - - name: Upload release files on Arduino downloads servers - uses: docker://plugins/s3 - env: - PLUGIN_SOURCE: "${{ env.DIST_DIR }}/*" - PLUGIN_TARGET: ${{ env.AWS_PLUGIN_TARGET }} - PLUGIN_STRIP_PREFIX: "${{ env.DIST_DIR }}/" - PLUGIN_BUCKET: ${{ secrets.DOWNLOADS_BUCKET }} - AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} - AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - - - name: Update Homebrew formula - if: steps.prerelease.outputs.IS_PRE != 'true' - uses: dawidd6/action-homebrew-bump-formula@v3 - with: - token: ${{ secrets.ARDUINOBOT_GITHUB_TOKEN }} - formula: arduino-cli + # - name: Upload release files on Arduino downloads servers + # uses: docker://plugins/s3 + # env: + # PLUGIN_SOURCE: "${{ env.DIST_DIR }}/*" + # PLUGIN_TARGET: ${{ env.AWS_PLUGIN_TARGET }} + # PLUGIN_STRIP_PREFIX: "${{ env.DIST_DIR }}/" + # PLUGIN_BUCKET: ${{ secrets.DOWNLOADS_BUCKET }} + # AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} + # AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + + # - name: Update Homebrew formula + # if: steps.prerelease.outputs.IS_PRE != 'true' + # uses: dawidd6/action-homebrew-bump-formula@v3 + # with: + # token: ${{ secrets.ARDUINOBOT_GITHUB_TOKEN }} + # formula: arduino-cli From ce7456f32e0fd323cfbe12fd3fb6316cce9d317d Mon Sep 17 00:00:00 2001 From: umbynos Date: Fri, 30 Sep 2022 16:49:42 +0200 Subject: [PATCH 09/18] Upload nightly artifacts for testing --- .github/workflows/publish-go-nightly-task.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/publish-go-nightly-task.yml b/.github/workflows/publish-go-nightly-task.yml index 14defb65a34..ef16312d90d 100644 --- a/.github/workflows/publish-go-nightly-task.yml +++ b/.github/workflows/publish-go-nightly-task.yml @@ -244,6 +244,13 @@ jobs: # AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} # AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + - name: Upload artifacts + uses: actions/upload-artifact@v3 + with: + if-no-files-found: error + name: ${{ env.ARTIFACT_NAME }} + path: ${{ env.DIST_DIR }} + report: runs-on: ubuntu-latest needs: publish-nightly From 4f0ee9c9787f1bcbec44b4c7f4e13fd9f8504bde Mon Sep 17 00:00:00 2001 From: Umberto Baldi Date: Wed, 5 Oct 2022 18:49:39 +0200 Subject: [PATCH 10/18] add windows check certs --- .github/workflows/check-certificates.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/check-certificates.yml b/.github/workflows/check-certificates.yml index 589dd2412ed..47a2d43e499 100644 --- a/.github/workflows/check-certificates.yml +++ b/.github/workflows/check-certificates.yml @@ -36,6 +36,9 @@ jobs: - identifier: macOS signing certificate # Text used to identify certificate in notifications. certificate-secret: INSTALLER_CERT_MAC_P12 # Name of the secret that contains the certificate. password-secret: INSTALLER_CERT_MAC_PASSWORD # Name of the secret that contains the certificate password. + - identifier: Windows signing certificate + certificate-secret: WINDOWS_SIGNING_CERTIFICATE_PFX + password-secret: WINDOWS_SIGNING_CERTIFICATE_PASSWORD steps: - name: Set certificate path environment variable From b3472ffafd8f932bbbd1f76b54e44e6266d37d7a Mon Sep 17 00:00:00 2001 From: Umberto Baldi Date: Wed, 5 Oct 2022 18:50:32 +0200 Subject: [PATCH 11/18] bump to latest windows-sdk and document better specify timestamp algorithm. Apparently this is required in the latest version of the sdk --- .github/workflows/publish-go-nightly-task.yml | 7 +++++-- .github/workflows/release-go-task.yml | 7 +++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/.github/workflows/publish-go-nightly-task.yml b/.github/workflows/publish-go-nightly-task.yml index ef16312d90d..5957bdf2e92 100644 --- a/.github/workflows/publish-go-nightly-task.yml +++ b/.github/workflows/publish-go-nightly-task.yml @@ -172,7 +172,10 @@ jobs: env: INSTALLER_CERT_WINDOWS_PFX: "/tmp/cert.pfx" - SIGNTOOL_PATH: "C:/Program Files (x86)/Windows Kits/10/bin/10.0.17763.0/x86/signtool.exe" + # We are hardcoding the path for signtool because is not present on the windows PATH env var by default. + # Keep in mind that this path could change when upgrading to a new runner version + # https://github.com/actions/runner-images/blob/main/images/win/Windows2022-Readme.md#installed-windows-sdks + SIGNTOOL_PATH: "C:/Program Files (x86)/Windows Kits/10/bin/10.0.22621.0/x86/signtool.exe" steps: - name: Checkout repository @@ -206,7 +209,7 @@ jobs: MSI_FILE: ${{ steps.buildmsi.outputs.msi }} # this comes from .installer/cli.wixproj CERT_PASSWORD: ${{ secrets.INSTALLER_CERT_WINDOWS_PASSWORD }} run: | - "${{ env.SIGNTOOL_PATH }}" sign -d "Arduino CLI" -f ${{ env.INSTALLER_CERT_WINDOWS_PFX}} -p ${{ env.CERT_PASSWORD }} -fd sha256 -tr http://timestamp.digicert.com -v "${{ env.MSI_FILE }}" + "${{ 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 }}" - name: Upload artifacts uses: actions/upload-artifact@v3 diff --git a/.github/workflows/release-go-task.yml b/.github/workflows/release-go-task.yml index 6e5c5a1eda5..5a9228c919c 100644 --- a/.github/workflows/release-go-task.yml +++ b/.github/workflows/release-go-task.yml @@ -179,7 +179,10 @@ jobs: env: INSTALLER_CERT_WINDOWS_PFX: "/tmp/cert.pfx" - SIGNTOOL_PATH: "C:/Program Files (x86)/Windows Kits/10/bin/10.0.17763.0/x86/signtool.exe" + # We are hardcoding the path for signtool because is not present on the windows PATH env var by default. + # Keep in mind that this path could change when upgrading to a new runner version + # https://github.com/actions/runner-images/blob/main/images/win/Windows2022-Readme.md#installed-windows-sdks + SIGNTOOL_PATH: "C:/Program Files (x86)/Windows Kits/10/bin/10.0.22621.0/x86/signtool.exe" steps: - name: Checkout repository @@ -214,7 +217,7 @@ jobs: MSI_FILE: ${{ steps.buildmsi.outputs.msi }} # this comes from .installer/cli.wixproj CERT_PASSWORD: ${{ secrets.INSTALLER_CERT_WINDOWS_PASSWORD }} run: | - "${{ env.SIGNTOOL_PATH }}" sign -d "Arduino CLI" -f ${{ env.INSTALLER_CERT_WINDOWS_PFX}} -p ${{ env.CERT_PASSWORD }} -fd sha256 -tr http://timestamp.digicert.com -v "${{ env.MSI_FILE }}" + "${{ 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 }}" - name: Upload artifacts uses: actions/upload-artifact@v3 From 480372db38648e040083efce89cee1efe5a47261 Mon Sep 17 00:00:00 2001 From: Umberto Baldi Date: Wed, 5 Oct 2022 18:57:42 +0200 Subject: [PATCH 12/18] remove useless job id not used anymore (followup of #1883) --- .github/workflows/publish-go-nightly-task.yml | 4 ---- .github/workflows/release-go-task.yml | 4 ---- 2 files changed, 8 deletions(-) diff --git a/.github/workflows/publish-go-nightly-task.yml b/.github/workflows/publish-go-nightly-task.yml index 5957bdf2e92..d61c1c8c46a 100644 --- a/.github/workflows/publish-go-nightly-task.yml +++ b/.github/workflows/publish-go-nightly-task.yml @@ -61,9 +61,6 @@ jobs: name: Notarize ${{ matrix.artifact.name }} runs-on: macos-latest needs: create-nightly-artifacts - outputs: - checksum-darwin_amd64: ${{ steps.re-package.outputs.checksum-darwin_amd64 }} - checksum-darwin_arm64: ${{ steps.re-package.outputs.checksum-darwin_arm64 }} env: GON_CONFIG_PATH: gon.config.hcl @@ -141,7 +138,6 @@ jobs: gon "${{ env.GON_CONFIG_PATH }}" - name: Re-package binary - id: re-package working-directory: ${{ env.DIST_DIR }} # Repackage the signed binary replaced in place by Gon (ignoring the output zip file) run: | diff --git a/.github/workflows/release-go-task.yml b/.github/workflows/release-go-task.yml index 5a9228c919c..915bcfd8080 100644 --- a/.github/workflows/release-go-task.yml +++ b/.github/workflows/release-go-task.yml @@ -68,9 +68,6 @@ jobs: name: Notarize ${{ matrix.artifact.name }} runs-on: macos-latest needs: create-release-artifacts - outputs: - checksum-darwin_amd64: ${{ steps.re-package.outputs.checksum-darwin_amd64 }} - checksum-darwin_arm64: ${{ steps.re-package.outputs.checksum-darwin_arm64 }} env: GON_CONFIG_PATH: gon.config.hcl @@ -148,7 +145,6 @@ jobs: gon "${{ env.GON_CONFIG_PATH }}" - name: Re-package binary - id: re-package working-directory: ${{ env.DIST_DIR }} # Repackage the signed binary replaced in place by Gon (ignoring the output zip file) run: | From 78cb662013c5c50a6fb766cb4fac8a12657dbfbd Mon Sep 17 00:00:00 2001 From: Umberto Baldi Date: Wed, 5 Oct 2022 18:58:10 +0200 Subject: [PATCH 13/18] fixed comments --- installer/cli.wixproj | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/installer/cli.wixproj b/installer/cli.wixproj index 58888803550..e574aa9f168 100644 --- a/installer/cli.wixproj +++ b/installer/cli.wixproj @@ -3,12 +3,11 @@ Release x64 - + 0.1.0 $(MSBuildProjectName) package - $(DefineConstants); ProductVersion=$(ProductVersion); @@ -33,7 +32,7 @@ - + From 1d3bedf9f26668623c805630507a0ee183edca3e Mon Sep 17 00:00:00 2001 From: Umberto Baldi Date: Wed, 5 Oct 2022 19:03:31 +0200 Subject: [PATCH 14/18] It's useless to use the output from setupmsbuild --- .github/workflows/publish-go-nightly-task.yml | 5 +---- .github/workflows/release-go-task.yml | 5 +---- 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/.github/workflows/publish-go-nightly-task.yml b/.github/workflows/publish-go-nightly-task.yml index d61c1c8c46a..d63718e8134 100644 --- a/.github/workflows/publish-go-nightly-task.yml +++ b/.github/workflows/publish-go-nightly-task.yml @@ -184,18 +184,15 @@ jobs: path: ${{ env.DIST_DIR }} - name: Prepare PATH - id: setupmsbuild uses: microsoft/setup-msbuild@v1 - name: Build MSI id: buildmsi - env: - MSBUILD_PATH: ${{ steps.setupmsbuild.outputs.msbuildPath }} run: | WIX_TAG="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) PACKAGE_FILENAME="${{ env.PROJECT_NAME }}_${TAG}_Windows_64bit" SOURCE_DIR="${GITHUB_WORKSPACE}/${{ env.DIST_DIR }}/${{ env.PROJECT_NAME }}_windows_amd64/" - "${{ env.MSBUILD_PATH }}\MSBuild.exe" ./installer/cli.wixproj -p:SourceDir="$SOURCE_DIR" -p:OutputPath="${GITHUB_WORKSPACE}/${{ env.DIST_DIR }}" -p:OutputName="$PACKAGE_FILENAME" -p:ProductVersion="$WIX_TAG" + MSBuild.exe ./installer/cli.wixproj -p:SourceDir="$SOURCE_DIR" -p:OutputPath="${GITHUB_WORKSPACE}/${{ env.DIST_DIR }}" -p:OutputName="$PACKAGE_FILENAME" -p:ProductVersion="$WIX_TAG" - name: Save Win signing certificate to file run: echo "${{ secrets.INSTALLER_CERT_WINDOWS_PFX }}" | base64 --decode > ${{ env.INSTALLER_CERT_WINDOWS_PFX}} diff --git a/.github/workflows/release-go-task.yml b/.github/workflows/release-go-task.yml index 915bcfd8080..6c1b9846683 100644 --- a/.github/workflows/release-go-task.yml +++ b/.github/workflows/release-go-task.yml @@ -191,19 +191,16 @@ jobs: path: ${{ env.DIST_DIR }} - name: Prepare PATH - id: setupmsbuild uses: microsoft/setup-msbuild@v1 - name: Build MSI id: buildmsi - env: - MSBUILD_PATH: ${{ steps.setupmsbuild.outputs.msbuildPath }} run: | TAG="${GITHUB_REF/refs\/tags\//}" WIX_TAG="${TAG%%-*}" # removes "-rc*" since wix is not happy with it, this only affects RCs builds (error CNDL0108) PACKAGE_FILENAME="${{ env.PROJECT_NAME }}_${TAG}_Windows_64bit" SOURCE_DIR="${GITHUB_WORKSPACE}/${{ env.DIST_DIR }}/${{ env.PROJECT_NAME }}_windows_amd64/" - "${{ env.MSBUILD_PATH }}\MSBuild.exe" ./installer/cli.wixproj -p:SourceDir="$SOURCE_DIR" -p:OutputPath="${GITHUB_WORKSPACE}/${{ env.DIST_DIR }}" -p:OutputName="$PACKAGE_FILENAME" -p:ProductVersion="$WIX_TAG" + MSBuild.exe ./installer/cli.wixproj -p:SourceDir="$SOURCE_DIR" -p:OutputPath="${GITHUB_WORKSPACE}/${{ env.DIST_DIR }}" -p:OutputName="$PACKAGE_FILENAME" -p:ProductVersion="$WIX_TAG" - name: Save Win signing certificate to file run: echo "${{ secrets.INSTALLER_CERT_WINDOWS_PFX }}" | base64 --decode > ${{ env.INSTALLER_CERT_WINDOWS_PFX}} From 0fa00235f44912b51b436176e7d1d35c89b7e01b Mon Sep 17 00:00:00 2001 From: Umberto Baldi Date: Thu, 6 Oct 2022 12:26:03 +0200 Subject: [PATCH 15/18] use YAML-style syntax --- .github/workflows/publish-go-nightly-task.yml | 4 +++- .github/workflows/release-go-task.yml | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/publish-go-nightly-task.yml b/.github/workflows/publish-go-nightly-task.yml index d63718e8134..d1a25d6ffbd 100644 --- a/.github/workflows/publish-go-nightly-task.yml +++ b/.github/workflows/publish-go-nightly-task.yml @@ -215,7 +215,9 @@ jobs: publish-nightly: runs-on: ubuntu-latest - needs: [notarize-macos, create-windows-installer] + needs: + - notarize-macos + - create-windows-installer steps: - name: Download artifact diff --git a/.github/workflows/release-go-task.yml b/.github/workflows/release-go-task.yml index 6c1b9846683..0db31768a72 100644 --- a/.github/workflows/release-go-task.yml +++ b/.github/workflows/release-go-task.yml @@ -223,7 +223,9 @@ jobs: create-release: runs-on: ubuntu-latest - needs: [notarize-macos, create-windows-installer] + needs: + - notarize-macos + - create-windows-installer steps: - name: Download artifact From f302f9f574a3d3a7775ac8d4b3c7e7c1587ab7e7 Mon Sep 17 00:00:00 2001 From: Umberto Baldi Date: Wed, 5 Oct 2022 19:08:31 +0200 Subject: [PATCH 16/18] try to uniform the usage of version/tag across the workflow --- .github/workflows/publish-go-nightly-task.yml | 24 +++++++++++++------ .github/workflows/release-go-task.yml | 15 ++++++++---- Taskfile.yml | 5 ++++ 3 files changed, 33 insertions(+), 11 deletions(-) diff --git a/.github/workflows/publish-go-nightly-task.yml b/.github/workflows/publish-go-nightly-task.yml index d1a25d6ffbd..ed76a6d99ba 100644 --- a/.github/workflows/publish-go-nightly-task.yml +++ b/.github/workflows/publish-go-nightly-task.yml @@ -20,6 +20,8 @@ on: jobs: create-nightly-artifacts: + outputs: + version: ${{ steps.get-version.outputs.version }} runs-on: ubuntu-latest strategy: @@ -50,6 +52,12 @@ jobs: NIGHTLY: true run: task dist:${{ matrix.os }} + - name: Output Version + id: get-version + env: + NIGHTLY: true + run: echo "::set-output name=version::$(task get-version)" + - name: Upload artifacts uses: actions/upload-artifact@v3 with: @@ -144,8 +152,8 @@ jobs: # GitHub's upload/download-artifact@v2 actions don't preserve file permissions, # so we need to add execution permission back until the action is made to do this. chmod +x "${{ env.PROJECT_NAME }}_osx_${{ matrix.artifact.name }}/${{ env.PROJECT_NAME }}" - # Use of an array here is required for globbing - PACKAGE_FILENAME=(${{ env.PROJECT_NAME }}_nightly-*${{ matrix.artifact.path }}) + VERSION=${{ needs.create-nightly-artifacts.outputs.version }} + PACKAGE_FILENAME=(${{ env.PROJECT_NAME }}_${VERSION}_${{ matrix.artifact.path }}) tar -czvf "$PACKAGE_FILENAME" \ -C "${{ env.PROJECT_NAME }}_osx_${{ matrix.artifact.name }}/" "${{ env.PROJECT_NAME }}" \ -C ../../ LICENSE.txt @@ -189,10 +197,11 @@ jobs: - name: Build MSI id: buildmsi run: | - WIX_TAG="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) - PACKAGE_FILENAME="${{ env.PROJECT_NAME }}_${TAG}_Windows_64bit" + VERSION=${{ needs.create-nightly-artifacts.outputs.version }} + 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) + PACKAGE_FILENAME="${{ env.PROJECT_NAME }}_${VERSION}_Windows_64bit" SOURCE_DIR="${GITHUB_WORKSPACE}/${{ env.DIST_DIR }}/${{ env.PROJECT_NAME }}_windows_amd64/" - MSBuild.exe ./installer/cli.wixproj -p:SourceDir="$SOURCE_DIR" -p:OutputPath="${GITHUB_WORKSPACE}/${{ env.DIST_DIR }}" -p:OutputName="$PACKAGE_FILENAME" -p:ProductVersion="$WIX_TAG" + MSBuild.exe ./installer/cli.wixproj -p:SourceDir="$SOURCE_DIR" -p:OutputPath="${GITHUB_WORKSPACE}/${{ env.DIST_DIR }}" -p:OutputName="$PACKAGE_FILENAME" -p:ProductVersion="$WIX_VERSION" - name: Save Win signing certificate to file run: echo "${{ secrets.INSTALLER_CERT_WINDOWS_PFX }}" | base64 --decode > ${{ env.INSTALLER_CERT_WINDOWS_PFX}} @@ -216,6 +225,7 @@ jobs: publish-nightly: runs-on: ubuntu-latest needs: + - create-nightly-artifacts - notarize-macos - create-windows-installer @@ -229,8 +239,8 @@ jobs: - name: Create checksum file working-directory: ${{ env.DIST_DIR}} run: | - TAG="nightly-$(date -u +"%Y%m%d")" - sha256sum ${{ env.PROJECT_NAME }}_${TAG}* > ${TAG}-checksums.txt + VERSION=${{ needs.create-nightly-artifacts.outputs.version }} + sha256sum ${{ env.PROJECT_NAME }}_${VERSION}* > ${VERSION}-checksums.txt # - name: Upload release files on Arduino downloads servers # uses: docker://plugins/s3 diff --git a/.github/workflows/release-go-task.yml b/.github/workflows/release-go-task.yml index 0db31768a72..9e8f552091f 100644 --- a/.github/workflows/release-go-task.yml +++ b/.github/workflows/release-go-task.yml @@ -17,6 +17,8 @@ on: jobs: create-release-artifacts: + outputs: + version: ${{ steps.get-version.outputs.version }} runs-on: ubuntu-latest strategy: @@ -57,6 +59,10 @@ jobs: - name: Build run: task dist:${{ matrix.os }} + - name: Output Version + id: get-version + run: echo "::set-output name=version::$(task get-version)" + - name: Upload artifacts uses: actions/upload-artifact@v3 with: @@ -151,7 +157,7 @@ jobs: # GitHub's upload/download-artifact@v2 actions don't preserve file permissions, # so we need to add execution permission back until the action is made to do this. chmod +x "${{ env.PROJECT_NAME }}_osx_${{ matrix.artifact.name }}/${{ env.PROJECT_NAME }}" - TAG="${GITHUB_REF/refs\/tags\//}" + TAG=${{ needs.create-release-artifacts.outputs.version }} PACKAGE_FILENAME="${{ env.PROJECT_NAME }}_${TAG}_${{ matrix.artifact.path }}" tar -czvf "$PACKAGE_FILENAME" \ -C "${{ env.PROJECT_NAME }}_osx_${{ matrix.artifact.name }}/" "${{ env.PROJECT_NAME }}" \ @@ -196,7 +202,7 @@ jobs: - name: Build MSI id: buildmsi run: | - TAG="${GITHUB_REF/refs\/tags\//}" + TAG=${{ needs.create-release-artifacts.outputs.version }} WIX_TAG="${TAG%%-*}" # removes "-rc*" since wix is not happy with it, this only affects RCs builds (error CNDL0108) PACKAGE_FILENAME="${{ env.PROJECT_NAME }}_${TAG}_Windows_64bit" SOURCE_DIR="${GITHUB_WORKSPACE}/${{ env.DIST_DIR }}/${{ env.PROJECT_NAME }}_windows_amd64/" @@ -224,6 +230,7 @@ jobs: create-release: runs-on: ubuntu-latest needs: + - create-release-artifacts - notarize-macos - create-windows-installer @@ -237,7 +244,7 @@ jobs: - name: Create checksum file working-directory: ${{ env.DIST_DIR}} run: | - TAG="${GITHUB_REF/refs\/tags\//}" + TAG=${{ needs.create-release-artifacts.outputs.version }} sha256sum ${{ env.PROJECT_NAME }}_${TAG}* > ${TAG}-checksums.txt - name: Identify Prerelease @@ -247,7 +254,7 @@ jobs: run: | wget -q -P /tmp https://github.com/fsaintjacques/semver-tool/archive/3.0.0.zip unzip -p /tmp/3.0.0.zip semver-tool-3.0.0/src/semver >/tmp/semver && chmod +x /tmp/semver - if [[ "$(/tmp/semver get prerel "${GITHUB_REF/refs\/tags\//}")" ]]; then echo "::set-output name=IS_PRE::true"; fi + if [[ "$(/tmp/semver get prerel ${{ needs.create-release-artifacts.outputs.version }} )" ]]; then echo "::set-output name=IS_PRE::true"; fi - name: Create Github Release and upload artifacts uses: ncipollo/release-action@v1 diff --git a/Taskfile.yml b/Taskfile.yml index 9d24febc3b1..c1a4c052040 100755 --- a/Taskfile.yml +++ b/Taskfile.yml @@ -327,6 +327,11 @@ tasks: cmds: - poetry run mkdocs serve + get-version: + desc: Returns the version used in the project + cmds: + - echo {{.VERSION}} + vars: PROJECT_NAME: "arduino-cli" DIST_DIR: "dist" From 5274f2dee95881a933ec92ac366a64f818161953 Mon Sep 17 00:00:00 2001 From: umbynos Date: Fri, 30 Sep 2022 16:55:15 +0200 Subject: [PATCH 17/18] Revert "Upload nightly artifacts for testing" && "temporarily disable s3 push and homebrew update for testing" This reverts commit 3123dfd8ea0b2fa4d2fd33aa4ccd5696f34355d2. This reverts commit 24fa25ca65be2d8f149729f3c169479e1848fa51. --- .github/workflows/publish-go-nightly-task.yml | 25 ++++++--------- .github/workflows/release-go-task.yml | 32 +++++++++---------- 2 files changed, 25 insertions(+), 32 deletions(-) diff --git a/.github/workflows/publish-go-nightly-task.yml b/.github/workflows/publish-go-nightly-task.yml index ed76a6d99ba..84af74ad45d 100644 --- a/.github/workflows/publish-go-nightly-task.yml +++ b/.github/workflows/publish-go-nightly-task.yml @@ -242,22 +242,15 @@ jobs: VERSION=${{ needs.create-nightly-artifacts.outputs.version }} sha256sum ${{ env.PROJECT_NAME }}_${VERSION}* > ${VERSION}-checksums.txt - # - name: Upload release files on Arduino downloads servers - # uses: docker://plugins/s3 - # env: - # PLUGIN_SOURCE: "${{ env.DIST_DIR }}/*" - # PLUGIN_TARGET: "${{ env.AWS_PLUGIN_TARGET }}nightly" - # PLUGIN_STRIP_PREFIX: "${{ env.DIST_DIR }}/" - # PLUGIN_BUCKET: ${{ secrets.DOWNLOADS_BUCKET }} - # AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} - # AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - - - name: Upload artifacts - uses: actions/upload-artifact@v3 - with: - if-no-files-found: error - name: ${{ env.ARTIFACT_NAME }} - path: ${{ env.DIST_DIR }} + - name: Upload release files on Arduino downloads servers + uses: docker://plugins/s3 + env: + PLUGIN_SOURCE: "${{ env.DIST_DIR }}/*" + PLUGIN_TARGET: "${{ env.AWS_PLUGIN_TARGET }}nightly" + PLUGIN_STRIP_PREFIX: "${{ env.DIST_DIR }}/" + PLUGIN_BUCKET: ${{ secrets.DOWNLOADS_BUCKET }} + AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} report: runs-on: ubuntu-latest diff --git a/.github/workflows/release-go-task.yml b/.github/workflows/release-go-task.yml index 9e8f552091f..132727b0f7f 100644 --- a/.github/workflows/release-go-task.yml +++ b/.github/workflows/release-go-task.yml @@ -267,19 +267,19 @@ jobs: # (all the files we need are in the DIST_DIR root) artifacts: ${{ env.DIST_DIR }}/* - # - name: Upload release files on Arduino downloads servers - # uses: docker://plugins/s3 - # env: - # PLUGIN_SOURCE: "${{ env.DIST_DIR }}/*" - # PLUGIN_TARGET: ${{ env.AWS_PLUGIN_TARGET }} - # PLUGIN_STRIP_PREFIX: "${{ env.DIST_DIR }}/" - # PLUGIN_BUCKET: ${{ secrets.DOWNLOADS_BUCKET }} - # AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} - # AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - - # - name: Update Homebrew formula - # if: steps.prerelease.outputs.IS_PRE != 'true' - # uses: dawidd6/action-homebrew-bump-formula@v3 - # with: - # token: ${{ secrets.ARDUINOBOT_GITHUB_TOKEN }} - # formula: arduino-cli + - name: Upload release files on Arduino downloads servers + uses: docker://plugins/s3 + env: + PLUGIN_SOURCE: "${{ env.DIST_DIR }}/*" + PLUGIN_TARGET: ${{ env.AWS_PLUGIN_TARGET }} + PLUGIN_STRIP_PREFIX: "${{ env.DIST_DIR }}/" + PLUGIN_BUCKET: ${{ secrets.DOWNLOADS_BUCKET }} + AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + + - name: Update Homebrew formula + if: steps.prerelease.outputs.IS_PRE != 'true' + uses: dawidd6/action-homebrew-bump-formula@v3 + with: + token: ${{ secrets.ARDUINOBOT_GITHUB_TOKEN }} + formula: arduino-cli From 09c64e62e543bf7569e97e5b2e2a31fef2d4d112 Mon Sep 17 00:00:00 2001 From: Umberto Baldi <34278123+umbynos@users.noreply.github.com> Date: Mon, 17 Oct 2022 15:03:49 +0200 Subject: [PATCH 18/18] Apply suggestions from code review Co-authored-by: per1234 --- .github/workflows/check-certificates.yml | 4 ++-- .github/workflows/publish-go-nightly-task.yml | 2 +- .github/workflows/release-go-task.yml | 2 +- Taskfile.yml | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/check-certificates.yml b/.github/workflows/check-certificates.yml index 47a2d43e499..9ca01502255 100644 --- a/.github/workflows/check-certificates.yml +++ b/.github/workflows/check-certificates.yml @@ -37,8 +37,8 @@ jobs: certificate-secret: INSTALLER_CERT_MAC_P12 # Name of the secret that contains the certificate. password-secret: INSTALLER_CERT_MAC_PASSWORD # Name of the secret that contains the certificate password. - identifier: Windows signing certificate - certificate-secret: WINDOWS_SIGNING_CERTIFICATE_PFX - password-secret: WINDOWS_SIGNING_CERTIFICATE_PASSWORD + certificate-secret: INSTALLER_CERT_WINDOWS_PASSWORD + password-secret: INSTALLER_CERT_WINDOWS_PFX steps: - name: Set certificate path environment variable diff --git a/.github/workflows/publish-go-nightly-task.yml b/.github/workflows/publish-go-nightly-task.yml index 84af74ad45d..821673c8ce0 100644 --- a/.github/workflows/publish-go-nightly-task.yml +++ b/.github/workflows/publish-go-nightly-task.yml @@ -56,7 +56,7 @@ jobs: id: get-version env: NIGHTLY: true - run: echo "::set-output name=version::$(task get-version)" + run: echo "::set-output name=version::$(task general:get-version)" - name: Upload artifacts uses: actions/upload-artifact@v3 diff --git a/.github/workflows/release-go-task.yml b/.github/workflows/release-go-task.yml index 132727b0f7f..5d026f422bb 100644 --- a/.github/workflows/release-go-task.yml +++ b/.github/workflows/release-go-task.yml @@ -61,7 +61,7 @@ jobs: - name: Output Version id: get-version - run: echo "::set-output name=version::$(task get-version)" + run: echo "::set-output name=version::$(task general:get-version)" - name: Upload artifacts uses: actions/upload-artifact@v3 diff --git a/Taskfile.yml b/Taskfile.yml index c1a4c052040..23a2b6561aa 100755 --- a/Taskfile.yml +++ b/Taskfile.yml @@ -327,7 +327,7 @@ tasks: cmds: - poetry run mkdocs serve - get-version: + general:get-version: desc: Returns the version used in the project cmds: - echo {{.VERSION}}