79 lines
1.9 KiB
YAML
79 lines
1.9 KiB
YAML
name: AVR Build
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- dev
|
|
- main
|
|
pull_request:
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: linux
|
|
|
|
steps:
|
|
- name: Version Checkout
|
|
run: cat /etc/os-release
|
|
|
|
- name: Checkout code
|
|
run: git clone $GITHUB_SERVER_URL/$GITHUB_REPOSITORY .
|
|
|
|
- name: Install AVR toolchain
|
|
run: |
|
|
apk update
|
|
apk add gcc-avr avr-libc binutils-avr make cppcheck
|
|
|
|
- name: Set build type from branch
|
|
id: vars
|
|
run: |
|
|
BRANCH="${GITHUB_REF_NAME}"
|
|
|
|
if [ "$BRANCH" = "dev" ]; then
|
|
echo "BUILD_TYPE=dev" >> $GITHUB_ENV
|
|
echo "PREFIX=DEV_ENO" >> $GITHUB_ENV
|
|
else
|
|
echo "BUILD_TYPE=main" >> $GITHUB_ENV
|
|
echo "PREFIX=ENO" >> $GITHUB_ENV
|
|
fi
|
|
|
|
echo "VERSION=${GITHUB_SHA::7}" >> $GITHUB_ENV
|
|
|
|
- name: Code check
|
|
run: cppcheck --enable=all --inconclusive src \
|
|
--platform=avr8 \
|
|
--std=c99 \
|
|
-I/usr/lib/avr/15.2.0/include \
|
|
src/
|
|
|
|
- name: Build firmware
|
|
run: |
|
|
make BUILD_TYPE=$BUILD_TYPE PREFIX=$PREFIX VERSION=$VERSION
|
|
|
|
|
|
- name: Publish HEX to binaries repo
|
|
run: |
|
|
git config --global user.name "gitea-runner"
|
|
git config --global user.email "runner@runner.runner"
|
|
|
|
# clone binaries repo
|
|
git clone https://gitea.swiss-dedi.ch/Lukas/Flextron-Binaries.git bins
|
|
|
|
# decide target folder
|
|
if [ "$BUILD_TYPE" = "dev" ]; then
|
|
TARGET_DIR="bins/dev"
|
|
else
|
|
TARGET_DIR="bins/live"
|
|
fi
|
|
|
|
mkdir -p "$TARGET_DIR"
|
|
|
|
# copy newest hex
|
|
cp $(find build -name "*.hex" | head -n 1) \
|
|
"$TARGET_DIR/${PREFIX}_${VERSION}.hex"
|
|
|
|
cd bins
|
|
|
|
git add .
|
|
git commit -m "CI build $BUILD_TYPE $VERSION" || echo "No changes"
|
|
|
|
git push |