GitHub Actions
UNO R3DUEESP32

概要

GitHub Actionsを使って、GitHub上でArduinoのスケッチをコンパイルする実験です。arduino/compile-sketchesを利用しました。

実験

Test your Arduino projects with GitHub Actionsという記事を見つけたので、試してみました。GitHub上で、arduino-cliを利用して、コンパイルすることができます。

以下のようなYAMLファイルを、.github/workflows/上に配置しました。これにより、Arduino Uno/Arduino Due/ESP-WROOM-32用に、スケッチをコンパイルを行うことができました。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# This is a basic workflow to help you get started with Actions
name: CI

# Controls when the action will run. 
on:
  # Triggers the workflow on push or pull request events but only for the main branch
  push:
    branches:
      - main
  pull_request:
    branches: 
      - main

  # Allows you to run this workflow manually from the Actions tab
  workflow_dispatch:

# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
  # This workflow contains a single job called "build"
  build:
    # The type of runner that the job will run on
    runs-on: ubuntu-latest
    
    strategy:
      matrix:
        board:
          - fqbn: arduino:avr:uno
          - fqbn: arduino:sam:arduino_due_x_dbg
          - fqbn: esp32:esp32:esp32
            platforms: |
              - name: esp32:esp32
                source-url: https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json                      
    
    # Steps represent a sequence of tasks that will be executed as part of the job
    steps:
      # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
      - uses: actions/checkout@v2

      # Compiles sketches
      - uses: arduino/compile-sketches@v1
        with: 
          fqbn: ${{ matrix.board.fqbn }}
          platforms: ${{ matrix.board.platforms }}
          sketch-paths: |
            - ./            
          libraries: '-'

基本的には、arduino/compile-sketches@v1というアクションを使うだけです。fqbnの指定に少し戸惑いましたが、上記の設定で問題なくコンパイルすることができました。複数のアーキテクチャに対応する必要がなければ、matrixを利用する必要はありません。

arduino/compile-sketchesには、ライブラリを利用する方法なども記載されています。

それなりにコンパイル時間を要するので、プライベートリポジトリで利用する場合は、注意してください。特に、複数アーキテクチャでコンパイルすると、その分時間を消費します。

バージョン

Hardware:Arduino UNO R3/Arduino Due/ESP-WROOM-32
Software:

最終更新日

April 18, 2021

inserted by FC2 system