I'm trying to do some simple unit testing with arduino-cli in a .gitlab-ci file like so
variables:
DOCKER_HOST: tcp://docker:2375
image: "docker:latest"
services:
- docker:dind
before_script:
- docker pull "arduino/arduino-cli:latest"
- arduinocli(){ docker run arduino/arduino-cli:latest "$@";}
search:
script:
- arduinocli lib search hi
but instead of arduinocli lib search hi
at the end, I want to verify my sketch. Is there a way to do this with arduino-cli?
-
In the Arduino IDE verify is just "compile" without uploadKIIV– KIIV2019年07月22日 08:07:12 +00:00Commented Jul 22, 2019 at 8:07
-
github.com/arduino/arduino-cli#step-5-compile-the-sketch as KIIV said.Gerben– Gerben2019年07月22日 09:24:33 +00:00Commented Jul 22, 2019 at 9:24
2 Answers 2
In Arduino parlance the word "Verify" is used (erroneously) to mean "Compile the code into a binary or HEX file, but don't upload it to the board".
To compile (and thus "verify") the code just pass the compile
command to arduino-cli
with the board you want to compile for and the sketch you want to compile.
@Majenko's is 100 % correct. Here's my updated .gitlab-ci.yml
for my arduino library.
image: ubuntu:latest
before_script:
- apt-get update -yq
- apt-get install -yq ca-certificates
- apt-get update && apt-get install -y --no-install-recommends bzip2 curl unzip
- apt-get upgrade -yq
- curl -L -o arduino-cli.tar.bz2 https://github.com/arduino/arduino-cli/releases/download/0.3.3-alpha.preview/arduino-cli-0.3.3-alpha.preview-linux64.tar.bz2
- tar xjf arduino-cli.tar.bz2
- mv arduino-cli-0.3.3-alpha.preview-linux64 /usr/bin/ino
- export APPDIR=$(ino config dump | grep --only-matching --regexp=/.*/Arduino)"/libraries/DC_motors"
- mkdir --parents $APPDIR
- mv ./* $APPDIR
test:
script:
- echo 'run a script'
compile:
script:
- ino core update-index
- ino core install arduino:avr
- ino core list
- ino lib install "Adafruit Motor Shield V2 Library"
- ino lib search Regexp
- ino lib install Regexp
- ino lib install AccelStepper
- ino compile --fqbn arduino:avr:uno $APPDIR/examples/API
In case that library moves, here's the tree output of DC_motors
├── examples
│ └── API
│ └── API.ino
├── extras
│ ├── test
│ │ └── Makefile
│ └── testPython.py
├── .gitignore
├── .gitlab-ci.yml
├── keywords.txt
├── library.properties
├── README.md
└── src
├── MSv2.cpp
├── MSv2.h
├── MSv2Motors.cpp
├── MSv2Motors.h
├── MSv2Steppers.cpp
├── MSv2Steppers.h
└── utility
├── MSv2Common.cpp
└── MSv2Common.h