Skip to content

[ci] Compile AVR examples on Windows CI #1

[ci] Compile AVR examples on Windows CI

[ci] Compile AVR examples on Windows CI #1

Workflow file for this run

name: Run ARM Cortex-M and AVR tests on Windows
on: [pull_request]
jobs:
windows_armcortexm:
runs-on: windows-2022
env:
PYTHONIOENCODING: "utf-8"
steps:
# Disabling snake-oil for performance reasons
- name: Disable Windows Defender
run: Set-MpPreference -DisableRealtimeMonitoring $true
- name: Install Python
uses: actions/setup-python@v4
with:
python-version: "3.11"
- name: Install Python packages
run: |
pip install --upgrade --upgrade-strategy=eager modm scons future
- name: Download GCC for Windows
shell: powershell
run: |
$ProgressPreference = 'SilentlyContinue'
Invoke-WebRequest -OutFile winlibs-gcc.zip https://github.com/brechtsanders/winlibs_mingw/releases/download/12.2.0-15.0.6-10.0.0-msvcrt-r3/winlibs-x86_64-posix-seh-gcc-12.2.0-mingw-w64msvcrt-10.0.0-r3.zip
- name: Unpack GCC for Windows
shell: powershell
run: |
Add-Type -Assembly "System.IO.Compression.Filesystem"
[System.IO.Compression.ZipFile]::ExtractToDirectory("winlibs-gcc.zip", "C:\winlibs-gcc")
dir C:\winlibs-gcc
dir C:\winlibs-gcc\mingw64
echo "C:\winlibs-gcc\mingw64\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
rm winlibs-gcc.zip
- name: Download ARM Toolchain
shell: powershell
run: |
$ProgressPreference = 'SilentlyContinue'
Invoke-WebRequest -OutFile gcc-arm-none-eabi-win64.zip https://developer.arm.com/-/media/Files/downloads/gnu/12.2.rel1/binrel/arm-gnu-toolchain-12.2.rel1-mingw-w64-i686-arm-none-eabi.zip
- name: Install ARM Toolchain
shell: powershell
run: |
Expand-Archive -Path gcc-arm-none-eabi-win64.zip -DestinationPath C:\ -Force
dir C:\arm-gnu-toolchain-12.2.rel1-mingw-w64-i686-arm-none-eabi
echo "C:\arm-gnu-toolchain-12.2.rel1-mingw-w64-i686-arm-none-eabi\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
rm gcc-arm-none-eabi-win64.zip
- name: Download AVR Toolchain
shell: powershell
run: |
$ProgressPreference = 'SilentlyContinue'
Invoke-WebRequest -OutFile gcc-avr-win64.zip https://github.com/ZakKemble/avr-gcc-build/releases/download/v13.2.0-1/avr-gcc-13.2.0-x64-windows.zip
- name: Install AVR Toolchain
shell: powershell
run: |
Expand-Archive -Path gcc-avr-win64.zip -DestinationPath C:\ -Force
dir C:\avr-gcc-13.2.0-x64-windows
echo "C:\avr-gcc-13.2.0-x64-windows\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
rm gcc-avr-win64.zip
- name: Show Version Information
run: |
gcc --version
g++ --version
make --version
arm-none-eabi-g++ --version
avr-g++ --version
lbuild --version
python -c "import os; print(os.cpu_count())"
- name: Check out repository
uses: actions/checkout@v3
with:
submodules: 'recursive'
- name: Hosted Examples
shell: bash
run: |
(cd examples && python ../tools/scripts/examples_compile.py linux/assert linux/block_device linux/build_info linux/git linux/logger linux/printf linux/etl linux/fiber)
- name: Hosted Unittests
if: always()
shell: bash
run: |
(cd test && make run-hosted-windows)
- name: Compile STM32 Examples
shell: bash
run: |
(cd examples && python ../tools/scripts/examples_compile.py nucleo_f031k6 nucleo_f103rb nucleo_f303re nucleo_f411re nucleo_f746zg)
(cd examples && python ../tools/scripts/examples_compile.py nucleo_g071rb nucleo_l031k6 nucleo_l152re nucleo_l476rg nucleo_g474re)
- name: Compile AVR Examples
shell: bash
run: |
(cd examples && ../tools/scripts/examples_compile.py avr arduino_nano arduino_uno srxe)