Skip to content

Enhancements for the esp32_flash task #232

Enhancements for the esp32_flash task

Enhancements for the esp32_flash task #232

Workflow file for this run

#
# Copyright 2022 Fred Dushin <[email protected]>
#
# SPDX-License-Identifier: Apache-2.0 OR LGPL-2.1-or-later
#
name: Build and Test
on: [push, pull_request]
jobs:
build-and-test:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
otp: ["25", "26", "27", "28"]
os: ["ubuntu-24.04", "ubuntu-24.04-arm", "macos-26", "macos-15-intel"]
include:
- otp: "25"
make_jobs: "compile etest"
rebar3_version: "3.24.0"
- otp: "26"
make_jobs: "all"
rebar3_version: "3.25.1"
- otp: "27"
make_jobs: "all"
rebar3_version: "3.25.1"
- otp: "28"
make_jobs: "all"
rebar3_version: "3.25.1"
steps:
# Builder info
- name: "Install deps"
if: startsWith(matrix.os, 'macos-') && matrix.otp != '25'
run: |
brew update && HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1 brew install gperf ninja llvm erlang@${{ matrix.otp }} rebar3
echo PATH="/usr/local/opt/llvm/bin:/opt/homebrew/opt/llvm/bin:$PATH" >> $GITHUB_ENV
- name: "Install deps"
if: startsWith(matrix.os, 'macos-') && matrix.otp == '25'
run: |
brew update
HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1 brew install gperf ninja llvm erlang@${{ matrix.otp }}
wget https://github.com/erlang/rebar3/releases/download/${{ matrix.rebar3_version }}/rebar3
chmod +x rebar3
for bin_dir in {/usr/local,/opt/homebrew}/opt/erlang@25/bin/ ; do
if [ -e ${bin_dir} ]; then
sudo cp rebar3 ${bin_dir}
fi
done
echo PATH="/usr/local/opt/llvm/bin:/opt/homebrew/opt/llvm/bin:/usr/local/opt/erlang@${{ matrix.otp }}/bin:/opt/homebrew/opt/erlang@${{ matrix.otp }}/bin:$PATH" >> $GITHUB_ENV
- name: "Install deps"
if: startsWith(matrix.os, 'ubuntu-')
run: |
sudo apt install -y make git gcc-14 g++-14 cmake gperf zlib1g-dev libmbedtls-dev ninja-build
# Setup OTP
- name: "Setup OTP"
if: startsWith(matrix.os, 'ubuntu-')
uses: erlef/setup-beam@v1
with:
otp-version: ${{ matrix.otp }}
rebar3-version: ${{ matrix.rebar3_version }}
- name: "System info"
run: |
echo "**uname:**"
uname -a
echo "**OTP version:**"
cat $(dirname $(which erlc))/../releases/RELEASES || true
# Checkout AtomVM
- name: "Checkout AtomVM"
uses: actions/checkout@v5
with:
repository: 'atomvm/AtomVM'
path: 'atomvm'
submodules: 'recursive'
- name: "Install AtomVM"
working-directory: 'atomvm'
run: |
mkdir build
cd build
cmake -DAVM_BUILD_RUNTIME_ONLY=ON -G Ninja ..
cmake --build .
sudo cmake --build . -t install
atomvm -v
# Setup
- name: "Checkout repo"
uses: actions/checkout@v5
with:
path: 'atomvm_packbeam'
submodules: 'recursive'
# Build
- name: "Make"
working-directory: 'atomvm_packbeam'
run: PATH="/tmp/rebar3:${PATH}" make ${{ matrix.make_jobs }}