Add mp3 example #44
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# SPDX-License-Identifier: MIT | |
name: Build | |
on: | |
push: | |
branches: ["main"] | |
pull_request: | |
workflow_dispatch: | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
soc: ["esp32", "esp32c3", "esp32s2", "esp32s3", "esp32c6"] | |
idf-version: | |
- 'v5.1.3' | |
- 'v5.2.1' | |
container: espressif/idf:release-v5.2 | |
steps: | |
- name: Checkout AtomVM | |
uses: actions/checkout@v4 | |
with: | |
repository: atomvm/AtomVM | |
path: AtomVM | |
- name: Checkout atomvm_esp_adf | |
uses: actions/checkout@v4 | |
with: | |
path: AtomVM/src/platforms/esp32/components/atomvm_esp_adf/ | |
- name: Checkout atomvm_esp_adf submodules | |
shell: bash | |
working-directory: AtomVM/src/platforms/esp32/components/atomvm_esp_adf/ | |
run: | | |
git submodule update --init components/esp-adf | |
cd components/esp-adf | |
git submodule update --init components/esp-adf-libs/ | |
- name: Install dependencies to build host AtomVM | |
run: | | |
set -eu | |
apt update | |
DEBIAN_FRONTEND=noninteractive apt install -y -q \ | |
doxygen erlang-base erlang-dialyzer elixir \ | |
gcc g++ zlib1g-dev libmbedtls-dev make cmake | |
- name: Build AtomVM libraries | |
shell: bash | |
working-directory: AtomVM/ | |
run: | | |
mkdir build | |
cd build | |
cmake .. | |
cd libs | |
make | |
- name: Build ${{ matrix.soc }} binary with idf.py | |
shell: bash | |
working-directory: AtomVM/src/platforms/esp32/ | |
run: | | |
cp sdkconfig.release-defaults sdkconfig.defaults | |
rm -rf build | |
. $IDF_PATH/export.sh | |
idf.py set-target ${{ matrix.soc }} | |
echo CONFIG_FREERTOS_ENABLE_BACKWARD_COMPATIBILITY=y >> sdkconfig | |
idf.py build -DCONFIG_FREERTOS_ENABLE_BACKWARD_COMPATIBILITY=y | |
- name: "Create a ${{ matrix.soc }} image" | |
working-directory: AtomVM/src/platforms/esp32/build | |
run: | | |
./mkimage.sh | |
mv atomvm-${{ matrix.soc }}.img atomvm-esp-adf-${{ matrix.soc }}-${{ matrix.idf-version }}.img | |
- name: "Upload ${{ matrix.soc }} artifacts" | |
uses: actions/upload-artifact@v4 | |
with: | |
name: atomvm-esp-adf-${{ matrix.soc }}-${{ matrix.idf-version }}-image | |
path: AtomVM/src/platforms/esp32/build/atomvm-esp-adf-${{ matrix.soc }}-${{ matrix.idf-version }}.img | |
if-no-files-found: error | |
build-examples: | |
runs-on: ubuntu-latest | |
container: erlang:26 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Build examples | |
run: | | |
cd examples | |
for conf in */rebar.config ; do | |
example_dir=`dirname ${conf}` | |
cd ${example_dir} | |
rebar3 atomvm packbeam | |
cd .. | |
done | |
build-doc: | |
runs-on: ubuntu-latest | |
container: erlang:26 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Setup Pages | |
uses: actions/configure-pages@v4 | |
- name: Build edoc | |
run: | | |
rebar3 edoc | |
- name: Upload artifact | |
uses: actions/upload-pages-artifact@v3 | |
with: | |
path: doc | |
clang-format: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Install clang-format | |
run: | | |
sudo bash -c "$(wget -O - https://apt.llvm.org/llvm.sh)" | |
- name: Install run-clang-format | |
run: | | |
curl -sSfL https://raw.githubusercontent.com/Sarcasm/run-clang-format/master/run-clang-format.py -o run-clang-format | |
chmod +x run-clang-format | |
- name: Check format with clang-format | |
run: | | |
./run-clang-format --style=file -r nifs/ | |
erlfmt: | |
runs-on: ubuntu-latest | |
container: erlang:26 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Checkout erlfmt | |
run: | | |
cd .. | |
git clone --depth 1 -b v1.3.0 https://github.com/WhatsApp/erlfmt.git | |
cd erlfmt | |
rebar3 as release escriptize | |
- name: Check format with erlfmt | |
run: | | |
find . -name *.erl | xargs ../erlfmt/_build/release/bin/erlfmt -c |