arm-none-eabi-gcc-action
arm-none-eabi-gcc-action copied to clipboard
GitHub Action to set-up the `arm-none-eabi-gcc` GNU Arm Embedded Toolchain.
GitHub Action: Arm GNU Toolchain
(arm-none-eabi-gcc)
GitHub Action (compatible with Linux, Windows, and macOS platforms)
to download, check, set up, and cache the arm-none-eabi-gcc compiler
toolchain.
Usage
Simplest way to use this action is with the default options, which uses the
the latest arm-none-eabi-gcc release:
steps:
- uses: carlosperate/arm-none-eabi-gcc-action@v1
- run: arm-none-eabi-gcc --version
You can also specify a version (a list can be found in the Available releases section):
steps:
- name: Install Arm GNU Toolchain (arm-none-eabi-gcc)
uses: carlosperate/arm-none-eabi-gcc-action@v1
with:
release: '13.2.Rel1' # <-- The compiler release to use
More information can be found in the Advanced Options section.
Advantages over other options
- 🚀 Up-to-date with the latest GCC releases from Arm
- 🏎 Toolchain is cached for faster runs (reduced time from 30s-2min to 5ish seconds)
- 📅 Adds
latestoption to be able to always run tests with the latest compiler release - ⚙️ Inputs are optional for simpler configuration
- ↗️ Toolchain path can be exported as an environmental variable and/or step output
- ✅ Downloads are MD5 checked
- ⬇️ File downloads are more stable (no random failures)
- 🐞 Issue tracker is enabled
- 🧑💻 Actively maintained
Available releases
latest<-- Always points to the latest release13.2.Rel112.3.Rel112.2.Rel111.3.Rel111.2-2022.0210.3-2021.1010.3-2021.0710-2020-q49-2020-q29-2019-q48-2019-q38-2018-q47-2018-q27-2017-q46-2017-q26-2017-q16-2016-q45-2016-q35-2016-q25-2016-q15-2015-q44.9-2015-q34.9-2015-q24.9-2015-q14.9-2014-q44.8-2014-q34.8-2014-q24.8-2014-q14.8-2013-q44.7-2014-q24.7-2013-q34.7-2013-q24.7-2013-q1
Advanced options
You can use a "job matrix" to build/test your project with multiple versions of GCC:
jobs:
build:
strategy:
matrix:
gcc: ['7-2017-q4', 'latest']
steps:
- name: Install GNU Arm Embedded Toolchain - ${{ matrix.gcc }}
uses: carlosperate/arm-none-eabi-gcc-action@v1
with:
release: ${{ matrix.gcc }}
- run: arm-none-eabi-gcc --version
If you need to pass the GCC path to a different action or step the path
output exports it:
- name: To access a step output, you need to provide an `id`
uses: carlosperate/arm-none-eabi-gcc-action@v1
id: arm-none-eabi-gcc-action
- name: The `path` to the toolchain executables can then be obtained as an output
run: echo "The output path is ${{ steps.arm-none-eabi-gcc-action.outputs.path }}"
The path can also be added to an environmental variable if it's specified as an input:
- name: To create an environmental variable with the toolchain path provide a name via the `path-env-var` input
uses: carlosperate/arm-none-eabi-gcc-action@v1
with:
path-env-var: ARM_NONE_EABI_GCC_PATH
- name: The path will be exported to that environmental variable name
run: echo "The output path is $ARM_NONE_EABI_GCC_PATH"
Changelog
The changes can be found in the CHANGELOG.md file, or the GitHub Releases notes.
License & Attribution
MIT License.
This project is a fork of fiam/arm-none-eabi-gcc, copyright @fiam (thanks for the awesome work Alberto! without it this fork would have never existed). The extensive list of changes can be seen here.