Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rename executable and releases to Arduino Cloud Agent #961

Merged
merged 10 commits into from
Jul 17, 2024
2 changes: 1 addition & 1 deletion .github/workflows/publish-go-tester-task.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ on:
repository_dispatch:

env:
PROJECT_NAME: arduino-create-agent
PROJECT_NAME: arduino-cloud-agent
GO_VERSION: "1.21"

jobs:
Expand Down
89 changes: 45 additions & 44 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ permissions:

env:
# As defined by the Taskfile's PROJECT_NAME variable
PROJECT_NAME: arduino-create-agent
PROJECT_NAME: arduino-cloud-agent
TARGET: "/CreateAgent/Stable/"
VERSION_TARGET: "arduino-create-static/agent-metadata/"
AWS_REGION: "us-east-1" # or https://github.com/aws/aws-cli/issues/5623
Expand Down Expand Up @@ -183,7 +183,7 @@ jobs:

runs-on: macos-12
env:
EXE_PATH: "skel/ArduinoCreateAgent.app/Contents/MacOS/"
EXE_PATH: "skel/ArduinoCloudAgent.app/Contents/MacOS/"

steps:
- name: Checkout
Expand All @@ -205,21 +205,21 @@ jobs:
- name: Make executable
run: chmod -v +x ${{ env.EXE_PATH }}${{ env.PROJECT_NAME }}

- name: Rename executable to Arduino_Create_Agent
run: mv -v ${{ env.EXE_PATH }}${{ env.PROJECT_NAME }} ${{ env.EXE_PATH }}Arduino_Create_Agent
- name: Rename executable to Arduino_Cloud_Agent
run: mv -v ${{ env.EXE_PATH }}${{ env.PROJECT_NAME }} ${{ env.EXE_PATH }}Arduino_Cloud_Agent

- name: get year
run: echo "YEAR=$(date "+%Y")" >> $GITHUB_ENV

- name: Generate Info.plist for MacOS
run: |
cat > skel/ArduinoCreateAgent.app/Contents/Info.plist <<EOF
cat > skel/ArduinoCloudAgent.app/Contents/Info.plist <<EOF
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"><plist version="1.0"><dict><key>CFBundlePackageType</key><string>APPL</string><key>CFBundleInfoDictionaryVersion</key><string>6.0</string>

<key>CFBundleIconFile</key> <string>AppIcon.icns</string>

<key>CFBundleName</key> <string>Arduino Create Agent</string>
<key>CFBundleExecutable</key> <string>Arduino_Create_Agent</string>
<key>CFBundleName</key> <string>Arduino Cloud Agent</string>
<key>CFBundleExecutable</key> <string>Arduino_Cloud_Agent</string>
<key>CFBundleIdentifier</key> <string>create.arduino.cc</string>

