Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
359 commits
Select commit Hold shift + click to select a range
128439e
feat(appStop): on imola we could just disable the micro
lucarin91 Jun 26, 2025
4bb70ac
ci: add commands to include example into deb pkg
mirkoCrobu Jun 26, 2025
64b5f73
feat: HTTP endpoints to upgrade deb packages
dido18 Jun 27, 2025
796442b
feat: use dev-latest for now
lucarin91 Jun 27, 2025
8c142c7
bump to bricks version 0.1.1
alessio-perugini Jun 30, 2025
93e2d30
feat: Add sound devices to main container
rjtokenring Jun 30, 2025
be253d4
bump indexes to 0.1.2
alessio-perugini Jul 1, 2025
5bd3803
feat: add model api
mirkoCrobu Jul 1, 2025
a9ea6e0
Fixed OS generated temp paths.
ubidefeo Jul 1, 2025
fe4ec08
Bump indexes to 0.1.3
alessio-perugini Jul 1, 2025
063cbe7
fix regression bump
alessio-perugini Jul 2, 2025
33d57ce
feat: implement SSE event handling for system updates and upgrades
dido18 Jul 2, 2025
83b4213
docs: Add `update` endpoint to docs api
dido18 Jul 3, 2025
3d1bee3
feat: add all new arduino-cli updates
lucarin91 Jul 4, 2025
8ba5745
Refactor bricks api
alessio-perugini Jul 4, 2025
9252336
API refactor apps endpoint
alessio-perugini Jul 4, 2025
8fa019f
id change proposal
alessio-perugini Jul 4, 2025
5638a9f
debian update repository to point towards production
alessio-perugini Jul 7, 2025
4d34c49
refact(orchestrator): make the apt upgrade as a package that handle t…
dido18 Jul 7, 2025
7b16ee6
api: expose system resources endpoints
alessio-perugini Jul 8, 2025
940d5b1
fix: update endpoints require needrestart package
lucarin91 Jul 8, 2025
828bb1b
Fix compile with profile
giulio93 Jul 9, 2025
6e7f618
feat(appsync): support network access
lucarin91 Jul 9, 2025
b3621ac
feat: add path field in app detail
lucarin91 Jul 9, 2025
c8482bd
chore: move adb dockerfile
lucarin91 Jul 9, 2025
cff538c
chore: add ListApp tests
lucarin91 Jul 9, 2025
350543e
Bump bricks to 0.1.6
alessio-perugini Jul 9, 2025
5feb91f
bricksindex: refactor remove redundant layer
alessio-perugini Jul 10, 2025
f3ae915
Bricks api refactor
giulio93 Jul 10, 2025
e45653c
bump bricks to 0.1.7
alessio-perugini Jul 11, 2025
d29ee19
update to golang 1.24.5
alessio-perugini Jul 11, 2025
82a0e7e
doc: use correct response type for /v1/apps
alessio-perugini Jul 11, 2025
905fa85
feat(remoteocd): fix for imola
lucarin91 Jul 11, 2025
481e59c
feat: add --reload in start app
lucarin91 Jul 11, 2025
98f1df2
orchestrator: add support to `category` prop on brick
alessio-perugini Jul 11, 2025
134d36e
chore(deb): change router to arduino-router
lucarin91 Jul 11, 2025
a1f0a57
fix: remove ssh from adb connection
lucarin91 Jul 15, 2025
1857691
feat: add system init
lucarin91 Jul 15, 2025
4cfa8b5
orchestrator: reduce output when stopping the sketch.
alessio-perugini Jul 16, 2025
46d3aad
feat: add production wails origin to cors middleware
giacomocusinato Jul 16, 2025
393f47b
Feat 409 enhance api bricks response
mirkoCrobu Jul 16, 2025
bd9ebb1
chore: remove script included in debian image
lucarin91 Jul 16, 2025
7e5ffec
update: add update of core
alessio-perugini Jul 16, 2025
a9dea87
board: add EnsureBoardIsInstalled
alessio-perugini Jul 16, 2025
a3d1624
debian: orchestrator skip user and group creation if already present
alessio-perugini Jul 16, 2025
0d2b73d
feat(appsync): ignore app.yml/yaml in sync
lucarin91 Jul 16, 2025
41bfe9a
feat: add error response for ai models endpoint
mirkoCrobu Jul 16, 2025
2d3994a
feat: bump python image
lucarin91 Jul 16, 2025
a404e8d
board: skip slow test in CI
alessio-perugini Jul 17, 2025
c6cb75e
system: preload also models runner images
alessio-perugini Jul 17, 2025
1a17bfd
Runner version as a variable
giulio93 Jul 17, 2025
0cf2d3e
Feat/407 enhance error response instance bricks
mirkoCrobu Jul 18, 2025
822a253
fix: sketch doesn't stop on imola
lucarin91 Jul 18, 2025
08ca323
Fix app list command return the duplicates examples
alessio-perugini Jul 18, 2025
702b65e
chore(ci): enable windows tests
lucarin91 Jul 18, 2025
89315dd
Feat/406 add error response app api
mirkoCrobu Jul 18, 2025
2e4d6ee
cmd: expose `--tail` under `logs` command
alessio-perugini Jul 18, 2025
2c8eafc
fix: adb file sync on windows
lucarin91 Jul 18, 2025
a69b150
feat: enhance error resposne for resources api
mirkoCrobu Jul 21, 2025
8473756
[WIRE-1021] Mount devices dependencies to dependent containers (if re…
rjtokenring Jul 22, 2025
d25f9e5
brick development flow improvements
alessio-perugini Jul 22, 2025
7dbc0a3
feat: make the daemon accesable only on localhost
lucarin91 Jul 22, 2025
dbe582e
arduino-app-cli: make log level configurable
alessio-perugini Jul 23, 2025
2793fac
Increase default cli log to INFO
rjtokenring Jul 24, 2025
30da99d
starting a second app fails but the status remain running
alessio-perugini Jul 24, 2025
848e33d
Feat/441 expose app ports via api
mirkoCrobu Jul 24, 2025
55226d3
Feat/455 improve app patch response
mirkoCrobu Jul 24, 2025
6ada01d
feat: enable pprof endpoint for orchestrator
dido18 Jul 24, 2025
24c2a15
orchestrator: fix provision in case the container need to be pulled
alessio-perugini Jul 25, 2025
4e9dd36
orchestrator: add SketchBuildPath in ArduinoApp
alessio-perugini Jul 25, 2025
062e809
feat: lazy loading all the services
alessio-perugini Jul 25, 2025
a43abb9
Add license and copyright information
Xayton Jul 28, 2025
aa8ee3e
orchestrator: change default apps and data folder
alessio-perugini Jul 28, 2025
fd086ff
Feat/80 standardize cli output
mirkoCrobu Jul 28, 2025
98a11d4
Add custom EI model directory
rjtokenring Jul 28, 2025
897f90d
orchestrator: rename to ArduinoApps
alessio-perugini Jul 28, 2025
5005a80
orchestrator: rename old `arduino-apps` references
alessio-perugini Jul 28, 2025
0301273
add sketch logs for API and CLI at start up time
mirkoCrobu Jul 28, 2025
da4467d
rename orchestrator
alessio-perugini Jul 29, 2025
ad0db03
fix: update set-wifi.sh to use SSID variable
dido18 Jul 29, 2025
9f44058
arduino-app-cli: add app ID completion Add completion for app ID, exp…
alessio-perugini Jul 29, 2025
2921bdc
refactor cli
alessio-perugini Jul 29, 2025
25528ab
Feat/454 set example as default
mirkoCrobu Jul 29, 2025
8ee9673
arduino-app-cli: update sudoers permission
alessio-perugini Jul 29, 2025
be08fea
fix: remove apt-get upgrade from sudoers
lucarin91 Jul 29, 2025
bae395c
Add copyrights file to the arduino-app-cli and router .deb packages
giulio93 Jul 29, 2025
f84092e
release: fix missing ruby and licensee dep
alessio-perugini Jul 29, 2025
d9d2599
feat: enhance create app, fix mandatory model in upsert brick
mirkoCrobu Jul 29, 2025
85ef32d
chore: remove old setup scripts
lucarin91 Jul 30, 2025
125f27f
feat(pkg/board): expose board name and name
lucarin91 Jul 30, 2025
a97fad1
nit pick: set log level
lucarin91 Jul 30, 2025
1af0f4a
chore: bump arduino-cli to `cmaglie:do-not-recompile-sketch`
lucarin91 Jul 30, 2025
f31498e
refactor assets embed.FS in a store struct
alessio-perugini Aug 1, 2025
97e4f97
board: use go paths helper instead of cmd
alessio-perugini Aug 5, 2025
b0eb377
ci: improve license check
alessio-perugini Aug 5, 2025
90fa6ab
Fix compose logs
alessio-perugini Aug 7, 2025
e4ccd66
pin compose version
alessio-perugini Aug 7, 2025
e35d1d6
feat: fix parsing id insted of path
mirkoCrobu Aug 8, 2025
8b99994
orchestrator/app: add ProvisioningStateDir, AppComposeFilePath methods
alessio-perugini Aug 11, 2025
a2261fd
Fix cli table not properly aligned
alessio-perugini Aug 12, 2025
98540a3
refactor brick service
alessio-perugini Aug 12, 2025
7b3f904
gotta go to go125
alessio-perugini Aug 14, 2025
500bd6f
feat(pkg/board): add custom name property in network mode
lucarin91 Aug 18, 2025
3ba6ba8
feat: add auto pull image at boot time
mirkoCrobu Aug 18, 2025
38eedb1
[WIRE-1057] Ensure to execute referenced container as arduino user
rjtokenring Aug 19, 2025
9f57307
refactor: decouple config
alessio-perugini Aug 19, 2025
98dc341
Add GPU support loading DRI devices and assigning related groupse
rjtokenring Aug 20, 2025
c11f63a
Fix empty group addition
rjtokenring Aug 20, 2025
c764808
Refactor: relocate assets from mbed to FileSystem
mirkoCrobu Aug 20, 2025
07a5355
Skip validation in logs parser for compose loading
rjtokenring Aug 20, 2025
29b36f3
Added monitor API handler
cmaglie Aug 20, 2025
786c2c6
refactor: provision pt.1
alessio-perugini Aug 21, 2025
b390472
Enable always pull container by default
alessio-perugini Aug 21, 2025
f35bf9c
fix dynamic-prosioning saving path
mirkoCrobu Aug 21, 2025
5286f24
refactor config
alessio-perugini Aug 21, 2025
e925d59
chore: remove unused method
lucarin91 Aug 21, 2025
14018ec
Add brick api-docs, and examples
mirkoCrobu Aug 21, 2025
b8de1ca
feat: add feature flag for pre-embargo stuff
lucarin91 Aug 21, 2025
e8e5a2f
feat(cmd): add update command
lucarin91 Aug 21, 2025
a583b6f
fix: system update --yes
lucarin91 Aug 21, 2025
2f79b26
orchestrator: create override only after pre imbargo
alessio-perugini Aug 22, 2025
15a5d40
feat(board): add local board
lucarin91 Aug 22, 2025
34a8bfa
chore: remove not used board local implementation
lucarin91 Aug 24, 2025
6ef0534
refactor provision pt2
alessio-perugini Aug 25, 2025
29844d1
arduino-app-cli: improve autocompletion
alessio-perugini Aug 25, 2025
1ef8dc8
fix: remote local copy past error
lucarin91 Aug 25, 2025
cd0a068
provision: fix port not correctly set for brick without containers
alessio-perugini Aug 25, 2025
e076e06
fix: allow wails prod origin for Windows
giacomocusinato Aug 25, 2025
7c3c8ee
build: strip debug info for released go binary
alessio-perugini Aug 26, 2025
6db4ce9
store: unify brickID parsing
alessio-perugini Aug 26, 2025
d446e47
provision: Default video device selection
rjtokenring Aug 26, 2025
4f8b310
orchestrator: fix logs
alessio-perugini Aug 26, 2025
e560dd2
App status consider also app deps
alessio-perugini Aug 26, 2025
368c3f3
Mount v4l device folder to image for by-id/path support
rjtokenring Aug 26, 2025
9af611c
provision: refactor devices function
alessio-perugini Aug 26, 2025
cee3809
feat: allow any user to set network connection
lucarin91 Aug 27, 2025
1ebe9b8
gomod: bump arduino-cli to fix zombie discovery processes
alessio-perugini Aug 28, 2025
c4ca4e1
Cache the Arduino CLI instance in board.FromFQBN command
cmaglie Aug 29, 2025
05e6144
orchestrator: remove feature flagging
alessio-perugini Aug 29, 2025
f806e8a
Align image names to new repository naming convention
rjtokenring Aug 29, 2025
373ff10
debian: embed 0.2.9 files in .deb
alessio-perugini Aug 29, 2025
99f7afd
feat: add adbd update in autoupdate
lucarin91 Aug 29, 2025
01a8b6e
Update references to the new ECR container registry
Xayton Sep 1, 2025
5c87448
feat(env): add `HOST_IP` to env var [WIRE-1078]
stefanotorneo Sep 1, 2025
20a7814
chore: fix imports
lucarin91 Sep 2, 2025
a087352
feat: update the python runner to 0.3.1
lucarin91 Sep 2, 2025
ff87254
chore: add influxdb in system init
lucarin91 Sep 2, 2025
b5cf1ba
feat: add friendly message in case of docker errors
mirkoCrobu Sep 2, 2025
ba58852
fix: adbd update version
lucarin91 Sep 2, 2025
9db4803
fix(update): increase timeout of core download
lucarin91 Sep 2, 2025
680200d
fix: allow arduino to set hostname
lucarin91 Sep 3, 2025
f135485
Implemented Origin checks for websockets
cmaglie Sep 3, 2025
8d5c660
feat(arduino-app-cli): Upgrade the docker images and show the logs du…
dido18 Sep 4, 2025
3aafb64
chore(cors): add CORS tests
dido18 Sep 4, 2025
a47b013
Feat/327 cleanup operation
mirkoCrobu Sep 5, 2025
76350bc
fix: add sudoers file for changing hostname
lucarin91 Sep 8, 2025
7ebab19
chore: rename the wails-test app and make it work again the integrati…
dido18 Sep 8, 2025
35b6c92
feat(pkg/board): add is board set
lucarin91 Sep 8, 2025
43eef18
feat(provision): add condition to `dependsOn` services list [WIRE-1091]
stefanotorneo Sep 9, 2025
b953b92
fix: refuse to run as root
lucarin91 Sep 9, 2025
bdf4eb2
Support for multiple bricks per model
rjtokenring Sep 9, 2025
34251d4
feat: disable status leds while app runs
lucarin91 Sep 10, 2025
410e0c6
feat(pkg/board): add SetPassword api
lucarin91 Sep 10, 2025
dd30128
refactor: disable led while app runs
lucarin91 Sep 10, 2025
d2910d0
feat: add linux led control in python
lucarin91 Sep 10, 2025
0c8b670
chore: remove wails app test
dido18 Sep 10, 2025
a3b7266
fix: improve the sketch launch message
Xayton Sep 10, 2025
495ae42
fix: add a way to run sudo commands with interactive password prompt
Xayton Sep 11, 2025
df4728e
chore: remove old stuff
lucarin91 Sep 15, 2025
b9692b7
chore: use app methods in provisioning
lucarin91 Sep 15, 2025
5293c11
fix: bump python runner to 0.4.1
lucarin91 Sep 15, 2025
39671c7
Allows UnoQ boards detection even if platform is not installed
cmaglie Sep 16, 2025
250e0e2
fix: improve description of the update command
Xayton Sep 16, 2025
16004b0
Add function/api to enable ssh (for network mode)
giulio93 Sep 17, 2025
71fab4b
New commands to set keyboard layout
Xayton Sep 17, 2025
dab9eb5
Create default template file to create app
mirkoCrobu Sep 17, 2025
40525c9
Network mode: enable/disable MDNS
giulio93 Sep 17, 2025
227c453
Bump to 0.4.3 brick version
rjtokenring Sep 19, 2025
b972857
Fixed typo in usage message
csarnataro Sep 19, 2025
bfdfae4
feat: inject brick variable
lucarin91 Sep 22, 2025
7b34668
feat(updater): update on windows using installer
dido18 Sep 22, 2025
4192822
chore: update go-windows-runas dependency to v1.0.0 and remove unused…
dido18 Sep 23, 2025
6ac39f7
refactoring tests
mirkoCrobu Sep 23, 2025
c83049f
Add json logging configuration to main container
rjtokenring Sep 23, 2025
12ae541
feat(cleanup): remove containers before images
lucarin91 Sep 24, 2025
b4a874e
fix: correct command description for listing Arduino apps
dido18 Sep 25, 2025
dfe1d81
Add SSH Port Forwarding
giulio93 Sep 25, 2025
97043f8
Implement a "settings" (key-value) API
mirkoCrobu Sep 25, 2025
db4c7ea
feat: handle too many request in system init
lucarin91 Sep 25, 2025
7677613
feat(cli): add network-mode and keyboard utility
lucarin91 Sep 25, 2025
ccf4b7f
fix: fail if pull image fails
lucarin91 Sep 26, 2025
99e4d58
feat(board): remove random port selection
lucarin91 Sep 26, 2025
167fcaa
feat: add cache cleanup in system update
mirkoCrobu Sep 26, 2025
81879ef
Update bricks library to 0.4.4 version
rjtokenring Sep 26, 2025
d0d1bb0
feat: increase pull image retries
lucarin91 Sep 26, 2025
7bece67
fix: variable injection order
lucarin91 Sep 26, 2025
3305892
feat: WIRE-1149 - verify if app/brick required devices are present
rjtokenring Sep 26, 2025
fdfc397
fix(pkg/board): invalid join host port
lucarin91 Sep 29, 2025
f238e29
Upgrade bricks to 0.4.5
rjtokenring Sep 29, 2025
d161b92
perf(compile): reduce the parallel jobs execution in sketch compilation
dido18 Sep 30, 2025
ad0d47d
Changing the board name should also restart the avahi-daemon
giulio93 Oct 1, 2025
37893ae
filter=default in app list doesn't return the default app
mirkoCrobu Oct 1, 2025
d804c26
feat(update): handle platform upgrade errors and log them appropriately
dido18 Oct 1, 2025
7893fd6
Implementing progress value for the start app command
mirkoCrobu Oct 1, 2025
5430035
fix(sse): update error handling for closed streams
dido18 Oct 2, 2025
7354bf6
Inconsistent Validation for icon Field in App Creation/Retrieval
mirkoCrobu Oct 2, 2025
d18d2a0
fix: return network command output
lucarin91 Oct 2, 2025
de028d5
feat(api): add endpoint to srearch libraries
dido18 Oct 2, 2025
615e0a5
refactor(config): remove unused configDir from Configuration struct
dido18 Oct 3, 2025
a71812a
chore: add unit test
rjtokenring Oct 6, 2025
cbfa89e
feat(orchestrator): add app status sse handler
lucarin91 Oct 9, 2025
3e28b6e
feat: update check internet connectivity and run checks in parallel
Xayton Oct 9, 2025
4303c99
Restart avahi with start&stop
giulio93 Oct 9, 2025
cbfe151
chore: remove old board configure scripts
lucarin91 Oct 13, 2025
25bbea1
chore: internalize libraries not used externally
lucarin91 Oct 13, 2025
6a6528c
chore: move x/testtools into internal
lucarin91 Oct 13, 2025
71a2d16
arduino-router: Add HCI API.
iabdalkader Oct 14, 2025
de7ae80
Point to the new public container registry on GitHub (bump bricks to …
Xayton Oct 14, 2025
b439a2f
Pull docker containers events for each App
giulio93 Oct 14, 2025
546060c
move cmd/releaser and pkg/autoupdater in github.com/arduino/go-updater
lucarin91 Oct 14, 2025
0e2ef53
chore: move arduino-router to https://github.com/arduino/arduino-router
dido18 Oct 16, 2025
95ee526
revert: sse server close event as error
lucarin91 Oct 16, 2025
808948e
fix: progress sse events should return the name
giulio93 Oct 16, 2025
5745c64
improve retry for upgrade operations
mirkoCrobu Oct 16, 2025
cc25cfc
Added Library Manager API
cmaglie Oct 16, 2025
fe5717d
feat: return broken apps
lucarin91 Oct 16, 2025
507ed4c
make level log configurable by cli flag
mirkoCrobu Oct 16, 2025
a0e3b92
add readme.md
lucarin91 Oct 16, 2025
91052db
add taskfile and golangci config
lucarin91 Oct 16, 2025
2122fa8
chore: dd license headers to all relevant files in the arduino-app-cl…
dido18 Oct 16, 2025
846c9f8
Stream apps status init
Oct 16, 2025
df342c8
fix: panic on command print (#2)
lucarin91 Oct 17, 2025
d4409ec
chore: add license check (#4)
lucarin91 Oct 17, 2025
f463bcf
Merge pull request #1 from arduino/add_init_app_state_to_events
giulio93 Oct 20, 2025
27531bd
chore: add ci workflows (#3)
dido18 Oct 20, 2025
b1e0e12
fix(deb): remove chown of config (#15)
lucarin91 Oct 23, 2025
0509013
fix(update): skip the dpkg step in case of error (#13)
lucarin91 Oct 23, 2025
808c614
make code example not mandatory
Oct 24, 2025
fd06714
fix texdata structure
Oct 24, 2025
4c06a75
feat: Add new examples and bricks model configurations from `0.4.8` …
dido18 Oct 24, 2025
03ea6d1
refactoring store_test
Oct 27, 2025
0fea9ac
fix: app-bricks-examples repo name (#25)
lucarin91 Oct 27, 2025
f137b82
packaging
Oct 21, 2025
121378a
third party licenses do not need to be repeated
Oct 22, 2025
ee193d0
commit Copyright
Oct 27, 2025
39ff447
Merge pull request #7 from arduino/deb_package_pipeline
giulio93 Oct 27, 2025
6c1ca63
refactoring store_test
Oct 27, 2025
3680d3f
Merge pull request #19 from arduino/issue_795
mirkoCrobu Oct 27, 2025
a9fa3f7
add useByApps field for brick details endpoint
Oct 27, 2025
118e59e
partial test implementation
Oct 28, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
19 changes: 19 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
### Motivation

<!-- Why this pull request? -->

### Change description

<!-- What does your code do? -->

### Additional Notes

<!-- Link any useful metadata: Jira task, GitHub issue, ... -->

### Reviewer checklist

- [ ] PR addresses a single concern.
- [ ] PR title and description are properly filled.
- [ ] Changes will be merged in `main`.
- [ ] Changes are covered by tests.
- [ ] Logging is meaningful in case of troubleshooting.
20 changes: 20 additions & 0 deletions .github/workflows/block-merge-label.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
name: Block Merge if "do-not-merge" Label Exists

on:
pull_request:
types:
- opened
- labeled
- unlabeled
- synchronize # important for when new commits are pushed

jobs:
check-do-not-merge-label:
runs-on: ubuntu-latest
steps:
- name: Check for "do-not-merge" label
if: contains(github.event.pull_request.labels.*.name, 'do-not-merge')
run: |
echo "This Pull Request has the 'do-not-merge' label. Merging is blocked."
echo "Please remove the 'do-not-merge' label to enable merging."
exit 1 # This will cause the workflow to fail
155 changes: 155 additions & 0 deletions .github/workflows/check-go-dependencies-task.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,155 @@
# Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/check-go-dependencies-task.md
name: Check Go Dependencies

# See: https://docs.github.com/actions/reference/workflows-and-actions/events-that-trigger-workflows
on:
create:
push:
paths:
- ".github/workflows/check-go-dependencies-task.ya?ml"
- ".licenses/**"
- ".licensed.json"
- ".licensed.ya?ml"
- "Taskfile.ya?ml"
- "**/.gitmodules"
- "**/go.mod"
- "**/go.sum"
pull_request:
paths:
- ".github/workflows/check-go-dependencies-task.ya?ml"
- ".licenses/**"
- ".licensed.json"
- ".licensed.ya?ml"
- "Taskfile.ya?ml"
- "**/.gitmodules"
- "**/go.mod"
- "**/go.sum"
schedule:
# Run periodically to catch breakage caused by external changes.
- cron: "0 8 * * WED"
workflow_dispatch:
repository_dispatch:

jobs:
run-determination:
runs-on: ubuntu-latest
permissions: {}
outputs:
result: ${{ steps.determination.outputs.result }}
steps:
- name: Determine if the rest of the workflow should run
id: determination
run: |
RELEASE_BRANCH_REGEX="refs/heads/[0-9]+.[0-9]+.x"
# The `create` event trigger doesn't support `branches` filters, so it's necessary to use Bash instead.
if [[
"${{ github.event_name }}" != "create" ||
"${{ github.ref }}" =~ $RELEASE_BRANCH_REGEX
]]; then
# Run the other jobs.
RESULT="true"
else
# There is no need to run the other jobs.
RESULT="false"
fi
echo "result=$RESULT" >>$GITHUB_OUTPUT
check-cache:
needs: run-determination
if: needs.run-determination.outputs.result == 'true'
runs-on: ubuntu-latest
permissions:
contents: read

steps:
- name: Checkout repository
uses: actions/checkout@v5
with:
submodules: recursive

# This is required to allow licensee/setup-licensed to install Licensed via Ruby gem.
- name: Install Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: ruby # Install latest version

- name: Install licensed
uses: licensee/setup-licensed@v1.3.2
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
version: 5.x

- name: Install Go
uses: actions/setup-go@v6
with:
go-version-file: go.mod

- name: Update dependencies license metadata cache
run: |
go tool \
github.com/go-task/task/v3/cmd/task \
--silent \
general:cache-dep-licenses
- name: Check for outdated cache
id: diff
run: |
git add .
if
! git diff \
--cached \
--color \
--exit-code
then
echo
echo "::error::Dependency license metadata out of sync. See: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/check-go-dependencies-task.md#metadata-cache"
exit 1
fi
# Some might find it convenient to have CI generate the cache rather than setting up for it locally
- name: Upload cache to workflow artifact
if: failure() && steps.diff.outcome == 'failure'
uses: actions/upload-artifact@v4
with:
if-no-files-found: error
include-hidden-files: true
name: dep-licenses-cache
path: .licenses/

check-deps:
needs: run-determination
if: needs.run-determination.outputs.result == 'true'
runs-on: ubuntu-latest
permissions:
contents: read

steps:
- name: Checkout repository
uses: actions/checkout@v5
with:
submodules: recursive

# This is required to allow licensee/setup-licensed to install Licensed via Ruby gem.
- name: Install Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: ruby # Install latest version

- name: Install licensed
uses: licensee/setup-licensed@v1.3.2
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
version: 5.x

- name: Install Go
uses: actions/setup-go@v6
with:
go-version-file: go.mod

- name: Check for dependencies with unapproved licenses
run: |
go tool \
github.com/go-task/task/v3/cmd/task \
--silent \
general:check-dep-licenses
38 changes: 38 additions & 0 deletions .github/workflows/checks.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
name: Run Checks

on:
push:
branches: [main]
pull_request:
branches: [main]

# In the same branch only 1 workflow per time can run. In case we're not in the
# main branch we cancel previous running workflow
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}

permissions:
contents: read
# Used by the buf to create a comment with a brief summary of failing tets
pull-requests: write

jobs:
run-checks:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- uses: dprint/check@v2.2
with:
dprint-version: 0.48.0

- uses: golangci/golangci-lint-action@v8
with:
version: v2.4.0
args: --timeout 300s

- name: Check go mod
run: |
go mod tidy
git diff --color --exit-code
51 changes: 51 additions & 0 deletions .github/workflows/go-test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
name: Run Go Tests

on:
push:
branches: [main]
pull_request:
branches: [main]

jobs:
go-test-internal:
runs-on: ubuntu-latest
steps:
- name: install dependencies
run: |
sudo apt-get update
sudo apt-get install -y android-tools-adb

- name: Checkout code
uses: actions/checkout@v3

- name: Set up Go
uses: actions/setup-go@v5
with:
go-version-file: go.mod

- name: Run `internal` tests
run: go tool task test:internal

go-test-pkg:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest]

steps:
- name: install dependencies [Linux]
if: runner.os == 'Linux'
run: |
sudo apt-get update
sudo apt-get install -y android-tools-adb

- name: Checkout code
uses: actions/checkout@v3

- name: Set up Go
uses: actions/setup-go@v5
with:
go-version-file: go.mod

- name: Run `pkg` tests
run: go tool task test:pkg
53 changes: 53 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
name: Release arduino-app-cli

on:
push:
tags:
- "v[0-9]+.[0-9]+.[0-9]+*"

env:
PROJECT_NAME: "arduino-app-cli"
GITHUB_TOKEN: ${{ secrets.ARDUINOBOT_TOKEN }}
GITHUB_USERNAME: ArduinoBot

jobs:
build:
strategy:
matrix:
os: [ubuntu-22.04]
arch: [amd64, arm64]

runs-on: ${{ matrix.os }}

steps:
- name: Set env vars
run: |
echo "TAG_VERSION=${GITHUB_REF##*/}" >> $GITHUB_ENV
echo "creating tag ${TAG_VERSION}"

- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Configure Git for private repo cloning
run: |
git config --global url."https://${{ env.GITHUB_USERNAME }}:${{ env.GITHUB_TOKEN }}@github.com".insteadOf "https://github.com"

- name: Set up Go
uses: actions/setup-go@v5
with:
go-version-file: go.mod

- name: Build deb
run: |
go tool task build-deb VERSION=${TAG_VERSION} ARCH=${{ matrix.arch }} RELEASE="true"

- name: Create Github Release and upload artifacts
uses: ncipollo/release-action@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
draft: false
prerelease: true
artifacts: build/*.deb
allowUpdates: true
7 changes: 6 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@

# Output of the go coverage tool, specifically when used with LiteIDE
*.out
.vscode

# Dependency directories (remove the comment below to include it)
# vendor/
Expand All @@ -30,4 +31,8 @@ build/

**/.cache

orchestrator
/arduino-app-cli
/apps

# debian packaging files
/debian/arduino-app-cli/home/arduino/.local/share/arduino-app-cli/examples
Loading