Enhancements for the esp32_flash task #232
Workflow file for this run
This file contains hidden or 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
| # | |
| # 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 }} |