rusefi_documentation/Build-Server-and-Automation.md

2.7 KiB

Github Actions is currently in charge of:

  • Firmware Builds: continues integration publishing at https://rusefi.com/build_server/
  • Console Builds
  • Simulator Builds
  • Android App Builds
  • TS Plugin Builds
  • Generating configs
  • Running Unit Tests
  • Generating Coverity code coverage pages
  • Generating Doxygen documentation
  • Generating iBOMs for hardware
  • Uploading .ini files into rusEFI Online database using RUSEFI_ONLINE_FTP_USER
  • Generating Hardware PCB visual diffs
  • Updating date stamps for builds
  • Synchronizing between rusefi/rusefi/wiki to rusefi_documentation repo

We have tried to keep Jenkins working in case we need to revert to it.

Jenkins setup

Jobs:

  1. unit_tests
  2. integration_and_primary_bundle
  3. documentation
  4. build_extra_bundles
  5. git2svn_sync

Install Cygwin

Download Cygwin

Cygwin packages that need to be installed:

  • make
  • gcc-core
  • mingw64-i686-gcc-core
  • mingw64-i686-gcc-g++
  • mingw64-x86_64-gcc-core
  • mingw64-x86_64-gcc-g++
  • python3
  • git
  • subversion
  • doxygen
  • zip
  • ncftp
  • wget
  • ccache
  • graphviz

Install Java JDK 8

Download JDK 8

Install Ant:

Download Ant

Install Jenkins

Download Jenkins

Install Kicad

Download Kicad for iBom automation

Install for Hardware Testing

STM32 ST-Link Utility

ST Virtual Serial Driver

STM32 Virtual COM Port Driver

System Environment Variables:

Variable Example
CCACHE_DIR C:\ccache
ANT_HOME C:\Program Files\apache-ant-1.10.8
JAVA_HOME C:\Program Files\Java\jdk1.8.0_251
RUSEFI_FTP_SERVER ftp.yourdomain.com
RUSEFI_BUILD_FTP_USER rusefi_firmware
RUSEFI_BUILD_FTP_PASS secretpass
RUSEFI_DOXYGEN_FTP_USER rusefi_doxygen
RUSEFI_DOXYGEN_FTP_PASS secretpass

Add to Path:

Tool Example
Java C:\Program Files (x86)\Common Files\Oracle\Java\javapath
Java %JAVA_HOME%\bin
Ant %ANT_HOME%\bin
Cygwin C:\cygwin64\bin
GCC C:\Program Files (x86)\GNU Arm Embedded Toolchain\9 2020-q2-update\bin

Additional Jenkins set-up

Additional plugins:

  • Pipeline GitHub Notify Step

Show current state of Jenkins build on GitHub repo - StackOverflow

https://github.com/settings/tokens

Discard Old Build

smtphost: smtp.gmail.com r***@gmail.com useSsl=yes