Skip to content

Merge branch 'main' into fetcher #8352

Merge branch 'main' into fetcher

Merge branch 'main' into fetcher #8352

Workflow file for this run

name: 'main'
on:
push:
pull_request:
workflow_dispatch:
inputs:
Release_Date:
description: 'Release date of Raptor in format YYYY.MM'
default: ""
type: string
DEFAULT_DEVICES:
description: 'Name of production devices separated by comma'
default: ""
type: string
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
build-Ubuntu-R:
name: Ubuntu-Release
runs-on: ubuntu-latest
defaults:
run:
shell: bash
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Install dependenices
uses: ./.github/actions/
- name: Use ccache
uses: hendrikmuhs/ccache-action@v1.2.12
with:
key: Ubuntu-Release
- name: Release Build
run: |
make install CPU_CORES=2
ls -l build
cp -rf yosys_verific_rs/yosys/install/share/yosys build/share
tar -czf build.tar.gz build ${{ env.PREFIX }}
- name: Unit C test
run: |
make test ADDITIONAL_CMAKE_OPTIONS=-DBUILD_YOSYS_PLUGINS=ON
- name: Upload build
uses: actions/upload-artifact@v4
with:
name: Ubuntu-Release
path: build.tar.gz
retention-days: 1
build-Ubuntu-D:
# takes too much time so run it on os-fpga Raptor only
if: ${{ github.repository == 'os-fpga/Raptor'}}
name: Ubuntu-Debug
runs-on: ubuntu-latest
defaults:
run:
shell: bash
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Install dependenices
uses: ./.github/actions/
- name: Use ccache
uses: hendrikmuhs/ccache-action@v1.2.12
with:
key: Ubuntu-Debug
- name: Debug Build
run: |
while true; do [ $(df / | awk 'NR==2 {print $5}' | sed 's/%//') -ge 99 ] && echo "Disk at 99%, killing make..." && pkill -f make && df -h / && exit 1; sleep 5; done &
make run-cmake-debug && rm -rf tests/Jira_Testcase/* zephyr-rapidsi-dev/*
df -h
make debug test/unittest-d CPU_CORES=2
cp -rf yosys_verific_rs/yosys/install/share/yosys dbuild/share
tar -czf build.tar.gz dbuild
- name: Print server resource
if: success() || failure()
run: |
df -h
du -sch *
- name: Upload build
uses: actions/upload-artifact@v4
with:
name: Ubuntu-Debug
path: build.tar.gz
retention-days: 1
build-Ubuntu-P:
name: Ubuntu-Production
runs-on: ubuntu-latest
defaults:
run:
shell: bash
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Install dependenices & configure device
uses: ./.github/actions/
with:
DEVICES_NAME_FROM_INPUTS: ${{ inputs.DEFAULT_DEVICES }}
DEVICES_NAME_FROM_VARS: ${{ vars.PRODUCTION_DEVICES }}
- name: Use ccache
uses: hendrikmuhs/ccache-action@v1.2.12
with:
key: Ubuntu-Production
- name: Production Build
run: |
make CPU_CORES=2 PRODUCTION_BUILD=1 PRODUCTION_DEVICES=`cat DEFAULT_DEVICES` STICK_RELEASE_VERSION=`cat input_release_date`
cp -rf yosys_verific_rs/yosys/install/share/yosys build/share
tar -czf build.tar.gz build projects
- name: Upload build
uses: actions/upload-artifact@v4
with:
name: Ubuntu-Production
path: build.tar.gz
retention-days: 1
build-CentOS-P:
name: CentOS-Production
runs-on: ubuntu-latest
defaults:
run:
shell: bash
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Install dependenices & configure device
uses: ./.github/actions/
with:
DEVICES_NAME_FROM_INPUTS: ${{ inputs.DEFAULT_DEVICES }}
DEVICES_NAME_FROM_VARS: ${{ vars.PRODUCTION_DEVICES }}
minimum-dependencies: minimum
TOKEN: ${{ secrets.GITHUB_TOKEN }}
PULL_DOCKER_IMAGE: 'yes'
RELEASE_DATE: ${{ inputs.Release_Date }}
- name: Use ccache
uses: hendrikmuhs/ccache-action@v1.2.12
with:
key: CentOS-Production
- name: Checkout Subsystem
run: |
make run-cmake-release CPU_CORES=2
- name: Production Build
uses: addnab/docker-run-action@v3
with:
shell: bash
image: ghcr.io/${{ github.repository_owner }}/raptor:centos7latest
options: -v ${{ github.workspace }}:/work
run: |
source /opt/rh/devtoolset-11/enable
wget https://boostorg.jfrog.io/artifactory/main/release/1.74.0/source/boost_1_74_0.tar.gz #Licenescc_WAR
tar -xzf boost_1_* && ls -l #Licensecc_WAR
cd boost_1_* && ./bootstrap.sh --prefix=/usr && ./b2 install --prefix=/usr --with=all #Licensecc_WAR
cd /work && tar -czf boost_1_74_0_build.tar.gz /boost_1_*
cd /work && make clean
p_device=`cat DEFAULT_DEVICES` && echo $p_device
r_d=`cat input_release_date` && echo "$r_d"
make install CPU_CORES=2 $run_test PRODUCTION_BUILD=1 PREFIX=/opt/instl_dir PRODUCTION_DEVICES=$p_device STICK_RELEASE_VERSION=$r_d
[ $? != 0 ] && exit 1
echo "2nd compilation" && rm -rvf build/FOEDAG_rs
make install MONACO_EDITOR=1 CPU_CORES=2 $run_test PRODUCTION_BUILD=1 PREFIX=/opt/instl_dir PRODUCTION_DEVICES=$p_device STICK_RELEASE_VERSION=$r_d
[ $? != 0 ] && exit 1
tar -czf build.tar.gz projects \
./build/OPENLM_DIR/licensecc/extern/license-generator/src/license_generator/lccgen \
Raptor_Tools/Create_Raptor_Artifact Raptor_Tools/Install_Raptor_Artifact /opt/instl_dir
- name: Upload build
uses: actions/upload-artifact@v4
with:
name: CentOS-Production
path: build.tar.gz
retention-days: 1
- name: Print server resource
if: success() || failure()
run: |
df -h
du -sch *
build-CentOS-R:
name: CentOS-Release
runs-on: ubuntu-latest
defaults:
run:
shell: bash
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Install dependenices
uses: ./.github/actions/
with:
DEVICES_NAME_FROM_INPUTS: ${{ inputs.DEFAULT_DEVICES }}
DEVICES_NAME_FROM_VARS: ${{ vars.PRODUCTION_DEVICES }}
minimum-dependencies: minimum
TOKEN: ${{ secrets.GITHUB_TOKEN }}
PULL_DOCKER_IMAGE: 'yes'
- name: Use ccache
uses: hendrikmuhs/ccache-action@v1.2.12
with:
key: CentOS-Production
- name: Checkout Subsystem
run: |
make run-cmake-release CPU_CORES=2
- name: Build
uses: addnab/docker-run-action@v3
with:
shell: bash
image: ghcr.io/${{ github.repository_owner }}/raptor:centos7latest
options: -v ${{ github.workspace }}:/work
run: |
source /opt/rh/devtoolset-11/enable
cd work && make clean
make release CPU_CORES=2 $run_test MONACO_EDITOR=0
cp -rf yosys_verific_rs/yosys/install/share/yosys build/share
tar -czf build.tar.gz build
# disable as they are failing in yosys_verific_rs
# - name: Unit C test
# uses: addnab/docker-run-action@v3
# with:
# shell: bash
# image: ghcr.io/${{ github.repository_owner }}/raptor:centos7latest
# options: -v ${{ github.workspace }}:/work
# run: |
# source /opt/rh/devtoolset-11/enable
# cd work && make clean
# make release CPU_CORES=2 ADDITIONAL_CMAKE_OPTIONS=-DBUILD_YOSYS_PLUGINS=ON test MONACO_EDITOR=0
- name: Upload build
uses: actions/upload-artifact@v4
with:
name: CentOS-Release
path: build.tar.gz
retention-days: 1
test-ubuntu-R:
needs: build-Ubuntu-R
name: ${{ matrix.name }}-${{ matrix.test-type }}
runs-on: ${{ matrix.os }}
defaults:
run:
shell: bash
strategy:
fail-fast: false
matrix:
include:
- {build-type: Ubuntu-Release, extra-opts: "", test-type: test/int_batch, name: "ubuntu", os: ubuntu-latest, dependencies: "bash .github/workflows/install_ubuntu_dependencies_build.sh"}
- {build-type: Ubuntu-Release, extra-opts: "", test-type: test/int_batch_gen2, name: "ubuntu", os: ubuntu-latest, dependencies: "bash .github/workflows/install_ubuntu_dependencies_build.sh"}
- {build-type: Ubuntu-Release, extra-opts: "", test-type: test/int_solver, name: "ubuntu", os: ubuntu-latest, dependencies: "bash .github/workflows/install_ubuntu_dependencies_build.sh"}
- {build-type: Ubuntu-Release, extra-opts: "clean", test-type: test/int_install, name: "ubuntu", os: ubuntu-latest, dependencies: "bash .github/workflows/install_ubuntu_dependencies_build.sh"}
env:
Name: ${{ matrix.name }}
OS: ${{ matrix.os }}
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Install dependenices
uses: ./.github/actions/
with:
DEVICES_NAME_FROM_INPUTS: ${{ inputs.DEFAULT_DEVICES }}
DEVICES_NAME_FROM_VARS: ${{ vars.PRODUCTION_DEVICES }}
minimum-dependencies: minimum
TOKEN: ${{ secrets.GITHUB_TOKEN }}
PULL_DOCKER_IMAGE: 'yes'
- name: Download build
uses: actions/download-artifact@v4
with:
name: ${{ matrix.build-type }}
- name: Execute test
run: |
tar -xzf build.tar.gz && rm build.tar.gz && mv tmp/raptor_gui-install /tmp
run_test=`cat TEST_ON`
export CI=true
echo $run_test
make ${{ matrix.extra-opts}} ${{ matrix.test-type }} $run_test CPU_CORES=2
ls -l /tmp
test-ubuntu-D:
needs: build-Ubuntu-D
name: ${{ matrix.name }}-${{ matrix.test-type }}
runs-on: ${{ matrix.os }}
defaults:
run:
shell: bash
strategy:
fail-fast: false
matrix:
include:
- {build-type: Ubuntu-Debug, extra-opts: "", test-type: test/int_dgui, name: "ubuntu", os: ubuntu-latest, dependencies: "bash .github/workflows/install_ubuntu_dependencies_build.sh"}
- {build-type: Ubuntu-Debug, extra-opts: "", test-type: test/int_dgui2, name: "ubuntu", os: ubuntu-latest, dependencies: "bash .github/workflows/install_ubuntu_dependencies_build.sh"}
- {build-type: Ubuntu-Debug, extra-opts: "", test-type: test/int_valgrind, name: "ubuntu", os: ubuntu-latest, dependencies: "bash .github/workflows/install_ubuntu_dependencies_build.sh"}
env:
Name: ${{ matrix.name }}
OS: ${{ matrix.os }}
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Install dependenices
uses: ./.github/actions/
with:
DEVICES_NAME_FROM_INPUTS: ${{ inputs.DEFAULT_DEVICES }}
DEVICES_NAME_FROM_VARS: ${{ vars.PRODUCTION_DEVICES }}
minimum-dependencies: minimum
TOKEN: ${{ secrets.GITHUB_TOKEN }}
PULL_DOCKER_IMAGE: 'yes'
- name: Download build
uses: actions/download-artifact@v4
with:
name: ${{ matrix.build-type }}
- name: Execute test
run: |
tar -xzf build.tar.gz && rm build.tar.gz
run_test=`cat TEST_ON`
export CI=true
echo $run_test
make ${{ matrix.test-type }} ${{ matrix.extra-opts }} $run_test CPU_CORES=2
test-ubuntu-P:
needs: build-Ubuntu-P
name: ${{ matrix.name }}-${{ matrix.test-type }}
runs-on: ${{ matrix.os }}
defaults:
run:
shell: bash
strategy:
fail-fast: false
matrix:
include:
- {build-type: Ubuntu-Production, extra-opts: "PRODUCTION_DEVICES=`cat DEFAULT_DEVICES`", test-type: test/int_production, name: "ubuntu", os: ubuntu-latest, dependencies: "bash .github/workflows/install_ubuntu_dependencies_build.sh"}
env:
Name: ${{ matrix.name }}
OS: ${{ matrix.os }}
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Install dependenices
uses: ./.github/actions/
with:
DEVICES_NAME_FROM_INPUTS: ${{ inputs.DEFAULT_DEVICES }}
DEVICES_NAME_FROM_VARS: ${{ vars.PRODUCTION_DEVICES }}
minimum-dependencies: minimum
TOKEN: ${{ secrets.GITHUB_TOKEN }}
PULL_DOCKER_IMAGE: 'yes'
- name: Download build
uses: actions/download-artifact@v4
with:
name: ${{ matrix.build-type }}
- name: Execute test
run: |
tar -xzf build.tar.gz && rm build.tar.gz
run_test=`cat TEST_ON`
export CI=true
echo $run_test
make ${{ matrix.test-type }} ${{ matrix.extra-opts }} $run_test CPU_CORES=2
test-centos-R:
needs: build-CentOS-R
name: ${{ matrix.name }}-${{ matrix.test-type }}
runs-on: ${{ matrix.os }}
defaults:
run:
shell: bash
strategy:
fail-fast: false
matrix:
include:
- {build-type: CentOS-Release, extra-opts: "", test-type: test/int_batch, name: "centos7.9", os: ubuntu-latest, dependencies: "bash .github/workflows/install_ubuntu_dependencies_build.sh"}
env:
Name: ${{ matrix.name }}
OS: ${{ matrix.os }}
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Install dependenices
uses: ./.github/actions/
with:
DEVICES_NAME_FROM_INPUTS: ${{ inputs.DEFAULT_DEVICES }}
DEVICES_NAME_FROM_VARS: ${{ vars.PRODUCTION_DEVICES }}
minimum-dependencies: minimum
TOKEN: ${{ secrets.GITHUB_TOKEN }}
PULL_DOCKER_IMAGE: 'yes'
- name: Download build
uses: actions/download-artifact@v4
with:
name: ${{ matrix.build-type }}
- name: Test
uses: addnab/docker-run-action@v3
with:
shell: bash
image: ghcr.io/${{ github.repository_owner }}/raptor:centos7latest
options: -v ${{ github.workspace }}:/work
run: |
source /opt/rh/devtoolset-11/enable
cd work && tar -xzf build.tar.gz && rm build.tar.gz
run_test=`cat TEST_ON`
export CI=true
make ${{ matrix.extra-opts}} ${{ matrix.test-type }} $run_test CPU_CORES=2
Deployment:
#if: ${{ github.ref == 'refs/heads/main' }}
needs: build-CentOS-P
name: deploy
runs-on: ubuntu-latest
defaults:
run:
shell: bash
env:
FORK_REPO: ${{ secrets.FORK_STATUS }}
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Install dependenices
uses: ./.github/actions/
with:
DEVICES_NAME_FROM_INPUTS: ${{ inputs.DEFAULT_DEVICES }}
DEVICES_NAME_FROM_VARS: ${{ vars.PRODUCTION_DEVICES }}
minimum-dependencies: minimum
TOKEN: ${{ secrets.GITHUB_TOKEN }}
PULL_DOCKER_IMAGE: 'yes'
- name: Download build
uses: actions/download-artifact@v4
with:
name: CentOS-Production
- name: Test
uses: addnab/docker-run-action@v3
with:
shell: bash
image: ghcr.io/${{ github.repository_owner }}/raptor:centos7latest
options: -v ${{ github.workspace }}:/work
run: |
source /opt/rh/devtoolset-11/enable
cd work && tar -xzf build.tar.gz && rm build.tar.gz && ls -la && ls -l build
run_test=`cat TEST_ON`
p_device=`cat DEFAULT_DEVICES`
echo $p_device && echo "$r_d"
cd /work/build && ln -vs ../opt/instl_dir/bin . && cd -
export LD_LIBRARY_PATH=/work/opt/instl_dir/lib64/raptor/lib:/usr/local/Qt6.2.4/lib:$LD_LIBRARY_PATH
source /work/opt/instl_dir/.raptorenv_lin64.sh
./build/bin/raptor --version
make test/int_production PRODUCTION_DEVICES=$p_device $run_test CPU_CORES=2
cd /work/Raptor_Tools/Create_Raptor_Artifact && bash create_release.sh -C -w /work/opt/instl_dir
ls -l /work/Raptor_Tools/upload/*
# The below section upload Raptor binaries to FTP so to enable it make sure provide your credentials.
- name: Check FTP server status
if: "${{ env.FORK_REPO == 'ON' }}"
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.FTP_IP }}
username: ${{ secrets.FTP_USER }}
key: ${{ secrets.FTP_KEY }}
port: ${{ secrets.FTP_PORT }}
script: whoami
- name: Deploy
if: "${{ env.FORK_REPO == 'ON' }}"
uses: appleboy/scp-action@master
with:
host: ${{ secrets.FTP_IP }}
username: ${{ secrets.FTP_USER }}
key: ${{ secrets.FTP_KEY }}
port: ${{ secrets.FTP_PORT }}
source: "./Raptor_Tools/upload/*"
target: "/home/rsbuilder/Raptor"
# Reference: https://github.com/eyllanesc/69108420/blob/main/.github/workflows/test.yml
msys2-gcc:
if: ${{ false }} # disable for now
runs-on: windows-2022
defaults:
run:
shell: msys2 {0}
steps:
- name: Cancel previous
uses: styfle/cancel-workflow-action@0.11.0
with:
access_token: ${{ github.token }}
# Fix Cmake version, 3.21.4 has a bug that prevents Tcl to build
- name: Setup cmake
uses: jwlawson/actions-setup-cmake@v1.13.0
with:
cmake-version: '3.21.3'
- name: Configure Git
run: git config --global core.autocrlf input
shell: bash
- name: Git pull
uses: actions/checkout@v4
- name: Install core dependencies
run: choco install -y swig --side-by-side --version=3.0.12
shell: powershell
- name: Setup Python Packages
run: |
pip3 install orderedmultidict
pip3 install psutil
- name: Setup Msys2
uses: msys2/setup-msys2@v2
with:
msystem: MSYS
update: true
install: gcc make cmake ninja python python-devel git diffutils autoconf
release: false
env:
MSYS2_PATH_TYPE: inherit
# Install Qt
- shell: msys2 {0}
run: |
pacman --noconfirm -S zlib
pacman --noconfirm -S zlib-devel
pacman --noconfirm -S mingw-w64-x86_64-qt6
# Static version pacman --noconfirm -Syu mingw-w64-x86_64-qt6-static
find . -name qt6-config.cmake
find . -name Qt6Config.cmake
find /mingw64 -name qt6-config.cmake
find /mingw64 -name Qt6Config.cmake
find C:/msys64/ -name qt6-config.cmake
find C:/msys64/ -name Qt6Config.cmake
- name: Configure shell environment variables
run: |
export SWIG_DIR=/c/ProgramData/chocolatey/lib/swig/tools/install/swigwin-3.0.12
export Qt6_Dir=/mingw64/lib/cmake/Qt6/
# Static version: export Qt6_Dir=/mingw64/qt5-static/lib/cmake/Qt6/
export Qt6_DIR=$Qt6_Dir
export CWD=`pwd`
echo "Qt6_DIR=$Qt6_DIR" >> $GITHUB_ENV
echo "SWIG_DIR=$SWIG_DIR" >> $GITHUB_ENV
echo 'CMAKE_GENERATOR=Ninja' >> $GITHUB_ENV
echo 'CC=gcc' >> $GITHUB_ENV
echo 'CXX=g++' >> $GITHUB_ENV
echo 'NO_TCMALLOC=On' >> $GITHUB_ENV
echo "PREFIX=$CWD/install" >> $GITHUB_ENV
echo "$Qt6_DIR" >> $GITHUB_PATH
echo "$SWIG_DIR" >> $GITHUB_PATH
- name: Show shell configuration
run: |
export PATH=$SWIG_DIR:$PATH
env
where git && git --version
where cmake && cmake --version
where make && make --version
where swig && swig -version
where python && python --version
where ninja && ninja --version
where tclsh && echo 'puts [info patchlevel];exit 0' | tclsh
where $CC && $CC --version
where $CXX && $CXX --version
- name: Build
run: |
export PATH=$SWIG_DIR:$PATH
export Qt6_Dir=/mingw64/lib/cmake/Qt6/
# export Qt6_Dir=/mingw64/qt6-static/lib/cmake/Qt6/
export Qt6_DIR=$Qt6_Dir
export PATH=$Qt6_DIR:$PATH
make lib-only
# There are Qt linkage issues, so build only the libs for now
# make VERBOSE=1 release
# make debug
# make install
- name: Test
run: |
export PATH=$SWIG_DIR:$PATH
export Qt6_Dir=/mingw64/lib/cmake/Qt5/
# export Qt6_Dir=/mingw64/qt5-static/lib/cmake/Qt5/
export Qt6_DIR=$Qt6_Dir
export PATH=$Qt6_DIR:$PATH
# There Qt are linkage issues, so build only the libs for now
# make test_install
# make test/unittest
# make regression
windows-msvc:
if: ${{ false }} # disable for now
runs-on: windows-2022
defaults:
run:
shell: cmd
steps:
- name: Cancel previous
uses: styfle/cancel-workflow-action@0.11.0
with:
access_token: ${{ github.token }}
# Fix Cmake version, 3.21.4 has a bug that prevents Tcl to build
- name: Setup cmake
uses: jwlawson/actions-setup-cmake@v1.13.0
with:
cmake-version: '3.21.3'
- name: Use cmake
run: cmake --version
- name: Install Core Dependencies
run: |
choco install -y make
choco install -y swig --side-by-side --version=3.0.12
- name: Setup Python
uses: actions/setup-python@v4.3.0
with:
python-version: 3.8
architecture: x64
- name: Setup Python Packages
run: |
pip3 install orderedmultidict
pip3 install psutil
- name: Install Qt
uses: jurplel/install-qt-action@v3.0.0
with:
version: '6.2.4'
modules: 'qtwebengine qtwebchannel qtpositioning'
- run: git config --global core.autocrlf input
shell: bash
- uses: actions/checkout@v4
- name: Build & Test
run: |
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat"
set CMAKE_GENERATOR=Ninja
set CC=cl
set CXX=cl
set NO_TCMALLOC=On
set PREFIX=%GITHUB_WORKSPACE%\install
set CPU_CORES=%NUMBER_OF_PROCESSORS%
set MAKE_DIR=C:\make\bin
#set TCL_DIR=%PROGRAMFILES%\Git\mingw64\bin
set SWIG_DIR=%PROGRMDATA%\chocolatey\lib\swig\tools\install\swigwin-3.0.12
set PATH=%pythonLocation%;%SWIG_DIR%;%MAKE_DIR%;%PATH%
#set PATH=%pythonLocation%;%SWIG_DIR%;%MAKE_DIR%;%TCL_DIR%;%PATH%
set
where cmake && cmake --version
where make && make --version
where swig && swig -version
where python && python --version
where ninja && ninja --version
make release CPU_CORES=2 RAPTOR_PUB=1 ADDITIONAL_CMAKE_OPTIONS=-DBUILD_YOSYS_PLUGINS=ON
if %errorlevel% neq 0 exit /b %errorlevel%
make install RAPTOR_PUB=1
if %errorlevel% neq 0 exit /b %errorlevel%
make test/unittest
if %errorlevel% neq 0 exit /b %errorlevel%
make test_install
if %errorlevel% neq 0 exit /b %errorlevel%
make regression
if %errorlevel% neq 0 exit /b %errorlevel%
make test/batch
- name: Archive build artifacts
uses: actions/upload-artifact@v3.1.0
with:
name: raptor_gui-windows-msvc
path: ${{ github.workspace }}/install
- name: Archive regression artifacts
if: always()
uses: actions/upload-artifact@v3.1.0
with:
name: raptor_gui-windows-msvc-regression
path: |
${{ github.workspace }}/build/test/
${{ github.workspace }}/build/tests/
macos-gcc:
if: ${{ false }} # disable till EDA-802 is fixed
runs-on: macos-latest
steps:
- name: Cancel previous
uses: styfle/cancel-workflow-action@0.11.0
with:
access_token: ${{ github.token }}
- uses: actions/setup-python@v4.3.0
with:
python-version: 3.8
- name: Setup Python Packages
run: |
pip3 install orderedmultidict
pip3 install psutil
- uses: actions/checkout@v4
- name: Install dependencies
uses: jurplel/install-qt-action@v3.0.0
with:
setup-python: false
version: '6.2.4'
modules: 'qtwebengine qtwebchannel qtpositioning'
- name: Use ccache
uses: hendrikmuhs/ccache-action@v1.2.12
with:
key: macos-gcc
- name: Install other dependencies
run: |
bash .github/workflows/install_macos_dependencies_build.sh
- name: Configure shell
run: |
echo 'CC=gcc-9' >> $GITHUB_ENV
echo 'CXX=g++-9' >> $GITHUB_ENV
echo "/usr/local/opt/coreutils/libexec/gnubin" >> $GITHUB_PATH
echo "$(brew --prefix bison)/bin" >> $GITHUB_PATH
echo "$(brew --prefix)/opt/ccache/libexec" >> $GITHUB_PATH
echo 'PREFIX=${GITHUB_WORKSPACE}/install' >> $GITHUB_ENV
echo "$PREFIX" >> $GITHUB_PATH
- name: Show shell configuration
run: |
env
which cmake && cmake --version
which make && make --version
which swig && swig -version
which python && python --version
which tclsh && echo 'puts [info patchlevel];exit 0' | tclsh
which $CC && $CC --version
which $CXX && $CXX --version
which bison && bison --version
which install && install --version
- name: Build
run: |
make release CPU_CORES=2
make install CPU_CORES=2
- name: Unit tests
run: |
make test_install_mac CPU_CORES=2
- name: Regression tests
run: |
make regression CPU_CORES=2
macos-clang:
if: ${{ false }} # disable till EDA-802 is fixed
runs-on: macos-latest
steps:
- name: Cancel previous
uses: styfle/cancel-workflow-action@0.11.0
with:
access_token: ${{ github.token }}
- uses: actions/setup-python@v4.3.0
with:
python-version: 3.8
- name: Setup Python Packages
run: |
pip3 install orderedmultidict
pip3 install psutil
- name: Install dependencies
uses: jurplel/install-qt-action@v3.0.0
with:
setup-python: false
version: '6.2.4'
modules: 'qtwebengine qtwebchannel qtpositioning'
- uses: actions/checkout@v4
- name: Use ccache
uses: hendrikmuhs/ccache-action@v1.2.12
with:
key: macos-clang
- name: Install other dependencies
run: |
bash .github/workflows/install_macos_dependencies_build.sh
- name: Configure shell
run: |
echo 'PREFIX=${GITHUB_WORKSPACE}/install' >> $GITHUB_ENV
echo "/usr/local/opt/coreutils/libexec/gnubin" >> $GITHUB_PATH
echo "$(brew --prefix bison)/bin" >> $GITHUB_PATH
echo "$(brew --prefix)/opt/ccache/libexec" >> $GITHUB_PATH
echo "$PREFIX" >> $GITHUB_PATH
- name: Install XQuartz on macOS
run: brew install xquartz --cask
- name: Show shell configuration
run: |
env
which cmake && cmake --version
which make && make --version
which swig && swig -version
which python && python --version
which -a bison && bison --version
which tclsh && echo 'puts [info patchlevel];exit 0' | tclsh
- name: Build
run: |
make release CPU_CORES=2
make install CPU_CORES=2
- name: Unit tests
run: |
make test_install_mac CPU_CORES=2
make test/unittest
make XVFB="" debug test/gui_mac
- name: Regression tests
run: |
make regression CPU_CORES=2
CodeFormatting:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Install Dependencies
run: |
sudo apt-get install clang-format
clang-format --version
- name: Run formatting style check
run: ./.github/bin/run-clang-format.sh
ClangTidy:
runs-on: ubuntu-latest
if: ${{github.event_name == 'pull_request'}}
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Install dependenices
uses: ./.github/actions/
with:
minimum-dependencies: minimum
FREE_STORAGE: 'no'
- name: Use ccache
uses: hendrikmuhs/ccache-action@v1.2.12
with:
key: clang-tidy-codegen
- name: Prepare source
run: |
make run-cmake-release CPU_CORES=2
ln -s build/compile_commands.json .
- name: Run clang tidy
run: |
./.github/bin/run-clang-tidy.sh