Skip to content

Target: pimoroni_plasma2350 #204

Target: pimoroni_plasma2350

Target: pimoroni_plasma2350 #204

Workflow file for this run

name: HyperSerialPico CI Build
on: [push]
jobs:
###########################
#### HyperSerialPico ######
###########################
HyperSerialPico:
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v6.0.2
with:
submodules: recursive
- name: Install GNU Arm Embedded Toolchain
uses: carlosperate/arm-none-eabi-gcc-action@v1
with:
release: '14.2.Rel1'
- name: Build packages
shell: bash
run: |
mkdir build
cd build
cmake ..
cmake --build . --config Release
- uses: actions/upload-artifact@v7.0.0
name: Upload artifacts (release)
with:
name: firmware-release-generic-RP2040
path: |
firmware/*.uf2
- name: Build packages for generic RP2350
shell: bash
run: |
cd build
rm -rf *
rm -rf ../firmware/*
cmake -DTARGET_BOARD=pico2 -DCMAKE_BUILD_TYPE=Release ..
cmake --build .
zip -j ../firmware/firmware_generic_RP2350.zip ../firmware/*
- uses: actions/upload-artifact@v7.0.0
name: Upload artifacts (release generic RP2350)
with:
name: firmware-release-generic-RP2350
archive: false
path: |
firmware/*.zip
- name: Build packages for Adafruit Feather RP2040 Scorpio
shell: bash
run: |
cd build
rm -rf *
rm -rf ../firmware/*
echo "Neopixel is using GPIO16(OUTPUT_DATA_PIN) on output 0." > ../firmware/Pinout_for_Adafruit_Feather_RP2040_Scorpio.txt
echo "SPI is using spi0 interface pins: GPIO19(OUTPUT_SPI_DATA_PIN) and GPIO18(OUTPUT_SPI_CLOCK_PIN) on output 3 and 2 respectively." >> ../firmware/Pinout_for_Adafruit_Feather_RP2040_Scorpio.txt
cmake -DOVERRIDE_BOOT_WORKAROUND=ON -DOVERRIDE_DATA_PIN=16 -DOVERRIDE_SPI_DATA_PIN=19 -DOVERRIDE_SPI_CLOCK_PIN=18 -DCMAKE_BUILD_TYPE=Release ..
cmake --build .
zip -j ../firmware/Adafruit_Feather_RP2040_Scorpio.zip ../firmware/*
- uses: actions/upload-artifact@v7.0.0
name: Upload artifacts (release for Adafruit_Feather_RP2040)
with:
name: firmware-release-adafruit-scorpio-RP2040
archive: false
path: |
firmware/*.zip
- name: Build packages for Adafruit ItsyBitsy RP2040
shell: bash
run: |
cd build
rm -rf *
rm -rf ../firmware/*
echo "Neopixel is using GPIO14(OUTPUT_DATA_PIN) on output 5." > ../firmware/Pinout_for_Adafruit_ItsyBitsy_RP2040.txt
cmake -DOVERRIDE_BOOT_WORKAROUND=ON -DOVERRIDE_DATA_PIN=14 -DCMAKE_BUILD_TYPE=Release ..
cmake --build .
rm ../firmware/*_Spi.uf2
zip -j ../firmware/Adafruit_ItsyBitsy_RP2040.zip ../firmware/*
- uses: actions/upload-artifact@v7.0.0
name: Upload artifacts (release for Adafruit_ItsyBitsy_RP2040)
with:
name: firmware-release-adafruit-itsybitsy-RP2040
archive: false
path: |
firmware/*.zip
- name: Build packages for Pimoroni Plasma Stick RP2040 W
shell: bash
run: |
cd build
rm -rf *
rm -rf ../firmware/*
echo "Neopixel is using GPIO15(OUTPUT_DATA_PIN) on output PIXELS." > ../firmware/Pinout_for_Pimoroni_Plasma_Stick_RP2040_W.txt
cmake -DOVERRIDE_DATA_PIN=15 -DCMAKE_BUILD_TYPE=Release ..
cmake --build .
rm ../firmware/*_Spi.uf2
zip -j ../firmware/Pimoroni_Plasma_Stick_RP2040_W.zip ../firmware/*
- uses: actions/upload-artifact@v7.0.0
name: Upload artifacts (release for Pimoroni_Plasma_Stick_RP2040_W)
with:
name: firmware-release-pimoroni-plasma-stick-RP2040-W
archive: false
path: |
firmware/*.zip
- name: Build packages for Pimoroni Plasma 2040
shell: bash
run: |
cd build
rm -rf *
rm -rf ../firmware/*
echo "Neopixel is using GPIO15(OUTPUT_DATA_PIN) on output DA." > ../firmware/Pinout_for_Pimoroni_Plasma_RP2040.txt
echo "SPI is using spi1 interface pins: GPIO15(OUTPUT_SPI_DATA_PIN) and GPIO14(OUTPUT_SPI_CLOCK_PIN) on output DA and CL respectively." >> ../firmware/Pinout_for_Pimoroni_Plasma_RP2040.txt
cmake -DOVERRIDE_DATA_PIN=15 -DOVERRIDE_SPI_INTERFACE=spi1 -DOVERRIDE_SPI_DATA_PIN=15 -DOVERRIDE_SPI_CLOCK_PIN=14 -DCMAKE_BUILD_TYPE=Release ..
cmake --build .
zip -j ../firmware/Pimoroni_Plasma_RP2040.zip ../firmware/*
- uses: actions/upload-artifact@v7.0.0
name: Upload artifacts (release for Pimoroni_Plasma_RP2040)
with:
name: firmware-release-pimoroni-plasma-RP2040
archive: false
path: |
firmware/*.zip
- name: Build packages for Pimoroni Plasma RP2350
shell: bash
run: |
cd build
rm -rf *
rm -rf ../firmware/*
echo "Neopixel is using GPIO15(OUTPUT_DATA_PIN) on output DA." > ../firmware/Pinout_for_Pimoroni_Plasma_RP2350.txt
echo "SPI is using spi1 interface pins: GPIO15(OUTPUT_SPI_DATA_PIN) and GPIO14(OUTPUT_SPI_CLOCK_PIN) on output DA and CL respectively." >> ../firmware/Pinout_for_Pimoroni_Plasma_RP2350.txt
cmake -DTARGET_BOARD=pimoroni_plasma2350 -DOVERRIDE_DATA_PIN=15 -DOVERRIDE_SPI_INTERFACE=spi1 -DOVERRIDE_SPI_DATA_PIN=15 -DOVERRIDE_SPI_CLOCK_PIN=14 -DCMAKE_BUILD_TYPE=Release ..
cmake --build .
zip -j ../firmware/Pimoroni_Plasma_RP2350.zip ../firmware/*
- uses: actions/upload-artifact@v7.0.0
name: Upload artifacts (release for Pimoroni_Plasma_RP2350)
with:
name: firmware-release-pimoroni-plasma-RP2350
archive: false
path: |
firmware/*.zip
################################
###### Publish Releases ########
################################
publish:
name: Publish Releases
if: startsWith(github.event.ref, 'refs/tags')
needs: [HyperSerialPico]
runs-on: ubuntu-24.04
permissions:
contents: write
steps:
# generate environment variables
- name: Generate environment variables from version and tag
run: |
echo "TAG=${GITHUB_REF/refs\/tags\//}" >> $GITHUB_ENV
echo "preRelease=false" >> $GITHUB_ENV
# If version contains alpha or beta, mark draft release as pre-release
- name: Mark release as pre-release
if: contains(env.VERSION, 'alpha') || contains(env.VERSION, 'beta')
run: echo "preRelease=true" >> $GITHUB_ENV
- uses: actions/download-artifact@v8.0.0
with:
pattern: firmware-release-*
merge-multiple: true
# create draft release and upload artifacts
- name: Create draft release
uses: softprops/action-gh-release@v2.5.0
with:
name: HyperSerialPico ${{ env.VERSION }}
tag_name: ${{ env.TAG }}
files: |
*.uf2
*.zip
draft: true
prerelease: ${{ env.preRelease }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}