Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/carlosperate/arm-none-eabi-gcc-action
GitHub Action to set-up the `arm-none-eabi-gcc` GNU Arm Embedded Toolchain.
https://github.com/carlosperate/arm-none-eabi-gcc-action
arm-gcc arm-none-eabi-gcc gcc gcc-arm-toolchain gcc-cross-compiler github-actions hacktoberfest
Last synced: 6 days ago
JSON representation
GitHub Action to set-up the `arm-none-eabi-gcc` GNU Arm Embedded Toolchain.
- Host: GitHub
- URL: https://github.com/carlosperate/arm-none-eabi-gcc-action
- Owner: carlosperate
- License: mit
- Created: 2021-10-17T16:08:04.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2025-02-03T18:40:28.000Z (17 days ago)
- Last Synced: 2025-02-08T09:45:33.628Z (12 days ago)
- Topics: arm-gcc, arm-none-eabi-gcc, gcc, gcc-arm-toolchain, gcc-cross-compiler, github-actions, hacktoberfest
- Language: TypeScript
- Homepage: https://github.com/marketplace/actions/arm-none-eabi-gcc-gnu-arm-embedded-toolchain
- Size: 5.61 MB
- Stars: 97
- Watchers: 7
- Forks: 18
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# GitHub Action: Arm GNU Toolchain
(arm-none-eabi-gcc)[](https://github.com/carlosperate/arm-none-eabi-gcc-action/actions/workflows/test.yml) [](https://github.com/carlosperate/arm-none-eabi-gcc-action/actions/workflows/test-all-releases.yml) [](https://github.com/carlosperate/arm-none-eabi-gcc-action/actions/workflows/check-urls.yml)
GitHub Action (compatible with Linux x86_64 and aarch64, macOS x86_64
and arm64, and Windows x86_64 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:```yaml
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](#available-releases) section):```yaml
steps:
- name: Install Arm GNU Toolchain (arm-none-eabi-gcc)
uses: carlosperate/arm-none-eabi-gcc-action@v1
with:
release: '14.2.Rel1' # <-- The compiler release to use
```More information can be found in the [Advanced Options](#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 `latest` option 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 release
- `14.2.Rel1`
- `13.3.Rel1` `13.2.Rel1`
- `12.3.Rel1` `12.2.Rel1`
- `11.3.Rel1` `11.2-2022.02`
- `10.3-2021.10` `10.3-2021.07` `10-2020-q4`
- `9-2020-q2` `9-2019-q4`
- `8-2019-q3` `8-2018-q4`
- `7-2018-q2` `7-2017-q4`
- `6-2017-q2` `6-2017-q1` `6-2016-q4`
- `5-2016-q3` `5-2016-q2` `5-2016-q1` `5-2015-q4`
- `4.9-2015-q3` `4.9-2015-q2` `4.9-2015-q1` `4.9-2014-q4`
- `4.8-2014-q3` `4.8-2014-q2` `4.8-2014-q1` `4.8-2013-q4`
- `4.7-2014-q2` `4.7-2013-q3` `4.7-2013-q2` `4.7-2013-q1`Older GCC version might not have releases for all operating system
architectures, specifically `arm64`.
This table shows the first release compatible with each OS architecture.| | x86_64 | arm64 |
|---------|--------------|------------------------|
| Linux | All versions | From version 9-2019-q4 |
| macOS | All versions | From version 12.2.Rel1 |
| Windows | All versions | Not supported |## Advanced options
You can use a "job matrix" to build/test your project with multiple versions
of GCC:```yaml
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:```yaml
- 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:```yaml
- 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](https://github.com/carlosperate/arm-none-eabi-gcc-action/blob/main/CHANGELOG.md)
file, or the [GitHub Releases](https://github.com/carlosperate/arm-none-eabi-gcc-action/releases) notes.## License & Attribution
[MIT License](LICENSE).
This project is a fork of [fiam/arm-none-eabi-gcc](https://github.com/fiam/arm-none-eabi-gcc),
copyright [@fiam](https://github.com/fiam) (thanks for the awesome work
Alberto! without it this fork would have never existed). The extensive list of
changes can be seen
[here](https://github.com/carlosperate/arm-none-eabi-gcc-action/compare/4cecd3f99905c1c296edf75f570b9e68993be22f...main).