使用CI github构建arduino环境应用程序

图片

在处理CI / CD(gitlab ce)方面有一些工作,最近我在github上遇到了一些动作,并决定尝试这是哪种野兽。

构建JS或其他解决方案并不是一件很有趣的事,所以我决定测试esp8266的Arduino草图的组装,结果得到了一个编译好的二进制文件,可以直接下载到微控制器,而无需安装本地Arduino IDE。

动作或管道
在某些事件(例如,推送到git信息库分支)之后开始的一系列命令和操作,即,它将在更改文件后启动。 您可以使用github编辑器直接修改文件,项目将自动生成和编译。 流水线不仅用于编译,还用于各种代码测试。

我并没有开始为所有这些制作一个docker镜像,这会使组织ci / cd的过程变得复杂,同样,我不需要为每个库创建一个镜像。

这有什么用? 假设存在某种开源项目,用于具有不同内存量的控制器的不同版本,并且为所有平台编译代码都需要花费大量时间。 在实际操作中,您可以一次配置需要组装的平台-并且随着平台中每个版本的存储库中代码的每次更改,都会有一个就绪的固件。

动作脚本本身的代码:

on: [push] jobs: build: runs-on: ubuntu-18.04 steps: - uses: actions/checkout@v1 - name: install arduino cli run: curl -fsSL https://raw.githubusercontent.com/arduino/arduino-cli/master/install.sh | sh - name: MakeSketch run: ./bin/arduino-cli sketch new MyFirstSketch - name: create dir run: mkdir -p /home/runner/.arduino15/packages - name: lib init run: sudo ./bin/arduino-cli core update-index --additional-urls http://arduino.esp8266.com/stable/package_esp8266com_index.json - name: install esp8266 run: sudo ./bin/arduino-cli core install esp8266:esp8266 --additional-urls http://arduino.esp8266.com/stable/package_esp8266com_index.json - name: install python3 run: sudo apt-get install -yq python3 - name: compile run: sudo ./bin/arduino-cli compile --fqbn esp8266:esp8266:d1 MyFirstSketch - uses: actions/upload-artifact@v1 with: name: esp8266-d1-mini-4m.bin path: MyFirstSketch/MyFirstSketch.esp8266.esp8266.d1.bin - uses: ncipollo/release-action@v1 with: artifacts: "MyFirstSketch/MyFirstSketch.esp8266.esp8266.d1.bin" tag: "release" token: ${{ secrets.GITHUB_TOKEN }} 

实际上-

  • 在带有Ubuntu 18.04的干净系统上,我们安装了arduino-cli
  • 添加esp8266支持
  • 编译存储库中托管的arduino代码,
  • 我们创建一个发行版,在其中添加已编译的二进制文件

图片

对于开源项目,对github的操作是免费的,对于封闭的存储库,现在也可以使用它们,但是一段时间后它们似乎变得不可访问。

我不冒充,有些事情可以做得更容易,但是无论如何,它都能奏效。

Source: https://habr.com/ru/post/zh-CN479718/


All Articles