CI tests: Cypress test

pull/644/head
jackctj117 2025-12-03 16:45:29 -07:00
parent 90a5f29dd3
commit 9ff3536347
3 changed files with 122 additions and 7 deletions

View File

@ -0,0 +1,116 @@
name: Wolfboot Reusable Build Workflow for Cypress PSoC6
on:
workflow_call:
inputs:
arch:
required: true
type: string
config-file:
required: true
type: string
make-args:
required: false
type: string
jobs:
build:
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- uses: actions/checkout@v4
with:
submodules: true
- uses: actions/checkout@v4
with:
repository: Infineon/psoc6pdl
path: lib/psoc6pdl
- uses: actions/checkout@v4
with:
repository: Infineon/TARGET_CY8CKIT-062S2-43012
path: lib/TARGET_CY8CKIT-062S2-43012
- uses: actions/checkout@v4
with:
repository: Infineon/core-lib
path: lib/core-lib
- name: Patch cy_syslib.c to declare cy_delay32kMs
run: |
# Add extern declaration for cy_delay32kMs directly in cy_syslib.c
sed -i '/#include "cy_syslib.h"/a \\\n/* Extern declaration for delay variable */\nextern uint32_t cy_delay32kMs;' lib/psoc6pdl/drivers/source/cy_syslib.c
- name: Workaround for sources.list
run: |
# Replace sources
set -euxo pipefail
# Peek (what repos are active now)
apt-cache policy
grep -RInE '^(deb|Types|URIs)' /etc/apt || true
# Enable nullglob so *.list/*.sources that don't exist don't break sed
shopt -s nullglob
echo "Replace sources.list (legacy)"
sudo sed -i \
-e "s|https\?://azure\.archive\.ubuntu\.com/ubuntu/?|http://mirror.arizona.edu/ubuntu/|g" \
/etc/apt/sources.list || true
echo "Replace sources.list.d/*.list (legacy)"
for f in /etc/apt/sources.list.d/*.list; do
sudo sed -i \
-e "s|https\?://azure\.archive\.ubuntu\.com/ubuntu/?|http://mirror.arizona.edu/ubuntu/|g" \
"$f"
done
echo "Replace sources.list.d/*.sources (deb822)"
for f in /etc/apt/sources.list.d/*.sources; do
sudo sed -i \
-e "s|https\?://azure\.archive\.ubuntu\.com/ubuntu/?|http://mirror.arizona.edu/ubuntu/|g" \
-e "s|https\?://azure\.archive\.ubuntu\.com|http://mirror.arizona.edu|g" \
"$f"
done
echo "Fix /etc/apt/apt-mirrors.txt (used by URIs: mirror+file:...)"
if grep -qE '^[[:space:]]*https?://azure\.archive\.ubuntu\.com/ubuntu/?' /etc/apt/apt-mirrors.txt; then
# Replace azure with our mirror (idempotent)
sudo sed -i 's|https\?://azure\.archive\.ubuntu\.com/ubuntu/|http://mirror.arizona.edu/ubuntu/|g' /etc/apt/apt-mirrors.txt
fi
# Peek (verify changes)
grep -RIn "azure.archive.ubuntu.com" /etc/apt || true
grep -RInE '^(deb|Types|URIs)' /etc/apt || true
echo "--- apt-mirrors.txt ---"
cat /etc/apt/apt-mirrors.txt || true
- name: Update repository
run: sudo apt-get update
- name: Install cross compilers
run: |
sudo apt-get install -y gcc-arm-none-eabi
- name: make distclean
run: |
make distclean
- name: Select config
run: |
cp ${{inputs.config-file}} .config && make include/target.h
- name: Build tools
run: |
make -C tools/keytools && make -C tools/bin-assemble
- name: Build wolfboot
run: |
make ${{inputs.make-args}} V=1

View File

@ -8,12 +8,11 @@ on:
jobs:
# TODO: cypsoc6.config requires cy_device_headers.h and component defines
# cypsoc6_test:
# uses: ./.github/workflows/test-build-psoc6.yml
# with:
# arch: arm
# config-file: ./config/examples/cypsoc6.config
cypsoc6_test:
uses: ./.github/workflows/test-build-psoc6.yml
with:
arch: arm
config-file: ./config/examples/cypsoc6.config
hifive1_test:
uses: ./.github/workflows/test-build-riscv.yml

View File

@ -960,8 +960,8 @@ ifeq ($(TARGET),psoc6)
$(CYPRESS_PDL)/drivers/source/cy_crypto.o
CFLAGS+=\
-I$(CYPRESS_PDL)/drivers/include \
-I$(CYPRESS_PDL)/devices/include \
-I$(CYPRESS_PDL)/drivers/include \
-I$(CYPRESS_PDL)/cmsis/include \
-I$(CYPRESS_TARGET_LIB) \
-I$(CYPRESS_CORE_LIB)/include \