New synth options, init_registers #8547
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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-22.04 | |
defaults: | |
run: | |
shell: bash | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Install dependenices | |
uses: ./.github/actions/ | |
- name: Use ccache | |
uses: hendrikmuhs/[email protected] | |
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-22.04 | |
defaults: | |
run: | |
shell: bash | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Install dependenices | |
uses: ./.github/actions/ | |
- name: Use ccache | |
uses: hendrikmuhs/[email protected] | |
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-22.04 | |
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/[email protected] | |
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-22.04 | |
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/[email protected] | |
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-22.04 | |
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/[email protected] | |
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-22.04, 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-22.04, dependencies: "bash .github/workflows/install_ubuntu_dependencies_build.sh"} | |
- {build-type: Ubuntu-Release, extra-opts: "", test-type: test/int_solver, name: "ubuntu", os: ubuntu-22.04, 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-22.04, 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: Checkout Jirs testcase | |
run: git submodule update --init tests/Jira_Testcase | |
- 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 || exit 1 | |
ls -l /tmp | |
test-ubuntu-D: | |
# takes too much time so run it on os-fpga Raptor only | |
if: ${{ github.repository == 'os-fpga/Raptor'}} | |
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-22.04, dependencies: "bash .github/workflows/install_ubuntu_dependencies_build.sh"} | |
- {build-type: Ubuntu-Debug, extra-opts: "", test-type: test/int_dgui2, name: "ubuntu", os: ubuntu-22.04, dependencies: "bash .github/workflows/install_ubuntu_dependencies_build.sh"} | |
- {build-type: Ubuntu-Debug, extra-opts: "", test-type: test/int_valgrind, name: "ubuntu", os: ubuntu-22.04, 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 || exit 1 | |
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-22.04, 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 || exit 1 | |
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-22.04, 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: Checkout Jirs testcase | |
run: git submodule update --init tests/Jira_Testcase | |
- 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 || exit 1 | |
Deployment: | |
#if: ${{ github.ref == 'refs/heads/main' }} | |
needs: build-CentOS-P | |
name: deploy | |
runs-on: ubuntu-22.04 | |
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/[email protected] | |
with: | |
access_token: ${{ github.token }} | |
# Fix Cmake version, 3.21.4 has a bug that prevents Tcl to build | |
- name: Setup cmake | |
uses: jwlawson/[email protected] | |
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/[email protected] | |
with: | |
access_token: ${{ github.token }} | |
# Fix Cmake version, 3.21.4 has a bug that prevents Tcl to build | |
- name: Setup cmake | |
uses: jwlawson/[email protected] | |
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/[email protected] | |
with: | |
python-version: 3.8 | |
architecture: x64 | |
- name: Setup Python Packages | |
run: | | |
pip3 install orderedmultidict | |
pip3 install psutil | |
- name: Install Qt | |
uses: jurplel/[email protected] | |
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/[email protected] | |
with: | |
name: raptor_gui-windows-msvc | |
path: ${{ github.workspace }}/install | |
- name: Archive regression artifacts | |
if: always() | |
uses: actions/[email protected] | |
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/[email protected] | |
with: | |
access_token: ${{ github.token }} | |
- uses: actions/[email protected] | |
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/[email protected] | |
with: | |
setup-python: false | |
version: '6.2.4' | |
modules: 'qtwebengine qtwebchannel qtpositioning' | |
- name: Use ccache | |
uses: hendrikmuhs/[email protected] | |
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/[email protected] | |
with: | |
access_token: ${{ github.token }} | |
- uses: actions/[email protected] | |
with: | |
python-version: 3.8 | |
- name: Setup Python Packages | |
run: | | |
pip3 install orderedmultidict | |
pip3 install psutil | |
- name: Install dependencies | |
uses: jurplel/[email protected] | |
with: | |
setup-python: false | |
version: '6.2.4' | |
modules: 'qtwebengine qtwebchannel qtpositioning' | |
- uses: actions/checkout@v4 | |
- name: Use ccache | |
uses: hendrikmuhs/[email protected] | |
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-22.04 | |
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-22.04 | |
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/[email protected] | |
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 |