<key>CFBundleVersion</key> <string>${GITHUB_REF##*/}</string>
Expand All @@ -234,14 +234,14 @@ jobs:
EOF

- name: Tar bundle to keep permissions
run: tar -cvf ArduinoCreateAgent.app_${{ matrix.arch }}.tar -C skel/ .
run: tar -cvf ArduinoCloudAgent.app_${{ matrix.arch }}.tar -C skel/ .

- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
if-no-files-found: error
name: ArduinoCreateAgent.app_${{ matrix.arch }}
path: ArduinoCreateAgent.app_${{ matrix.arch }}.tar
name: ArduinoCloudAgent.app_${{ matrix.arch }}
path: ArduinoCloudAgent.app_${{ matrix.arch }}.tar

# The notarize-macos job will download the macos bundle from the previous job, sign, notarize and re-upload it, uploading it also on s3 download servers for the autoupdate.
notarize-macos:
Expand All @@ -262,10 +262,10 @@ jobs:
- name: Download artifact
uses: actions/download-artifact@v4
with:
name: ArduinoCreateAgent.app_${{ matrix.arch }}
name: ArduinoCloudAgent.app_${{ matrix.arch }}

- name: un-Tar bundle
run: tar -xvf ArduinoCreateAgent.app_${{ matrix.arch }}.tar
run: tar -xvf ArduinoCloudAgent.app_${{ matrix.arch }}.tar

- name: Import Code-Signing Certificates
run: |
Expand Down Expand Up @@ -305,7 +305,7 @@ jobs:
run: |
cat > "${{ env.GON_CONFIG_PATH }}" <<EOF
# See: https://github.com/mitchellh/gon#configuration-file
source = ["ArduinoCreateAgent.app"]
source = ["ArduinoCloudAgent.app"]
bundle_id = "cc.arduino.${{ env.PROJECT_NAME }}"

sign {
Expand All @@ -318,8 +318,9 @@ jobs:
- name: Sign app bundle
run: gon -log-level=debug -log-json "${{ env.GON_CONFIG_PATH }}"

# the zip name must not change because it would interfere with the autoupdate process on macos
- name: Zip output app bundle
run: ditto -c -k ArduinoCreateAgent.app/ ArduinoCreateAgent.app_${{ matrix.arch }}_notarized.zip
run: ditto -c -k ArduinoCloudAgent.app/ ArduinoCreateAgent.app_${{ matrix.arch }}_notarized.zip

- name: Remove gon used for code signing
run: |
Expand Down Expand Up @@ -377,7 +378,7 @@ jobs:
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: ArduinoCreateAgent.app_${{ matrix.arch }}_notarized
name: ArduinoCloudAgent.app_${{ matrix.arch }}_notarized
path: ArduinoCreateAgent.app_${{ matrix.arch }}_notarized.zip
if-no-files-found: error

Expand All @@ -389,7 +390,7 @@ jobs:
env:
# vars used by installbuilder
INSTALLBUILDER_PATH: "/opt/installbuilder-23.11.0/bin/builder"
INSTALLER_VARS: "project.outputDirectory=$PWD project.version=${GITHUB_REF##*/} workspace=$PWD realname=Arduino_Create_Agent"
INSTALLER_VARS: "project.outputDirectory=$PWD project.version=${GITHUB_REF##*/} workspace=$PWD realname=Arduino_Cloud_Agent"

strategy:
fail-fast: false # if one os is failing continue nonetheless
Expand Down Expand Up @@ -434,8 +435,8 @@ jobs:
run: chmod -v +x artifacts/${{ matrix.platform-name }}/${{ env.PROJECT_NAME }}*
if: matrix.os == 'ubuntu-20.04'

- name: Rename executable to Arduino_Create_Agent
run: mv -v artifacts/${{ matrix.platform-name }}/${{ env.PROJECT_NAME }}${{ matrix.extension }} artifacts/${{ matrix.platform-name }}/Arduino_Create_Agent${{ matrix.extension }}
- name: Rename executable to Arduino_Cloud_Agent
run: mv -v artifacts/${{ matrix.platform-name }}/${{ env.PROJECT_NAME }}${{ matrix.extension }} artifacts/${{ matrix.platform-name }}/Arduino_Cloud_Agent${{ matrix.extension }}

- name: Save InstallBuilder license to file
run: echo "${{ secrets.INSTALLER_LICENSE }}" > /tmp/license.xml
Expand All @@ -444,14 +445,14 @@ jobs:
run: ${{ env.INSTALLBUILDER_PATH }} build installer.xml ${{ matrix.installbuilder-name }} --verbose --license /tmp/license.xml --setvars ${{ env.INSTALLER_VARS }} architecture=${{ matrix.arch }}

- name: Generate archive
run: tar -czvf ArduinoCreateAgent-${GITHUB_REF##*/}-${{ matrix.platform-name }}-${{ matrix.arch }}-installer.tar.gz ArduinoCreateAgent-${GITHUB_REF##*/}-${{ matrix.platform-name }}-${{ matrix.arch }}-installer${{matrix.installer-extension}}
run: tar -czvf ArduinoCloudAgent-${GITHUB_REF##*/}-${{ matrix.platform-name }}-${{ matrix.arch }}-installer.tar.gz ArduinoCloudAgent-${GITHUB_REF##*/}-${{ matrix.platform-name }}-${{ matrix.arch }}-installer${{matrix.installer-extension}}
if: matrix.os == 'ubuntu-20.04'

- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: ArduinoCreateAgent-${{ matrix.platform-name }}-${{ matrix.arch }}
path: ArduinoCreateAgent*
name: ArduinoCloudAgent-${{ matrix.platform-name }}-${{ matrix.arch }}
path: ArduinoCloudAgent*
if-no-files-found: error

# This job will sign the Windows installer
Expand All @@ -477,7 +478,7 @@ jobs:
- name: Download artifact
uses: actions/download-artifact@v4
with:
name: ArduinoCreateAgent-windows-${{ matrix.arch }}
name: ArduinoCloudAgent-windows-${{ matrix.arch }}

- name: Save Win signing certificate to file
run: echo "${{ secrets.INSTALLER_CERT_WINDOWS_CER }}" | base64 --decode > ${{ env.INSTALLER_CERT_WINDOWS_CER}}
Expand All @@ -488,18 +489,18 @@ jobs:
CONTAINER_NAME: ${{ secrets.INSTALLER_CERT_WINDOWS_CONTAINER }}
# https://stackoverflow.com/questions/17927895/automate-extended-validation-ev-code-signing-with-safenet-etoken
run: |
"${{ env.SIGNTOOL_PATH }}" sign -d "Arduino Create Agent" -f ${{ env.INSTALLER_CERT_WINDOWS_CER}} -csp "eToken Base Cryptographic Provider" -k "[{{${{ env.CERT_PASSWORD }}}}]=${{ env.CONTAINER_NAME }}" -fd sha256 -tr http://timestamp.digicert.com -td SHA256 -v "ArduinoCreateAgent-${GITHUB_REF##*/}-windows-${{ matrix.arch }}-installer.exe"
"${{ env.SIGNTOOL_PATH }}" sign -d "Arduino Cloud Agent" -f ${{ env.INSTALLER_CERT_WINDOWS_CER}} -csp "eToken Base Cryptographic Provider" -k "[{{${{ env.CERT_PASSWORD }}}}]=${{ env.CONTAINER_NAME }}" -fd sha256 -tr http://timestamp.digicert.com -td SHA256 -v "ArduinoCloudAgent-${GITHUB_REF##*/}-windows-${{ matrix.arch }}-installer.exe"

- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
if-no-files-found: error
name: ArduinoCreateAgent-windows-${{ matrix.arch }}-signed
path: ArduinoCreateAgent-*-windows-${{ matrix.arch }}-installer.exe
name: ArduinoCloudAgent-windows-${{ matrix.arch }}-signed
path: ArduinoCloudAgent-*-windows-${{ matrix.arch }}-installer.exe

# This step is needed because the self hosted runner does not delete files automatically
- name: Clean up EXE
run: rm ArduinoCreateAgent-*-windows-${{ matrix.arch }}-installer.exe
run: rm ArduinoCloudAgent-*-windows-${{ matrix.arch }}-installer.exe

# This job will generate a dmg mac installer, sign/notarize it.
generate-sign-dmg:
Expand All @@ -519,30 +520,30 @@ jobs:
- name: Download artifact
uses: actions/download-artifact@v4
with:
name: ArduinoCreateAgent.app_${{ matrix.arch }}_notarized
path: ArduinoCreateAgent.app
name: ArduinoCloudAgent.app_${{ matrix.arch }}_notarized
path: ArduinoCloudAgent.app

- name: unzip artifact
working-directory: ArduinoCreateAgent.app
working-directory: ArduinoCloudAgent.app
run: |
unzip ArduinoCreateAgent.app_${{ matrix.arch }}_notarized.zip
rm ArduinoCreateAgent.app_${{ matrix.arch }}_notarized.zip

- name: Install create-dmg
run: brew install create-dmg

- name: Genarate DMG
- name: Generate DMG
run: |
create-dmg \
--volname "ArduinoCreateAgent" \
--volname "ArduinoCloudAgent" \
--background "installer_icons/background.tiff" \
--window-pos 200 120 \
--window-size 500 320 \
--icon-size 80 \
--icon "ArduinoCreateAgent.app" 125 150 \
--icon "ArduinoCloudAgent.app" 125 150 \
--app-drop-link 375 150 \
"ArduinoCreateAgent-${GITHUB_REF##*/}-osx-${{ matrix.arch }}-installer.dmg" \
"ArduinoCreateAgent.app"
"ArduinoCloudAgent-${GITHUB_REF##*/}-osx-${{ matrix.arch }}-installer.dmg" \
"ArduinoCloudAgent.app"

- name: Import Code-Signing Certificates
run: |
Expand Down Expand Up @@ -572,7 +573,7 @@ jobs:
# gon does not allow env variables in config file (https://github.com/mitchellh/gon/issues/20)
run: |
cat > gon.config_installer.hcl <<EOF
source = ["ArduinoCreateAgent-${GITHUB_REF##*/}-osx-${{ matrix.arch }}-installer.dmg"]
source = ["ArduinoCloudAgent-${GITHUB_REF##*/}-osx-${{ matrix.arch }}-installer.dmg"]
bundle_id = "cc.arduino.${{ env.PROJECT_NAME }}-installer"

sign {
Expand All @@ -581,7 +582,7 @@ jobs:

# Ask Gon for zip output to force notarization process to take place.
zip {
output_path = "ArduinoCreateAgent.app_${{ matrix.arch }}_notarized.zip"
output_path = "ArduinoCloudAgent.app_${{ matrix.arch }}_notarized.zip"
}
EOF

Expand All @@ -590,13 +591,13 @@ jobs:

# tar dmg file to keep executable permission
- name: Tar files to keep permissions
run: tar -cvf ArduinoCreateAgent-${GITHUB_REF##*/}-osx-${{ matrix.arch }}-installer.tar ArduinoCreateAgent-${GITHUB_REF##*/}-osx-${{ matrix.arch }}-installer.dmg
run: tar -cvf ArduinoCloudAgent-${GITHUB_REF##*/}-osx-${{ matrix.arch }}-installer.tar ArduinoCloudAgent-${GITHUB_REF##*/}-osx-${{ matrix.arch }}-installer.dmg

- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: ArduinoCreateAgent-osx-${{ matrix.arch }}
path: ArduinoCreateAgent*.tar
name: ArduinoCloudAgent-osx-${{ matrix.arch }}
path: ArduinoCloudAgent*.tar
if-no-files-found: error

create-release:
Expand All @@ -617,11 +618,11 @@ jobs:
- name: prepare artifacts for the release
run: |
mkdir release
chmod -v +x ArduinoCreateAgent-linux-amd64/*.run
mv -v ArduinoCreateAgent-linux-amd64/* release/
cat ArduinoCreateAgent-osx-amd64/*.tar | tar -xvf - -i -C release/
rm -v release/._ArduinoCreateAgent*.dmg
mv -v ArduinoCreateAgent-windows*-signed/* release/
chmod -v +x ArduinoCloudAgent-linux-amd64/*.run
mv -v ArduinoCloudAgent-linux-amd64/* release/
cat ArduinoCloudAgent-osx-amd64/*.tar | tar -xvf - -i -C release/
rm -v release/._ArduinoCloudAgent*.dmg
mv -v ArduinoCloudAgent-windows*-signed/* release/

- name: VirusTotal Scan
id: virustotal_step
Expand Down
4 changes: 2 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@

bufferflow_tinyg_old.md

/arduino-create-agent*
!/arduino-create-agent*/
/arduino-cloud-agent*
!/arduino-cloud-agent*/
rsrc.syso

snapshot/*
Expand Down
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# arduino-create-agent
# arduino-cloud-agent

[![License: AGPL v3.0](https://img.shields.io/badge/License-AGPL%20v3.0-blue)](https://www.gnu.org/licenses/agpl-3.0.html)
[![Test Go status](https://github.com/arduino/arduino-create-agent/actions/workflows/test-go-task.yml/badge.svg)](https://github.com/arduino/arduino-create-agent/actions/workflows/test-go-task.yml)
Expand All @@ -8,7 +8,7 @@
[![Check Go Dependencies status](https://github.com/arduino/arduino-create-agent/actions/workflows/check-go-dependencies-task.yml/badge.svg)](https://github.com/arduino/arduino-create-agent/actions/workflows/check-go-dependencies-task.yml)
[![Check Go status](https://github.com/arduino/arduino-create-agent/actions/workflows/check-go-task.yml/badge.svg)](https://github.com/arduino/arduino-create-agent/actions/workflows/check-go-task.yml)

The Arduino Create Agent is a single binary that will sit on the traybar and work in the background. It allows you to use the [Arduino Create applications](https://create.arduino.cc) to seamlessly upload code to any USB connected Arduino board (or Yún in LAN) directly from the browser.
The Arduino Cloud Agent is a single binary that will sit on the traybar and work in the background. It allows you to use the [Arduino Create applications](https://create.arduino.cc) to seamlessly upload code to any USB connected Arduino board (or Yún in LAN) directly from the browser.

## Architecture

Expand All @@ -18,7 +18,7 @@ The Arduino Create Agent is a single binary that will sit on the traybar and wor
| Browser |
| | Web socket +----------------------+ flashes +---------------+
| +---------------------------+ |<-------------->| +------------>| |
| | | | | Arduino Create Agent | | Arduino Board |
| | | | | Arduino Cloud Agent | | Arduino Board |
| | Arduino Create Web Editor | +--------------->| |<------------+ |
| | | | REST API +----------------------+ serial +---------------+
| +---------------------------+ |
Expand Down Expand Up @@ -74,7 +74,7 @@ By signing off your commits, you agree to the following agreement, also known as

## Authors and acknowledgment

arduino-create-agent is a fork of @[johnlauer](https://github.com/johnlauer)'s [serial-port-json-server](https://github.com/johnlauer/serial-port-json-server) (which we really want to thank for his kindness and great work)
arduino-cloud-agent is a fork of @[johnlauer](https://github.com/johnlauer)'s [serial-port-json-server](https://github.com/johnlauer/serial-port-json-server) (which we really want to thank for his kindness and great work)

The history has been rewritten to keep the repo small (thus removing all binaries committed in the past)

Expand Down
8 changes: 4 additions & 4 deletions Taskfile.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ tasks:
cmds:
- task: go:build
vars:
PROJECT_NAME: arduino-create-agent_cli
PROJECT_NAME: arduino-cloud-agent_cli
ADDITIONAL_FLAGS: -tags cli

go:build-win:
Expand All @@ -46,7 +46,7 @@ tasks:
- rsrc -arch {{.GOARCH}} -manifest manifest.xml # GOARCH shoud be either amd64 or 386
- task: go:build
vars:
PROJECT_NAME: arduino-create-agent.exe
PROJECT_NAME: arduino-cloud-agent.exe
WIN_FLAGS: -H=windowsgui
- rm *.syso # rm file to avoid compilation problems on other platforms
vars:
Expand All @@ -58,7 +58,7 @@ tasks:
cmds:
- task: go:build
vars:
PROJECT_NAME: arduino-create-agent_cli.exe
PROJECT_NAME: arduino-cloud-agent_cli.exe
ADDITIONAL_FLAGS: -tags cli

# Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/assets/test-go-task/Taskfile.yml
Expand Down Expand Up @@ -140,7 +140,7 @@ tasks:

vars:
# Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/assets/release-go-task/Taskfile.yml
PROJECT_NAME: arduino-create-agent
PROJECT_NAME: arduino-cloud-agent
# build vars
COMMIT:
sh: echo "$(git log --no-show-signature -n 1 --format=%h)"
Expand Down
Loading
Loading