| 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@v3 | |
| 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@v3 | |
| if: ${{ always() }} | |
| with: | |
| path: | | |
| **/results*.gz | |
| **/plot_*.svg |