initial commit
This commit is contained in:
commit
b44ce7bd77
2716 files changed
+559005
No files matched your search
@@ -0,0 +1,39 @@
|
||||
name: Get dependencies
|
||||
|
||||
inputs:
|
||||
arg:
|
||||
description: 'Arguments to get_deps.py'
|
||||
required: true
|
||||
|
||||
runs:
|
||||
using: "composite"
|
||||
steps:
|
||||
- name: Checkout pico-sdk for rp2040
|
||||
if: >-
|
||||
contains(inputs.arg, 'rp2040') ||
|
||||
contains(inputs.arg, 'rp2350') ||
|
||||
contains(inputs.arg, 'raspberry_pi_pico') ||
|
||||
contains(inputs.arg, 'adafruit_fruit_jam')
|
||||
uses: actions/checkout@v6
|
||||
with:
|
||||
repository: raspberrypi/pico-sdk
|
||||
ref: master
|
||||
path: pico-sdk
|
||||
|
||||
- name: Linux dependencies
|
||||
if: runner.os == 'Linux'
|
||||
run: |
|
||||
NINJA_URL=https://github.com/ninja-build/ninja/releases/download/v1.13.1/ninja-linux.zip
|
||||
wget $NINJA_URL -O ninja-linux.zip
|
||||
unzip ninja-linux.zip -d ninja-bin
|
||||
pip install membrowse
|
||||
echo >> $GITHUB_PATH "${{ github.workspace }}/ninja-bin"
|
||||
shell: bash
|
||||
|
||||
- name: Get Dependencies
|
||||
env:
|
||||
ARG: ${{ inputs.arg }}
|
||||
run: |
|
||||
python3 tools/get_deps.py ${ARG}
|
||||
echo "PICO_SDK_PATH=${{ github.workspace }}/pico-sdk" >> $GITHUB_ENV
|
||||
shell: bash
|
||||
@@ -0,0 +1,53 @@
|
||||
name: Setup Toolchain
|
||||
|
||||
inputs:
|
||||
toolchain:
|
||||
description: 'Toolchain name'
|
||||
required: true
|
||||
|
||||
outputs:
|
||||
build_option:
|
||||
description: 'Build option for the toolchain e.g --toolchain clang'
|
||||
value: ${{ steps.set-toolchain-option.outputs.build_option }}
|
||||
|
||||
runs:
|
||||
using: "composite"
|
||||
steps:
|
||||
- name: Pull ESP-IDF docker
|
||||
if: inputs.toolchain == 'esp-idf'
|
||||
uses: ./.github/actions/setup_toolchain/espressif
|
||||
with:
|
||||
toolchain: ${{ inputs.toolchain }}
|
||||
|
||||
- name: Get Toolchain URL
|
||||
if: inputs.toolchain != 'esp-idf'
|
||||
id: set-toolchain-url
|
||||
env:
|
||||
TOOLCHAIN: ${{ inputs.toolchain }}
|
||||
run: |
|
||||
TOOLCHAIN_URL=$(jq -r --arg tc "$TOOLCHAIN" '.[$tc]' .github/actions/setup_toolchain/toolchain.json)
|
||||
echo "toolchain_url=$TOOLCHAIN_URL"
|
||||
echo "toolchain_url=$TOOLCHAIN_URL" >> $GITHUB_OUTPUT
|
||||
shell: bash
|
||||
|
||||
- name: Download Toolchain
|
||||
if: inputs.toolchain != 'esp-idf'
|
||||
uses: ./.github/actions/setup_toolchain/download
|
||||
with:
|
||||
toolchain: ${{ inputs.toolchain }}
|
||||
toolchain_url: ${{ steps.set-toolchain-url.outputs.toolchain_url }}
|
||||
|
||||
- name: Set toolchain option
|
||||
id: set-toolchain-option
|
||||
env:
|
||||
TOOLCHAIN: ${{ inputs.toolchain }}
|
||||
run: |
|
||||
BUILD_OPTION=""
|
||||
if [[ "$TOOLCHAIN" == *"clang"* ]]; then
|
||||
BUILD_OPTION="--toolchain clang"
|
||||
elif [[ "$TOOLCHAIN" == "arm-iar" ]]; then
|
||||
BUILD_OPTION="--toolchain iar"
|
||||
fi
|
||||
echo "build_option=$BUILD_OPTION"
|
||||
echo "build_option=$BUILD_OPTION" >> $GITHUB_OUTPUT
|
||||
shell: bash
|
||||
@@ -0,0 +1,78 @@
|
||||
name: Download Toolchain
|
||||
|
||||
inputs:
|
||||
toolchain:
|
||||
description: 'Toolchain name'
|
||||
required: true
|
||||
toolchain_url:
|
||||
description: 'Toolchain URL'
|
||||
required: true
|
||||
|
||||
runs:
|
||||
using: "composite"
|
||||
steps:
|
||||
- name: Cache Toolchain
|
||||
if: ${{ !startsWith(inputs.toolchain_url, 'https://github.com') }}
|
||||
uses: actions/cache@v5
|
||||
id: cache-toolchain-download
|
||||
with:
|
||||
path: ~/cache/${{ inputs.toolchain }}
|
||||
key: ${{ runner.os }}-${{ inputs.toolchain }}-${{ inputs.toolchain_url }}
|
||||
|
||||
- name: Install Toolchain
|
||||
if: steps.cache-toolchain-download.outputs.cache-hit != 'true'
|
||||
env:
|
||||
TOOLCHAIN: ${{ inputs.toolchain }}
|
||||
TOOLCHAIN_URL: ${{ inputs.toolchain_url }}
|
||||
run: |
|
||||
mkdir -p ~/cache/${TOOLCHAIN}
|
||||
FILE_EXT="${TOOLCHAIN_URL##*.}"
|
||||
|
||||
if [[ ${TOOLCHAIN} == rx-gcc ]]; then
|
||||
wget --progress=dot:giga ${TOOLCHAIN_URL} -O toolchain.run
|
||||
chmod +x toolchain.run
|
||||
./toolchain.run -p ~/cache/${TOOLCHAIN}/gnurx -y
|
||||
elif [[ ${TOOLCHAIN} == ft9xx-gcc ]]; then
|
||||
wget --progress=dot:giga ${TOOLCHAIN_URL} -O ~/cache/${TOOLCHAIN}/ft9xxtoolchain.deb
|
||||
elif [[ ${TOOLCHAIN} == arm-iar ]]; then
|
||||
wget --progress=dot:giga https://netstorage.iar.com/FileStore/STANDARD/001/003/926/iar-lmsc-tools_1.8_amd64.deb -O ~/cache/${TOOLCHAIN}/iar-lmsc-tools.deb
|
||||
wget --progress=dot:giga ${TOOLCHAIN_URL} -O ~/cache/${TOOLCHAIN}/cxarm.deb
|
||||
elif [[ ${FILE_EXT} == zip ]]; then
|
||||
curl -L "$TOOLCHAIN_URL" -o toolchain.zip
|
||||
unzip -q toolchain.zip -d ~/cache/${TOOLCHAIN}
|
||||
~/cache/${TOOLCHAIN}/xpack-arm-none-eabi-gcc-14.2.1-1.1/bin/arm-none-eabi-gcc.exe --version
|
||||
elif [[ ${FILE_EXT} == gz ]]; then
|
||||
wget --progress=dot:giga ${TOOLCHAIN_URL} -O toolchain.tar.gz
|
||||
tar -C ~/cache/${TOOLCHAIN} -xaf toolchain.tar.gz
|
||||
else
|
||||
echo "Unsupported toolchain file extension: ${FILE_EXT}"
|
||||
exit 1
|
||||
fi
|
||||
shell: bash
|
||||
|
||||
- name: Setup Toolchain
|
||||
env:
|
||||
TOOLCHAIN: ${{ inputs.toolchain }}
|
||||
run: |
|
||||
if [[ ${TOOLCHAIN} == arm-iar ]]; then
|
||||
sudo dpkg -i ~/cache/${TOOLCHAIN}/iar-lmsc-tools.deb
|
||||
sudo apt install -y ~/cache/${TOOLCHAIN}/cxarm.deb
|
||||
TOOLCHAIN_PATH="/opt/iar/cxarm/arm/bin"
|
||||
elif [[ ${TOOLCHAIN} == ft9xx-gcc ]]; then
|
||||
sudo apt install -y ~/cache/${TOOLCHAIN}/ft9xxtoolchain.deb
|
||||
TOOLCHAIN_PATH="/opt/ft32/bin"
|
||||
else
|
||||
# Find the single toolchain bin directory
|
||||
TOOLCHAIN_BIN_DIRS=(~/cache/${TOOLCHAIN}/*/bin)
|
||||
if [[ ${#TOOLCHAIN_BIN_DIRS[@]} -ne 1 ]]; then
|
||||
echo "Error: Expected exactly one toolchain bin directory, found ${#TOOLCHAIN_BIN_DIRS[@]}"
|
||||
exit 1
|
||||
fi
|
||||
TOOLCHAIN_PATH="${TOOLCHAIN_BIN_DIRS[0]}"
|
||||
fi
|
||||
# Convert to native path for Windows compatibility
|
||||
if [[ "$RUNNER_OS" == "Windows" ]]; then
|
||||
TOOLCHAIN_PATH=$(cygpath -w "$TOOLCHAIN_PATH")
|
||||
fi
|
||||
echo "$TOOLCHAIN_PATH" >> $GITHUB_PATH
|
||||
shell: bash
|
||||
@@ -0,0 +1,54 @@
|
||||
name: Setup ESP-IDF Toolchain
|
||||
|
||||
inputs:
|
||||
toolchain:
|
||||
description: 'Toolchain name'
|
||||
required: true
|
||||
toolchain_version:
|
||||
description: 'Toolchain version'
|
||||
required: false
|
||||
default: 'v5.5.3'
|
||||
|
||||
runs:
|
||||
using: "composite"
|
||||
steps:
|
||||
- name: Set DOCKER_ESP_IDF
|
||||
env:
|
||||
TOOLCHAIN: ${{ inputs.toolchain }}
|
||||
run: |
|
||||
DOCKER_ESP_IDF=$HOME/cache/${TOOLCHAIN}/docker_image.tar
|
||||
echo "DOCKER_ESP_IDF=$DOCKER_ESP_IDF" >> $GITHUB_ENV
|
||||
shell: bash
|
||||
|
||||
- name: Cache Docker Image
|
||||
uses: actions/cache@v5
|
||||
id: cache-toolchain-espressif
|
||||
with:
|
||||
path: ${{ env.DOCKER_ESP_IDF }}
|
||||
key: ${{ inputs.toolchain }}-${{ inputs.toolchain_version }}
|
||||
|
||||
- name: Pull and Save Docker Image
|
||||
if: steps.cache-toolchain-espressif.outputs.cache-hit != 'true'
|
||||
env:
|
||||
TOOLCHAIN_VERSION: ${{ inputs.toolchain_version }}
|
||||
run: |
|
||||
docker pull espressif/idf:${TOOLCHAIN_VERSION}
|
||||
mkdir -p $(dirname $DOCKER_ESP_IDF)
|
||||
docker save -o $DOCKER_ESP_IDF espressif/idf:${TOOLCHAIN_VERSION}
|
||||
du -sh $DOCKER_ESP_IDF
|
||||
shell: bash
|
||||
|
||||
- name: Load Docker Image
|
||||
if: steps.cache-toolchain-espressif.outputs.cache-hit == 'true'
|
||||
run: |
|
||||
du -sh $DOCKER_ESP_IDF
|
||||
docker load --input $DOCKER_ESP_IDF
|
||||
shell: bash
|
||||
|
||||
- name: Tag Local Image
|
||||
env:
|
||||
TOOLCHAIN_VERSION: ${{ inputs.toolchain_version }}
|
||||
run: |
|
||||
docker tag espressif/idf:${TOOLCHAIN_VERSION} espressif/idf:tinyusb
|
||||
docker images
|
||||
shell: bash
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"aarch64-gcc": "https://developer.arm.com/-/media/Files/downloads/gnu-a/10.3-2021.07/binrel/gcc-arm-10.3-2021.07-x86_64-aarch64-none-elf.tar.xz",
|
||||
"arm-clang": "https://github.com/ARM-software/LLVM-embedded-toolchain-for-Arm/releases/download/release-19.1.1/LLVM-ET-Arm-19.1.1-Linux-x86_64.tar.xz",
|
||||
"arm-gcc": "https://github.com/xpack-dev-tools/arm-none-eabi-gcc-xpack/releases/download/v14.2.1-1.1/xpack-arm-none-eabi-gcc-14.2.1-1.1-linux-x64.tar.gz",
|
||||
"ft9xx-gcc": "https://github.com/Bridgetek/ft32-toolchain-linux/releases/download/v2.7.6/ft9xxtoolchain_2.7.6_amd64.deb",
|
||||
"arm-gcc-macos-latest": "https://github.com/xpack-dev-tools/arm-none-eabi-gcc-xpack/releases/download/v14.2.1-1.1/xpack-arm-none-eabi-gcc-14.2.1-1.1-darwin-arm64.tar.gz",
|
||||
"arm-gcc-windows-latest": "https://github.com/xpack-dev-tools/arm-none-eabi-gcc-xpack/releases/download/v14.2.1-1.1/xpack-arm-none-eabi-gcc-14.2.1-1.1-win32-x64.zip",
|
||||
"msp430-gcc": "http://software-dl.ti.com/msp430/msp430_public_sw/mcu/msp430/MSPGCC/9_2_0_0/export/msp430-gcc-9.2.0.50_linux64.tar.bz2",
|
||||
"riscv-gcc": "https://github.com/xpack-dev-tools/riscv-none-elf-gcc-xpack/releases/download/v13.2.0-2/xpack-riscv-none-elf-gcc-13.2.0-2-linux-x64.tar.gz",
|
||||
"rx-gcc": "https://github.com/hathach/rx_device/releases/download/0.0.1/gcc-8.3.0.202411-GNURX-ELF.run",
|
||||
"arm-iar": "https://netstorage.iar.com/FileStore/STANDARD/001/003/723/cxarm-9.70.1.deb"
|
||||
}
|
||||
Reference in new issue
Block a user