Comments (5)
It's possible to copy these into their own repositories, but I wouldn't like to maintain them that way. Both of these repositories serve a specific purpose for CI that I do on arduino_ci
itself.
DoSomething
allows me to test whether unit test passes and failures are parsed correctly by the test runnerTestSomething
allows me to test all mock and assertion features of my library
Regarding your other point:
these repositories could have their own build and testing infrastructure with Travis
I do that as well. In .travis.yml
, you'll see that I'm going into the TestSomething
project directory and running the build/test script on it: https://github.com/ianfixes/arduino_ci/blob/master/.travis.yml#L17-L19
So in short, by bundling the sample repos with the main CI project, I'm able to use them to check the correctness of the CI scripts themselves. This has already proven necessary; see #30
Can you talk more about the difficulty you had in setting up a CI-enabled repository for an Arduino library from scratch? Perhaps I can improve my documentation.
from arduino_ci.
My idea is to remove from SampleProjects/DoSomething all Ruby things such as Gemfile and Gemfile.lock and have something in https://github.com/ianfixes/arduino_ci/blob/master/SampleProjects/DoSomething/.travis.yml
more comparable to
https://github.com/SMFSW/Queue/blob/70b5436e780243a6eea39f17e772eac702c90685/.travis.yml#L16
(inspired by https://github.com/adafruit/travis-ci-arduino/blob/855c1cb7577f56ea086ea3615828a078fd1242c0/.travis.yml#L4 ) ie with source/curl command to download scripts from a source repository (https://github.com/ianfixes/arduino_ci/ in this case or a fork of https://github.com/ianfixes/arduino_ci/ )
Although, when changing code in https://github.com/ianfixes/arduino_ci/ you will have to trigger manually CI for https://github.com/ianfixes/DoSomething/ but when developing really, you change more often DoSomething than arduino_ci
I also wonder why https://github.com/ianfixes/arduino_ci/blob/921925f90bf8088b78d847390acdd5390cfbe60c/SampleProjects/TestSomething/Gemfile.lock#L2 have raw value
from arduino_ci.
The existence of Gemfile.lock
in the repo is a bug, I've opened #41 to track this.
Setting up an install.sh
-style script sounds like a good idea, I've set up #42 to track this.
from arduino_ci.
Thanks @ianfixes
I wonder why Gemfile.lock
is present is this repository.
It shouldn't according
https://github.com/ianfixes/arduino_ci/blob/921925f90bf8088b78d847390acdd5390cfbe60c/.gitignore#L3
Maybe /Gemfile.lock
should be replaced by Gemfile.lock
?
from arduino_ci.
Yup, I've already made this fix locally
from arduino_ci.
Related Issues (20)
- Output errors to stderr HOT 11
- Empty examples folder causes build to fail HOT 2
- arduino_ci.rb fails to report compile error
- The build-CI does not support setWireTimeout(). HOT 1
- Can RP2040 build environment be supported? HOT 10
- compiling unit tests uses arduino platform specific code HOT 6
- running in gitlab CI HOT 3
- Platform.io Support HOT 3
- Improve factorization of "unused space"
- Running "bundle install --path vendor/bundle" generates deprecated warning HOT 1
- Use temporary directories for unit test artifacts
- ESP32 failing to install in CI build HOT 2
- Update documentation to recommend version pinning
- ESP32 flags unused function as error (should be warning) HOT 9
- libraries: "SoftwareSerial" does not work. HOT 11
- "Bad file descriptor" error when installing HOT 2
- Implement Wire.h slave device mock support
- 1.6.0 error: undefined method `library_of_name' for nil:NilClass (NoMethodError) HOT 5
- Show differences lined up and in quotes
- Unable to find library location on Windows
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from arduino_ci.