Small fix in build workflow #3
This file contains 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
name: USBSID-Pico Build | |
env: | |
BUILD_THREADS: 4 | |
BUILD_TYPE: Release | |
# Pico-SDK version | |
PICO_SDK_REF: 2.0.0 | |
PICO_EXTRAS_REF: sdk-2.0.0 | |
PICOTOOL_REF: 2.0.0 | |
on: | |
push: | |
paths: | |
- "src/**" | |
- ".github/workflows/build.yml" | |
- "CMakeLists.txt" | |
# Only run on dev branch | |
branches: [dev] | |
# Allows you to run this workflow manually from the Actions tab when needed | |
workflow_dispatch: | |
jobs: | |
build: | |
name: Build | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
include: | |
- { | |
buildname: Pico, | |
directory: pico, | |
pico_board: pico, | |
pico_platform: rp2040, | |
} | |
- { | |
buildname: Pico_W, | |
directory: picow, | |
pico_board: pico_w, | |
pico_platform: rp2040, | |
} | |
- { | |
buildname: Pico2, | |
directory: pico2, | |
pico_board: pico2, | |
pico_platform: rp2350-arm-s, | |
} | |
fail-fast: false | |
steps: | |
- name: 🛠️ Arm GNU Toolchain (arm-none-eabi-gcc) | |
uses: carlosperate/arm-none-eabi-gcc-action@v1 | |
- name: Install Act dependencies | |
if: ${{ env.ACT }} | |
run: | | |
apt-get update && apt-get install sudo -y | |
- name: Install dependencies | |
if: ${{ env.ACT }} | |
run: | | |
sudo apt-get update && sudo apt-get install curl build-essential cmake -y | |
- name: 🗒️ Check GCC Version | |
id: compiler-version | |
run: | | |
arm-none-eabi-gcc --version | |
ver=$(arm-none-eabi-gcc --version | head -1) | |
echo "CC_VERSION=$ver" >> $GITHUB_OUTPUT | |
- name: 💽 Cache Pico-SDK | |
id: cache-pico-sdk | |
uses: actions/cache@v4 | |
with: | |
path: pico-sdk | |
key: ${{runner.os}}-pico-sdk-${{env.PICO_SDK_REF}} | |
- name: 📇 Checkout Pico-SDK | |
if: ${{steps.cache-pico-sdk.outputs.cache-hit != 'true' }} | |
uses: actions/checkout@v4 | |
with: | |
repository: raspberrypi/pico-sdk | |
ref: ${{env.PICO_SDK_REF}} | |
path: pico-sdk | |
submodules: recursive | |
- name: 🔖 Add PICO_SDK_PATH to Environment | |
run: | | |
echo "PICO_SDK_PATH=${{github.workspace}}/pico-sdk" >> $GITHUB_ENV | |
cd pico-sdk/lib/tinyusb | |
git checkout master | |
git pull | |
python3 tools/get_deps.py rp2040 | |
- name: 💽 Cache Pico-Extras | |
id: cache-pico-extras | |
uses: actions/cache@v4 | |
with: | |
path: pico-extras | |
key: ${{runner.os}}-pico-extras-${{env.PICO_EXTRAS_REF}} | |
- name: 📇 Checkout Pico-Extras | |
if: ${{steps.cache-pico-extras.outputs.cache-hit != 'true' }} | |
uses: actions/checkout@v4 | |
with: | |
repository: raspberrypi/pico-extras | |
ref: ${{env.PICO_EXTRAS_REF}} | |
path: pico-extras | |
submodules: recursive | |
- name: 🔖 Add PICO_EXTRAS_PATH to Environment | |
run: | | |
echo "PICO_EXTRAS_PATH=${{github.workspace}}/pico-extras" >> $GITHUB_ENV | |
ls pico-extras/external -la | |
- name: 💽 Cache picotool | |
id: cache-picotool | |
uses: actions/cache@v4 | |
with: | |
path: picotool | |
key: ${{runner.os}}-picotool-${{env.PICOTOOL_REF}} | |
- name: 📇 Checkout picotool | |
if: ${{steps.cache-picotool.outputs.cache-hit != 'true' }} | |
uses: actions/checkout@v4 | |
with: | |
repository: raspberrypi/picotool | |
ref: ${{env.PICOTOOL_REF}} | |
path: picotool-src | |
submodules: recursive | |
- name: 🏭 Build picotool | |
if: ${{steps.cache-picotool.outputs.cache-hit != 'true' }} | |
run: | | |
cmake -S picotool-src -B picotool-src/build -DCMAKE_INSTALL_PREFIX=${{github.workspace}}/picotool -DPICOTOOL_FLAT_INSTALL=1 | |
cd picotool-src/build | |
make -j ${{env.BUILD_THREADS}} install | |
- name: 📇 Checkout project | |
uses: actions/checkout@v4 | |
with: | |
path: master | |
- name: 🏭 Create build folders | |
run: | | |
mkdir -p ${{github.workspace}}/master/build_${{matrix.directory}} | |
- name: 🏭 Setup CMAKE | |
run: | | |
unset PICO_PLATFORM | |
unset PICO_BOARD | |
cmake -S master -B ${{github.workspace}}/master/build_${{matrix.directory}} -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DPICO_PLATFORM=${{matrix.pico_platform}} -DPICO_BOARD=${{matrix.pico_board}} -Dpicotool_DIR=${{github.workspace}}/picotool/picotool $extra_arg | |
- name: 🏭 Build ${{matrix.name}} | |
run: | | |
cmake --build ${{github.workspace}}/master/build_${{matrix.directory}} --config ${{env.BUILD_TYPE}} -j ${{env.BUILD_THREADS}} | |
- name: List build files | |
run: | | |
ls ${{github.workspace}}/master/build_${{matrix.directory}}/*.uf2 -la | |
- name: 💾 Gather Artifact Files | |
working-directory: ${{github.workspace}}/master | |
run: | | |
mkdir dist | |
cp -av build_${{matrix.directory}}/*.uf2 dist/ | |
- name: Get current branch | |
run: | | |
echo "BRANCHNAME=$(echo ${GITHUB_REF#refs/heads/})" >> $GITHUB_ENV | |
- name: Get current datetime | |
run: | | |
echo "DATETIME=$(date +'%Y%m%dT%H%M%S')" >> $GITHUB_ENV | |
- name: 💾 Upload Artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: usbsid${{matrix.pico_board}}-${{env.BRANCHNAME}}-autobuild-${{github.run_number}}-${{env.DATETIME}} | |
path: ${{github.workspace}}/master/dist |