Tips/suggestions for build pipeline


I’ve done a quick Google and didn’t find anything immediately useful, so thought I’d ask the question:

Is anyone willing to share some of their automated build/test/publish pipelines?

GitHub actions would be great :grin:


Not finished yet but this is what I’ve come up with so far. Still have an issue during the build where it can’t find the pppos library :frowning:

name: CI

      - master
      - develop
      - feature/**
      - bugfix/**

# A workflow run is made up of one or more jobs that can run sequentially or in parallel
  # This workflow contains a single job called "build"
    # The type of runner that the job will run on
    runs-on: ubuntu-latest

    # Steps represent a sequence of tasks that will be executed as part of the job
    - name: Checkout main repo
      uses: actions/checkout@v2

    - name: Checkout private repos
      uses: actions/checkout@v2
        repository: klimbot/cloud-logger
        token: ${{ secrets.PRIVATE_ACCESS_TOKEN }}
        path: deps/cloud-logger

    # Runs a set of commands using the runners shell
    - name: Update and install mos and dependencies
      run: |
        sudo add-apt-repository ppa:mongoose-os/mos
        sudo apt-get update
        sudo apt-get install runc containerd
        sudo apt-get install mos
    - name: Add user to docker group and start
      run: |
        sudo usermod -aG docker $USER
        sudo systemctl unmask docker
        sudo systemctl start docker
    # Perform the build locally
    - name: Build
      run: |
        mos build --local --platform esp32 --verbose
      shell: bash 

The error I’m trying to resolve is:

/home/runner/work/esp32-mongoose/esp32-mongoose/deps/pppos/src/mgos_pppos.c:84:3: error: unknown type name 'ppp_pcb'
[1151]( ppp_pcb *pppcb;
[1152]( ^

It’s strange though because it compiles fine on my local machine.
My mos.yml has:

  - when: mos.platform == "esp32"
        - origin:
1 Like

Solved the PPPOS problem with a build var. No idea why I’m getting the error in GH and not my local.

      PPP_SUPPORT: 1

Never really looked at this line in any detail from the first example I copied, turns out I don’t even use PPPOS :slight_smile:

Hopefully this basic pipeline will help someone else out using GH

1 Like