name: Pipeline on: workflow_call: secrets: LICENSE_TUNNEL_KEY_DATA: required: false jobs: BuildDatabase: container: ubuntu:focal runs-on: [self-hosted, Linux, X64] timeout-minutes: 600 strategy: fail-fast: false matrix: family: ['artix7', 'zynq7', 'kintex7', 'spartan7'] env: GHA_SSH_TUNNEL_KEY: "${{ secrets.LICENSE_TUNNEL_KEY_DATA }}" GHA_SSH_TUNNEL_CONFIG: "${{ secrets.LICENSE_TUNNEL_SSH_CONFIG }}" GHA_SSH_TUNNEL_CONFIG_SECRET_NAME: "xilinx_license_server_config" GHA_SSH_TUNNEL_KEY_SECRET_NAME: "xilinx_license_server_key" ALLOW_ROOT: true GHA_EXTERNAL_DISK: "tools" XILINX_LOCAL_USER_DATA: "no" steps: - uses: actions/checkout@v3 with: submodules: recursive - name: Install run: | DEBIAN_FRONTEND=noninteractive apt update -qq DEBIAN_FRONTEND=noninteractive apt install -qq -y \ bash \ bison \ build-essential \ ca-certificates \ clang-format \ cmake \ colordiff \ coreutils \ flex \ git \ iproute2 \ iputils-ping \ libtinfo5 \ netcat-openbsd \ psmisc \ python3 \ python3-dev \ python3-venv \ xsltproc \ sudo \ - name: Xilinx Setup run: | git config --global --add safe.directory /root/prjxray/prjxray .github/scripts/xilinx.sh env: USE_LICENSE_SERVER: "true" XRAY_SETTINGS: ${{ matrix.family }} - name: Build run: make build --output-sync=target --warn-undefined-variables -j$(nproc) - name: Environment run: make env --output-sync=target --warn-undefined-variables - name: Run Test run: .github/scripts/db.sh env: XRAY_SETTINGS: ${{ matrix.family }} - uses: actions/upload-artifact@v4 if: ${{ always() }} with: name: ${{ matrix.family }} path: | **/results*.gz **/plot_*.svg **/diff.html **/diff.json **/diff.patch **/*sponge_log.xml **/fuzzers/*.tgz **/database/${{ matrix.family }}/**" Tests: container: ubuntu:focal runs-on: [self-hosted, Linux, X64] env: ALLOW_ROOT: true steps: - uses: actions/checkout@v3 with: submodules: recursive - name: Install run: | DEBIAN_FRONTEND=noninteractive apt update -qq DEBIAN_FRONTEND=noninteractive apt install -qq -y \ bash bison build-essential ca-certificates clang-format cmake psmisc \ colordiff coreutils git flex python3 python3-dev python3-venv xsltproc libtinfo5 - name: Build run: make build --output-sync=target --warn-undefined-variables -j$(nproc) - name: Environment run: make env --output-sync=target --warn-undefined-variables - name: Run Test run: make test --output-sync=target --warn-undefined-variables - uses: actions/upload-artifact@v4 if: ${{ always() }} with: path: | **/results*.gz **/plot_*.svg