From fa409dddf3f8dfe16acac219eb7dcb54ca2c0916 Mon Sep 17 00:00:00 2001 From: umbynos Date: Thu, 19 Nov 2020 17:24:45 +0100 Subject: [PATCH 01/11] add workaround step to check semver and trigger prerelease just like the arduino-cli does --- .github/workflows/release.yml | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 3acfbb48c..64cc00fb2 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -334,6 +334,14 @@ jobs: - name: Download artifact uses: actions/download-artifact@v2 # download all the artifacts + - name: Identify Prerelease + # This is a workaround while waiting for create-release action to implement auto pre-release based on tag + id: prerelease + run: | + wget -q -P /tmp https://github.com/fsaintjacques/semver-tool/archive/3.1.0.zip + unzip -p /tmp/3.1.0.zip semver-tool-3.1.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 + # mandatory step because upload-release-action does not support multiple folders - name: prepare artifacts for the release run: | @@ -352,7 +360,7 @@ jobs: release_name: ${{ github.ref }} body: "THIS IS A TEST RELEASE" draft: false - prerelease: true # see later how to handle this (maybe just a check on "-dev" will be sufficient) + prerelease: ${{ steps.prerelease.outputs.IS_PRE }} - name: Upload release files on Github uses: svenstaro/upload-release-action@v2 From 5cb8106ae855064e5ab89e26225d8ce66e3750c4 Mon Sep 17 00:00:00 2001 From: umbynos Date: Fri, 20 Nov 2020 16:20:26 +0100 Subject: [PATCH 02/11] add "release on download servers" step (just like in the arduino-cli) comment github release for testing purposes only --- .github/workflows/release.yml | 45 ++++++++++++++++++++++------------- 1 file changed, 28 insertions(+), 17 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 64cc00fb2..ea6243196 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -351,21 +351,32 @@ jobs: cat ArduinoCreateAgent-osx/*.tar | tar -xvf - -i -C release/ mv -v ArduinoCreateAgent-windows/* release/ - - name: Create Github Release - uses: actions/create-release@v1 + # - name: Create Github Release + # uses: actions/create-release@v1 + # env: + # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + # with: + # tag_name: ${{ github.ref }} + # release_name: ${{ github.ref }} + # body: "THIS IS A TEST RELEASE" + # draft: false + # prerelease: ${{ steps.prerelease.outputs.IS_PRE }} + + # - name: Upload release files on Github + # uses: svenstaro/upload-release-action@v2 + # with: + # repo_token: ${{ secrets.GITHUB_TOKEN }} + # tag: ${{ github.ref }} + # file_glob: true # If set to true, the file argument can be a glob pattern + # file: release/* + + - name: Upload release files on Arduino downloads servers + uses: docker://plugins/s3 env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - tag_name: ${{ github.ref }} - release_name: ${{ github.ref }} - body: "THIS IS A TEST RELEASE" - draft: false - prerelease: ${{ steps.prerelease.outputs.IS_PRE }} - - - name: Upload release files on Github - uses: svenstaro/upload-release-action@v2 - with: - repo_token: ${{ secrets.GITHUB_TOKEN }} - tag: ${{ github.ref }} - file_glob: true # If set to true, the file argument can be a glob pattern - file: release/* + PLUGIN_SOURCE: "release/*" + PLUGIN_TARGET: "/tmp/CreateBridge/staging/" + PLUGIN_STRIP_PREFIX: "release/" + PLUGIN_BUCKET: ${{ secrets.DOWNLOADS_BUCKET }} + AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + if: steps.prerelease.outputs.IS_PRE != 'true' \ No newline at end of file From a95078d1bd4e3a712b57b73fca47e4eda58a6aaa Mon Sep 17 00:00:00 2001 From: umbynos Date: Fri, 20 Nov 2020 18:20:10 +0100 Subject: [PATCH 03/11] rm useless _ArduinoCreateAgent*.dmg mac file --- .github/workflows/release.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index ea6243196..7daf5f797 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -349,6 +349,7 @@ jobs: chmod -v +x ArduinoCreateAgent-linux-x64/*.run mv -v ArduinoCreateAgent-linux-x64/* release/ cat ArduinoCreateAgent-osx/*.tar | tar -xvf - -i -C release/ + rm _ArduinoCreateAgent*.dmg mv -v ArduinoCreateAgent-windows/* release/ # - name: Create Github Release From fcb58d6be4379a6ccbc3bb7493fca910998488a8 Mon Sep 17 00:00:00 2001 From: umbynos Date: Fri, 20 Nov 2020 18:33:00 +0100 Subject: [PATCH 04/11] try a different (easier) approach in pushing download files do not use drone.io docker container anymore, use aws cli instead (already installed on github runners) --- .github/workflows/release.yml | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 7daf5f797..88720cf8e 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -372,12 +372,9 @@ jobs: # file: release/* - name: Upload release files on Arduino downloads servers - uses: docker://plugins/s3 env: - PLUGIN_SOURCE: "release/*" PLUGIN_TARGET: "/tmp/CreateBridge/staging/" - PLUGIN_STRIP_PREFIX: "release/" - PLUGIN_BUCKET: ${{ secrets.DOWNLOADS_BUCKET }} AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - if: steps.prerelease.outputs.IS_PRE != 'true' \ No newline at end of file + run: aws s3 sync release/ s3://${{ secrets.DOWNLOADS_BUCKET }}${{ env.PLUGIN_TARGET }} --include "*" + if: steps.prerelease.outputs.IS_PRE != 'true' From 624a03d70427560db2154ef143381573b5ae9767 Mon Sep 17 00:00:00 2001 From: umbynos Date: Fri, 20 Nov 2020 18:56:20 +0100 Subject: [PATCH 05/11] fix rm not finding file to remove --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 88720cf8e..96c5ad462 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -349,7 +349,7 @@ jobs: chmod -v +x ArduinoCreateAgent-linux-x64/*.run mv -v ArduinoCreateAgent-linux-x64/* release/ cat ArduinoCreateAgent-osx/*.tar | tar -xvf - -i -C release/ - rm _ArduinoCreateAgent*.dmg + rm -v release/_ArduinoCreateAgent*.dmg mv -v ArduinoCreateAgent-windows/* release/ # - name: Create Github Release From 7869e9b69687d58bfece0b01b924a01c43e7f8e1 Mon Sep 17 00:00:00 2001 From: umbynos Date: Fri, 20 Nov 2020 19:18:51 +0100 Subject: [PATCH 06/11] forgot "." --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 96c5ad462..9c99b639e 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -349,7 +349,7 @@ jobs: chmod -v +x ArduinoCreateAgent-linux-x64/*.run mv -v ArduinoCreateAgent-linux-x64/* release/ cat ArduinoCreateAgent-osx/*.tar | tar -xvf - -i -C release/ - rm -v release/_ArduinoCreateAgent*.dmg + rm -v release/._ArduinoCreateAgent*.dmg mv -v ArduinoCreateAgent-windows/* release/ # - name: Create Github Release From 9ed31d41ec226e29f859cdb5b323cd21fc3fa6eb Mon Sep 17 00:00:00 2001 From: umbynos Date: Mon, 23 Nov 2020 14:24:05 +0100 Subject: [PATCH 07/11] move env vars (shared between multiple steps), add version file, change path --- .github/workflows/release.yml | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 9c99b639e..a2b180809 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -328,6 +328,10 @@ jobs: create-release: runs-on: ubuntu-latest needs: code-sign-mac-installers + env: + PLUGIN_TARGET: "/tmp/CreateBridgeStable/" # TODO remove tmp + AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} steps: @@ -372,9 +376,11 @@ jobs: # file: release/* - name: Upload release files on Arduino downloads servers - env: - PLUGIN_TARGET: "/tmp/CreateBridge/staging/" - AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} - AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} run: aws s3 sync release/ s3://${{ secrets.DOWNLOADS_BUCKET }}${{ env.PLUGIN_TARGET }} --include "*" if: steps.prerelease.outputs.IS_PRE != 'true' + + - name: Update release file version + run: | + echo '{"Version": "${GITHUB_REF##*/}"}' > /tmp/installer-version + aws s3 cp /tmp/installer-version s3://arduino-create-static/agent-metadata/agent-installer-version.json + if: steps.prerelease.outputs.IS_PRE != 'true' \ No newline at end of file From e993b15749a76af285e70274907038d77161d5de Mon Sep 17 00:00:00 2001 From: umbynos Date: Mon, 23 Nov 2020 15:43:30 +0100 Subject: [PATCH 08/11] introduce ' characters as they are mandatory for character expansion --- .github/workflows/release.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index a2b180809..d28f0e166 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -381,6 +381,6 @@ jobs: - name: Update release file version run: | - echo '{"Version": "${GITHUB_REF##*/}"}' > /tmp/installer-version + echo '{"Version": "'${GITHUB_REF##*/}'"}' > /tmp/installer-version aws s3 cp /tmp/installer-version s3://arduino-create-static/agent-metadata/agent-installer-version.json - if: steps.prerelease.outputs.IS_PRE != 'true' \ No newline at end of file + if: steps.prerelease.outputs.IS_PRE != 'true' From 319fa27de274cf0dce4660c08dfc5f2a88bf6451 Mon Sep 17 00:00:00 2001 From: umbynos Date: Wed, 25 Nov 2020 12:06:00 +0100 Subject: [PATCH 09/11] remove update json file version (useless in this phase) This was failing because aws credentials are not suited for this bucket --- .github/workflows/release.yml | 6 ------ 1 file changed, 6 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index d28f0e166..244eadac2 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -378,9 +378,3 @@ jobs: - name: Upload release files on Arduino downloads servers run: aws s3 sync release/ s3://${{ secrets.DOWNLOADS_BUCKET }}${{ env.PLUGIN_TARGET }} --include "*" if: steps.prerelease.outputs.IS_PRE != 'true' - - - name: Update release file version - run: | - echo '{"Version": "'${GITHUB_REF##*/}'"}' > /tmp/installer-version - aws s3 cp /tmp/installer-version s3://arduino-create-static/agent-metadata/agent-installer-version.json - if: steps.prerelease.outputs.IS_PRE != 'true' From abd5d6259c066b3ad59220f062026e3b34549e76 Mon Sep 17 00:00:00 2001 From: umbynos Date: Wed, 25 Nov 2020 12:12:48 +0100 Subject: [PATCH 10/11] use version (maj.min) instead of (maj.min.bugf) Only temporarily (to make 1.1 release) --- .github/workflows/release.yml | 50 +++++++++++++++++++++++------------ 1 file changed, 33 insertions(+), 17 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 244eadac2..4c7bddf9a 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -148,7 +148,7 @@ jobs: env: # vars used by installbuilder INSTALLBUILDER_PATH: "/opt/installbuilder-20.9.0/bin/builder" - INSTALLER_VARS: "project.outputDirectory=$PWD project.version=${GITHUB_REF##*/} workspace=$PWD realname=Arduino_Create_Bridge" + # INSTALLER_VARS: "project.outputDirectory=$PWD project.version=${GITHUB_REF##*/} workspace=$PWD realname=Arduino_Create_Bridge" # vars passed to installbuilder to install https certs automatically CERT_INSTALL: "ask_certificates_install=CI" # win(edge),mac(safari) NO_CERT_INSTALL: "ask_certificates_install=CS" # linux @@ -186,6 +186,16 @@ jobs: steps: + # workaround to strip bugfix number from semver (only to make 1.1 release) I will change this in the future + - name: Set version env vars + # VERSION will be available only in the next step + run: | + echo "VERSION=${GITHUB_REF##*/}" >> $GITHUB_ENV + + - name: Set installer env vars + run: | + echo INSTALLER_VARS="project.outputDirectory=$PWD project.version=${VERSION%.*} workspace=$PWD realname=Arduino_Create_Bridge" >> $GITHUB_ENV + - name: Checkout uses: actions/checkout@v2 with: @@ -225,22 +235,22 @@ jobs: # installbuilder reads the env vars with certs paths and use it to sign the installer. - name: Launch Bitrock installbuilder-20 with CERT_INSTALL && CHOICE_CERT_INSTALL run: | - ${{ env.INSTALLBUILDER_PATH }} build installer.xml ${{ matrix.install-builder-name }} --verbose --license /tmp/license.xml --setvars ${{ env.INSTALLER_VARS }} ${{ env.CERT_INSTALL }} - mv -v ArduinoCreateAgent-${GITHUB_REF##*/}-${{ matrix.install-builder-name }}-installer-CI${{matrix.installer-extension}} ArduinoCreateAgent-${GITHUB_REF##*/}-${{ matrix.install-builder-name }}-installer-${{matrix.browser}}${{matrix.installer-extension}} - ${{ env.INSTALLBUILDER_PATH }} build installer.xml ${{ matrix.install-builder-name }} --verbose --license /tmp/license.xml --setvars ${{ env.INSTALLER_VARS }} ${{ env.CHOICE_CERT_INSTALL }} - cp -vr ArduinoCreateAgent-${GITHUB_REF##*/}-${{ matrix.install-builder-name }}-installer-CC${{matrix.installer-extension}} ArduinoCreateAgent-${GITHUB_REF##*/}-${{ matrix.install-builder-name }}-installer-chrome${{matrix.installer-extension}} - mv -v ArduinoCreateAgent-${GITHUB_REF##*/}-${{ matrix.install-builder-name }}-installer-CC${{matrix.installer-extension}} ArduinoCreateAgent-${GITHUB_REF##*/}-${{ matrix.install-builder-name }}-installer-firefox${{matrix.installer-extension}} - rm -r ArduinoCreateAgent-${GITHUB_REF##*/}-${{ matrix.install-builder-name }}-installer-C* + ${{ env.INSTALLBUILDER_PATH }} build installer.xml ${{ matrix.install-builder-name }} --verbose --license /tmp/license.xml --setvars ${INSTALLER_VARS} ${{ env.CERT_INSTALL }} + mv -v ArduinoCreateAgent-${VERSION%.*}-${{ matrix.install-builder-name }}-installer-CI${{matrix.installer-extension}} ArduinoCreateAgent-${VERSION%.*}-${{ matrix.install-builder-name }}-installer-${{matrix.browser}}${{matrix.installer-extension}} + ${{ env.INSTALLBUILDER_PATH }} build installer.xml ${{ matrix.install-builder-name }} --verbose --license /tmp/license.xml --setvars ${INSTALLER_VARS} ${{ env.CHOICE_CERT_INSTALL }} + cp -vr ArduinoCreateAgent-${VERSION%.*}-${{ matrix.install-builder-name }}-installer-CC${{matrix.installer-extension}} ArduinoCreateAgent-${VERSION%.*}-${{ matrix.install-builder-name }}-installer-chrome${{matrix.installer-extension}} + mv -v ArduinoCreateAgent-${VERSION%.*}-${{ matrix.install-builder-name }}-installer-CC${{matrix.installer-extension}} ArduinoCreateAgent-${VERSION%.*}-${{ matrix.install-builder-name }}-installer-firefox${{matrix.installer-extension}} + rm -r ArduinoCreateAgent-${VERSION%.*}-${{ matrix.install-builder-name }}-installer-C* if: matrix.operating-system == 'windows-latest' || matrix.operating-system == 'macos-latest' # linux - name: Launch Bitrock installbuilder-20 with NO_CERT_INSTALL run: | - ${{ env.INSTALLBUILDER_PATH }} build installer.xml ${{ matrix.install-builder-name }} --verbose --license /tmp/license.xml --setvars ${{ env.INSTALLER_VARS }} ${{ env.NO_CERT_INSTALL }} - cp -v ArduinoCreateAgent-${GITHUB_REF##*/}-${{ matrix.install-builder-name }}-installer-CS.run ArduinoCreateAgent-${GITHUB_REF##*/}-${{ matrix.install-builder-name }}-installer-chrome.run - mv -v ArduinoCreateAgent-${GITHUB_REF##*/}-${{ matrix.install-builder-name }}-installer-CS.run ArduinoCreateAgent-${GITHUB_REF##*/}-${{ matrix.install-builder-name }}-installer-firefox.run - cp -v ArduinoCreateAgent-${GITHUB_REF##*/}-${{ matrix.install-builder-name }}-installer-CS.tar.gz ArduinoCreateAgent-${GITHUB_REF##*/}-${{ matrix.install-builder-name }}-installer-chrome.tar.gz - mv -v ArduinoCreateAgent-${GITHUB_REF##*/}-${{ matrix.install-builder-name }}-installer-CS.tar.gz ArduinoCreateAgent-${GITHUB_REF##*/}-${{ matrix.install-builder-name }}-installer-firefox.tar.gz + ${{ env.INSTALLBUILDER_PATH }} build installer.xml ${{ matrix.install-builder-name }} --verbose --license /tmp/license.xml --setvars ${INSTALLER_VARS} ${{ env.NO_CERT_INSTALL }} + cp -v ArduinoCreateAgent-${VERSION%.*}-${{ matrix.install-builder-name }}-installer-CS.run ArduinoCreateAgent-${VERSION%.*}-${{ matrix.install-builder-name }}-installer-chrome.run + mv -v ArduinoCreateAgent-${VERSION%.*}-${{ matrix.install-builder-name }}-installer-CS.run ArduinoCreateAgent-${VERSION%.*}-${{ matrix.install-builder-name }}-installer-firefox.run + cp -v ArduinoCreateAgent-${VERSION%.*}-${{ matrix.install-builder-name }}-installer-CS.tar.gz ArduinoCreateAgent-${VERSION%.*}-${{ matrix.install-builder-name }}-installer-chrome.tar.gz + mv -v ArduinoCreateAgent-${VERSION%.*}-${{ matrix.install-builder-name }}-installer-CS.tar.gz ArduinoCreateAgent-${VERSION%.*}-${{ matrix.install-builder-name }}-installer-firefox.tar.gz if: matrix.operating-system == 'ubuntu-latest' - name: Upload artifacts @@ -267,9 +277,15 @@ jobs: name: ArduinoCreateAgent-osx path: ArduinoCreateAgent-osx + # workaround to strip bugfix number from semver (only to make 1.1 release) I will change this in the future + - name: Set version env vars + # VERSION will be available only in the next step + run: | + echo "VERSION=${GITHUB_REF##*/}" >> $GITHUB_ENV + # zip artifacts do not mantain executable permission - name: Make executable - run: chmod -v +x ArduinoCreateAgent-osx/ArduinoCreateAgent-${GITHUB_REF##*/}-osx-installer-${{ matrix.browser }}.app/Contents/MacOS/* + run: chmod -v +x ArduinoCreateAgent-osx/ArduinoCreateAgent-${VERSION%.*}-osx-installer-${{ matrix.browser }}.app/Contents/MacOS/* - name: Import Code-Signing Certificates env: @@ -292,7 +308,7 @@ jobs: # gon does not allow env variables in config file (https://github.com/mitchellh/gon/issues/20) run: | cat > gon.config_installer.hcl < Date: Wed, 25 Nov 2020 14:47:06 +0100 Subject: [PATCH 11/11] finalize workflow (s3 download path will be overwritten) --- .github/workflows/release.yml | 38 +++++++++++++++++------------------ 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 4c7bddf9a..3e8af6cd1 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -345,7 +345,7 @@ jobs: runs-on: ubuntu-latest needs: code-sign-mac-installers env: - PLUGIN_TARGET: "/tmp/CreateBridgeStable/" # TODO remove tmp + PLUGIN_TARGET: "/CreateBridgeStable/" AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} @@ -372,24 +372,24 @@ jobs: rm -v release/._ArduinoCreateAgent*.dmg mv -v ArduinoCreateAgent-windows/* release/ - # - name: Create Github Release - # uses: actions/create-release@v1 - # env: - # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - # with: - # tag_name: ${{ github.ref }} - # release_name: ${{ github.ref }} - # body: "THIS IS A TEST RELEASE" - # draft: false - # prerelease: ${{ steps.prerelease.outputs.IS_PRE }} - - # - name: Upload release files on Github - # uses: svenstaro/upload-release-action@v2 - # with: - # repo_token: ${{ secrets.GITHUB_TOKEN }} - # tag: ${{ github.ref }} - # file_glob: true # If set to true, the file argument can be a glob pattern - # file: release/* + - name: Create Github Release + uses: actions/create-release@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + tag_name: ${{ github.ref }} + release_name: ${{ github.ref }} + body: "" + draft: false + prerelease: ${{ steps.prerelease.outputs.IS_PRE }} + + - name: Upload release files on Github + uses: svenstaro/upload-release-action@v2 + with: + repo_token: ${{ secrets.GITHUB_TOKEN }} + tag: ${{ github.ref }} + file_glob: true # If set to true, the file argument can be a glob pattern + file: release/* - name: Upload release files on Arduino downloads servers run: aws s3 sync release/ s3://${{ secrets.DOWNLOADS_BUCKET }}${{ env.PLUGIN_TARGET }} --include "*"