-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
2 changed files
with
184 additions
and
0 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,181 @@ | ||
name: USBSID-Pico | ||
|
||
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 |
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