199 lines
6.3 KiB
YAML
199 lines
6.3 KiB
YAML
name: Build
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- master
|
|
- embedded_firmware_ci
|
|
pull_request:
|
|
branches:
|
|
- master
|
|
|
|
jobs:
|
|
PC_Application_Ubuntu:
|
|
runs-on: ubuntu-18.04
|
|
steps:
|
|
- uses: actions/checkout@v1
|
|
|
|
- name: Install dependencies
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install -y libusb-1.0-0-dev qt5-default qt5-qmake qtbase5-dev
|
|
|
|
- name: Get build timestamp
|
|
id: id_date
|
|
run: echo "::set-output name=timestamp::$(date +%Y-%m-%d-%H-%M-%S)"
|
|
|
|
- name: Get app version
|
|
id: id_version
|
|
run: |
|
|
cd Software/PC_Application
|
|
fw_major=`grep -oP '(?<=FW_MAJOR=)[0-9]+' LibreVNA-GUI.pro`
|
|
fw_minor=`grep -oP '(?<=FW_MINOR=)[0-9]+' LibreVNA-GUI.pro`
|
|
fw_patch=`grep -oP '(?<=FW_PATCH=)[0-9]+' LibreVNA-GUI.pro`
|
|
echo "::set-output name=app_version::v$fw_major.$fw_minor.$fw_patch-${{steps.id_date.outputs.timestamp}}"
|
|
|
|
- name: Build application
|
|
run: |
|
|
cd Software/PC_Application
|
|
qmake LibreVNA-GUI.pro
|
|
make -j9
|
|
shell: bash
|
|
|
|
- name: Upload artifact
|
|
env:
|
|
LIBREVNA_VERSION: "${{steps.id_version.outputs.app_version}}"
|
|
uses: actions/upload-artifact@v2
|
|
with:
|
|
name: LibreVNA-GUI-Ubuntu-${{env.LIBREVNA_VERSION}}
|
|
path: Software/PC_Application/LibreVNA-GUI
|
|
|
|
PC_Application_Windows:
|
|
runs-on: windows-2019
|
|
steps:
|
|
- uses: actions/checkout@v1
|
|
- uses: msys2/setup-msys2@v2
|
|
|
|
- name: Install Qt
|
|
uses: jurplel/install-qt-action@v2
|
|
with:
|
|
version: '5.15.1'
|
|
arch: 'win64_mingw81'
|
|
|
|
- name: Download libusb
|
|
run: |
|
|
curl -o libusb.7z -L https://github.com/libusb/libusb/releases/download/v1.0.23/libusb-1.0.23.7z
|
|
7z x libusb.7z -r -olibusb
|
|
Xcopy /E /I /Y libusb\include ..\Qt\5.15.1\mingw81_64\include
|
|
Xcopy /E /I /Y libusb\MinGW64\static Software\PC_Application
|
|
shell: cmd
|
|
|
|
- name: Get build timestamp
|
|
shell: msys2 {0}
|
|
id: id_date
|
|
run: echo "::set-output name=timestamp::$(date +%Y-%m-%d-%H-%M-%S)"
|
|
|
|
- name: Get app version
|
|
id: id_version
|
|
shell: msys2 {0}
|
|
run: |
|
|
cd Software/PC_Application
|
|
fw_major=`grep -oP '(?<=FW_MAJOR=)[0-9]+' LibreVNA-GUI.pro`
|
|
fw_minor=`grep -oP '(?<=FW_MINOR=)[0-9]+' LibreVNA-GUI.pro`
|
|
fw_patch=`grep -oP '(?<=FW_PATCH=)[0-9]+' LibreVNA-GUI.pro`
|
|
echo "::set-output name=app_version::v$fw_major.$fw_minor.$fw_patch-${{steps.id_date.outputs.timestamp}}"
|
|
|
|
- name: Build application
|
|
run: |
|
|
cd Software/PC_Application
|
|
qmake LibreVNA-GUI.pro
|
|
make -j9
|
|
shell: cmd
|
|
|
|
- name: Deploy application
|
|
run: |
|
|
cd Software/PC_Application/release
|
|
del *.o *.cpp
|
|
windeployqt.exe .
|
|
copy ..\..\..\..\Qt\5.15.1\mingw81_64\bin\libwinpthread-1.dll .
|
|
copy ..\..\..\..\Qt\5.15.1\mingw81_64\bin\libgcc_s_seh-1.dll .
|
|
copy "..\..\..\..\Qt\5.15.1\mingw81_64\bin\libstdc++-6.dll" .
|
|
copy ..\..\..\..\Qt\5.15.1\mingw81_64\bin\Qt5OpenGL.dll .
|
|
shell: cmd
|
|
|
|
- name: Upload
|
|
uses: actions/upload-artifact@v2
|
|
env:
|
|
LIBREVNA_VERSION: "${{steps.id_version.outputs.app_version}}"
|
|
with:
|
|
name: GUI_Windows-${{env.LIBREVNA_VERSION}}
|
|
path: Software/PC_Application/release
|
|
|
|
PC_Application_OSX:
|
|
runs-on: macos-10.15
|
|
steps:
|
|
- uses: actions/checkout@v1
|
|
|
|
- name: Install dependencies
|
|
run: |
|
|
brew install qt@5 libusb
|
|
|
|
- name: Set Environment
|
|
run: |
|
|
echo "/usr/local/opt/qt@5/bin" >> $GITHUB_PATH
|
|
|
|
- name: Get build timestamp
|
|
id: id_date
|
|
run: echo "::set-output name=timestamp::$(date +%Y-%m-%d-%H-%M-%S)"
|
|
|
|
- name: Get app version
|
|
id: id_version
|
|
run: |
|
|
cd Software/PC_Application
|
|
fw_major=`pcregrep -o '(?<=FW_MAJOR=)[0-9]+' LibreVNA-GUI.pro`
|
|
fw_minor=`pcregrep -o '(?<=FW_MINOR=)[0-9]+' LibreVNA-GUI.pro`
|
|
fw_patch=`pcregrep -o '(?<=FW_PATCH=)[0-9]+' LibreVNA-GUI.pro`
|
|
echo "::set-output name=app_version::v$fw_major.$fw_minor.$fw_patch-${{steps.id_date.outputs.timestamp}}"
|
|
|
|
- name: Build application
|
|
run: |
|
|
cd Software/PC_Application
|
|
qmake LibreVNA-GUI.pro
|
|
make -j9
|
|
macdeployqt LibreVNA-GUI.app
|
|
zip -ry LibreVNA-GUI.zip LibreVNA-GUI.app
|
|
shell: bash
|
|
|
|
- name: Upload artifact
|
|
env:
|
|
LIBREVNA_VERSION: "${{steps.id_version.outputs.app_version}}"
|
|
uses: actions/upload-artifact@v2
|
|
with:
|
|
name: LibreVNA-GUI-OSX-${{env.LIBREVNA_VERSION}}
|
|
path: Software/PC_Application/LibreVNA-GUI.zip
|
|
|
|
Embedded_Firmware:
|
|
runs-on: ubuntu-20.04
|
|
steps:
|
|
- uses: actions/checkout@v1
|
|
|
|
- name: Install toolchain
|
|
run: |
|
|
sudo apt-get install -y gcc-arm-none-eabi binutils-arm-none-eabi
|
|
|
|
- name: Get build timestamp
|
|
id: id_date
|
|
run: echo "::set-output name=timestamp::$(date +%Y-%m-%d-%H-%M-%S)"
|
|
|
|
- name: Get app version
|
|
id: id_version
|
|
run: |
|
|
cd Software/VNA_embedded
|
|
fw_major=`grep -oP '(?<=FW_MAJOR=)[0-9]+' Makefile`
|
|
fw_minor=`grep -oP '(?<=FW_MINOR=)[0-9]+' Makefile`
|
|
fw_patch=`grep -oP '(?<=FW_PATCH=)[0-9]+' Makefile`
|
|
hw_revision=`grep "DHW_REVISION=" Makefile | sed "s/-DHW_REVISION=\"'//" | sed "sr'\" [\]rr"`
|
|
echo "::set-output name=app_version::hw-rev-$hw_revision-v$fw_major.$fw_minor.$fw_patch-${{steps.id_date.outputs.timestamp}}"
|
|
|
|
- name: Build application
|
|
run: |
|
|
cd Software/VNA_embedded
|
|
make -j9
|
|
cp build/VNA_embedded.elf ../../
|
|
shell: bash
|
|
|
|
- name: Combine with FPGA bitstream
|
|
run: |
|
|
python3 AssembleFirmware.py
|
|
shell: bash
|
|
|
|
- name: Upload
|
|
uses: actions/upload-artifact@v2
|
|
env:
|
|
LIBREVNA_VERSION: "${{steps.id_version.outputs.app_version}}"
|
|
with:
|
|
name: EmbeddedFirmware-${{env.LIBREVNA_VERSION}}
|
|
path: |
|
|
VNA_embedded.elf
|
|
combined.vnafw
|