mirror of
https://github.com/TinyTapeout/tt-support-tools.git
synced 2026-11-03 04:36:09 +01:00
- Fetch the pinned IHP-Open-PDK dev checkout into PDK_ROOT, the same revision and recipe tt-gds-action@ihp-cmos5l uses in install_sg13cmos5l.sh, and write a SOURCES file so tt_tool.py can report the PDK version. - Bump the IHP-only LibreLane to 3.1.0.dev3 (the cmos5l magic techfile needs magic >= 8.3.657; 3.0.x ships 8.3.623). - Harden the cmos5l factory test (ttihp0p4-factory-test) instead of the sg13g2 ttihp25b one.
117 lines
3.8 KiB
YAML
117 lines
3.8 KiB
YAML
name: GDS Hardening Tests
|
|
|
|
on:
|
|
push:
|
|
pull_request:
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
harden:
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
pdk: [sky130A, ihp-sg13cmos5l, gf180mcuD]
|
|
|
|
runs-on: ubuntu-24.04
|
|
|
|
env:
|
|
PDK: ${{ matrix.pdk }}
|
|
PDK_ROOT: /home/runner/pdk
|
|
PROJECT_DIR: /home/runner/project
|
|
LIBRELANE_VERSION: '2.4.2'
|
|
LIBRELANE_VERSION_DEV: '3.1.0.dev3'
|
|
IHP_PDK_REPO: 'https://github.com/IHP-GmbH/IHP-Open-PDK.git'
|
|
IHP_PDK_REV: '2bbec755dc67ca3db0261c3d6163e15735d66710'
|
|
|
|
steps:
|
|
- name: Check out code
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Set up Python
|
|
uses: actions/setup-python@v5
|
|
with:
|
|
python-version: '3.11'
|
|
cache: 'pip'
|
|
|
|
- name: Install dependencies
|
|
run: pip install -r requirements.txt
|
|
|
|
- name: Install librelane
|
|
if: "${{ matrix.pdk != 'ihp-sg13cmos5l' }}"
|
|
run: pip install librelane==${LIBRELANE_VERSION}
|
|
|
|
# LibreLane 2.4.2 does not support ihp-sg13cmos5l.
|
|
- name: Install librelane 3 dev (IHP only)
|
|
if: "${{ matrix.pdk == 'ihp-sg13cmos5l' }}"
|
|
run: pip install librelane==${LIBRELANE_VERSION_DEV}
|
|
|
|
- name: Install ihp-sg13cmos5l PDK
|
|
if: "${{ matrix.pdk == 'ihp-sg13cmos5l' }}"
|
|
run: |
|
|
mkdir -p "$PDK_ROOT"
|
|
git -C "$PDK_ROOT" init -q
|
|
git -C "$PDK_ROOT" fetch -q --depth 1 "$IHP_PDK_REPO" "$IHP_PDK_REV"
|
|
git -C "$PDK_ROOT" checkout -q FETCH_HEAD
|
|
# Record the PDK source revision, like ciel-installed PDKs do
|
|
echo "IHP-Open-PDK $IHP_PDK_REV" > "$PDK_ROOT/ihp-sg13cmos5l/SOURCES"
|
|
|
|
- name: Clone the factory test
|
|
if: "${{ matrix.pdk != 'ihp-sg13cmos5l' }}"
|
|
run: git clone https://github.com/tinytapeout/ttsky25a-factory-test ${PROJECT_DIR}
|
|
|
|
- name: Clone the factory test (ihp-sg13cmos5l)
|
|
if: "${{ matrix.pdk == 'ihp-sg13cmos5l' }}"
|
|
run: git clone https://github.com/TinyTapeout/ttihp0p4-factory-test ${PROJECT_DIR}
|
|
|
|
- name: Configure tt_tool.py args (IHP)
|
|
if: "${{ matrix.pdk == 'ihp-sg13cmos5l' }}"
|
|
run: echo "TT_TOOL_ARGS=--ihp" >> $GITHUB_ENV
|
|
|
|
- name: Configure tt_tool.py args (gf180mcuD)
|
|
if: "${{ matrix.pdk == 'gf180mcuD' }}"
|
|
run: echo "TT_TOOL_ARGS=--gf" >> $GITHUB_ENV
|
|
|
|
- name: Copy tt-support-tools to the project directory
|
|
run: cp -r . ${PROJECT_DIR}/tt
|
|
|
|
- name: Create user config
|
|
working-directory: ${{ env.PROJECT_DIR }}
|
|
run: python ./tt/tt_tool.py $TT_TOOL_ARGS --create-user-config
|
|
|
|
- name: Harden
|
|
working-directory: ${{ env.PROJECT_DIR }}
|
|
run: python ./tt/tt_tool.py $TT_TOOL_ARGS --harden
|
|
|
|
- name: Create TT submission
|
|
working-directory: ${{ env.PROJECT_DIR }}
|
|
run: python ./tt/tt_tool.py $TT_TOOL_ARGS --create-tt-submission
|
|
|
|
- name: Print stats
|
|
working-directory: ${{ env.PROJECT_DIR }}
|
|
run: |
|
|
set -e
|
|
python ./tt/tt_tool.py $TT_TOOL_ARGS --print-stats --print-warnings --print-cell-summary --print-cell-category | tee $GITHUB_STEP_SUMMARY
|
|
|
|
- name: Create SVG render
|
|
working-directory: ${{ env.PROJECT_DIR }}
|
|
run: python ./tt/tt_tool.py $TT_TOOL_ARGS --create-svg
|
|
|
|
- name: Upload GDS logs
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: gds-${{ matrix.pdk }}
|
|
path: ${{ env.PROJECT_DIR }}/runs/wokwi
|
|
|
|
- name: Upload TT submission
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: tt-submission-${{ matrix.pdk }}
|
|
path: ${{ env.PROJECT_DIR }}/tt_submission
|
|
|
|
- name: Upload SVG render
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: svg-render-${{ matrix.pdk }}
|
|
path: ${{ env.PROJECT_DIR }}/gds_render.svg
|
|
|
|
|