setup CI skeleton

This commit is contained in:
j3d1 2021-06-19 16:42:38 +02:00
parent ef1767a4d2
commit f7c6692a82
6 changed files with 155 additions and 0 deletions

91
.build.yml Normal file
View file

@ -0,0 +1,91 @@
kind: pipeline
type: docker
name: default
image:
tasks:
-
steps:
- name: submodules
image: alpine/git
commands:
- git submodule update --init --recursive
- name: patch
image: alpine/git
depends_on: [ submodules ]
commands:
- |-
sed -i 's/GNU bash, version (3\\\.\[1-9\]|4)/GNU bash, version (3.[1-9]|4|5)/g' modules/sdk/crosstool-NG/configure.ac
- mkdir -p modules/sdk/crosstool-NG/.build/tarballs
- wget https://github.com/libexpat/libexpat/releases/download/R_2_1_0/expat-2.1.0.tar.gz -O modules/sdk/crosstool-NG/.build/tarballs/expat-2.1.0.tar.gz
- name: toolchain
image: debian:sid
depends_on: [ patch ]
commands:
- apt update
- apt install -y make bash gawk g++ gcc libc6-dev flex bison automake autoconf gperf texinfo wget git bzip2 help2man libtool libtool-bin unrar-free unzip ncurses-dev libexpat-dev python-dev python3
- cd modules/sdk
- export CT_EXPERIMENTAL=y
- export CT_ALLOW_BUILD_AS_ROOT=y
- export CT_ALLOW_BUILD_AS_ROOT_SURE=y
- make standalone=y -j$(nproc)
- wget -N https://raw.githubusercontent.com/espressif/esptool/master/esptool.py -O xtensa-lx106-elf/bin/esptool.py
- name: firmware
image: debian:sid
depends_on: [ toolchain ]
commands:
- apt update
- apt remove --purge -y python2
- apt install -y make python3 python3-serial python-is-python3 perl
- export PATH=$(pwd)/modules/sdk/xtensa-lx106-elf/bin:$PATH
- make firmware -j$(nproc)
- name: pcb
image: setsoft/kicad_auto
commands:
- apt update
- apt install -y make zip
- make pcb -j$(nproc)
- name: case
image: debian:sid
commands:
- apt update
- apt install -y make
- make case -j$(nproc)
- name: unittest
image: debian:sid
depends_on: [ patch ]
commands:
- apt update
- apt install -y make
- make -C firmware unittest
- name: systest
image: debian:sid
depends_on: [ firmware ]
commands:
- apt update
- apt install -y make
- make -C firmware systest
- name: gitea_release
image: plugins/gitea-release
depends_on: [ firmware, pcb, case, unittest, systest ]
settings:
api_key:
from_secret: j3d1_droneio_key
base_url: https://git.neulandlabor.de/
files:
- firmware/firmware/fiatlux.bin
checksum:
- sha512
- md5
title: buildtest
when:
event: tag

16
Makefile Normal file
View file

@ -0,0 +1,16 @@
.PHONY: firmware case pcb
all: firmware case pcb
firmware:
+@make -C firmware all
flash:
+@make -C firmware flash
case:
+@make -C case all
pcb:
+@make -C pcb all

2
case/Makefile Normal file
View file

@ -0,0 +1,2 @@
all:
@echo case

26
firmware/Makefile Normal file
View file

@ -0,0 +1,26 @@
PROGRAM=fiatlux
EXTRA_CFLAGS=-O3
#Enable debugging
#EXTRA_CFLAGS+=-DLWIP_DEBUG=1 -DHTTPD_DEBUG=LWIP_DBG_ON
EXTRA_COMPONENTS=extras/i2s_dma extras/ws2812_i2s extras/dhcpserver extras/mbedtls extras/sntp extras/cpp_support
LIBS = hal m
FLASH_MODE = dio
include ../modules/rtos/common.mk
html:
@echo "Generating fsdata.."
cd fsdata && ./makefsdata
test: unittest systest
unittest:
true
systest:
true

16
firmware/fiatlux.c Normal file
View file

@ -0,0 +1,16 @@
#include <espressif/esp_common.h>
#include <esp/uart.h>
#include <stdio.h>
void user_init(void)
{
uart_set_baud(0, 115200);
printf("SDK version: %s\n", sdk_system_get_sdk_version());
sdk_wifi_set_sleep_type(WIFI_SLEEP_MODEM);
while(1);
}

4
pcb/Makefile Normal file
View file

@ -0,0 +1,4 @@
all:
@mkdir -p gen
@touch gen/foo
@cd gen; zip ../gen.zip *