Skip to content

Multirepo branching #376

Multirepo branching

Multirepo branching #376

Workflow file for this run

on:
push:
branches:
- main
pull_request:
merge_group:
schedule:
- cron: '0 0 * * *' # Every day at midnight UTC
name: CI
jobs:
test:
runs-on: ubuntu-latest
steps:
- name: Check out source code
uses: actions/checkout@v4
- name: Set up PDM
uses: pdm-project/setup-pdm@v4
- name: Generate overrides to use current branch if PR
if: github.event_name == 'pull_request'
run: |
pdm run tools/gen_overrides.py ${{github.head_ref}} > overrides.txt
echo "Generated overrides:"
cat overrides.txt
- name: Relock PDM
if: github.event_name != 'pull_request'
run: pdm lock -d
- name: Relock PDM (PR)
if: github.event_name == 'pull_request'
run: pdm lock -d --override overrides.txt
- name: Install dependencies
run: |
pdm install
- name: Run tests
run: |
pdm run test
- name: Run lints
run: |
pdm run lint
- name: Run doc tests
run: pdm run test-docs
license:
runs-on: ubuntu-latest
steps:
- name: Check out source code
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Check source code licenses
run: ./tools/license_check.sh
test-submit:
runs-on: ubuntu-latest
strategy:
matrix:
dry: [true, false]
repo:
- name: "ChipFlow/chipflow-examples"
design: "minimal"
env:
DRY: ${{ matrix.dry && '--dry-run' || '' }}
is_dry: ${{ matrix.dry && '(dry run)' || '' }}
our_path: "${{ github.workspace}}/${{ github.repo }}"
test_repo_path: "${{ github.workspace }}/${{ matrix.repo.name }}"
name: ${{ matrix.dry && 'Test Submit - Dry run' || 'Test submit' }}
steps:
- name: Check out source code
uses: actions/checkout@v4
with:
path: ${{ env.our_path }}
- name: Check out ${{ matrix.repo.name }}
uses: actions/checkout@v4
with:
repository: ${{ matrix.repo.name }}
path: ${{ env.test_repo_path }}
- name: Check for branch ${{ github.head_ref }}
working-directory: ${{ env.test_repo_path }}
if: github.event_name == 'pull_request'
run: |
git remote update
git checkout ${{ github.head_ref }} || echo "Falling back to main"
- name: Set up PDM
uses: pdm-project/setup-pdm@v4
with:
python-version: '3.10'
cache: true
cache-dependency-path: './**/pyproject.toml'
- name: Generate overrides to use current branch if PR
working-directory: ${{ env.test_repo_path }}
if: github.event_name == 'pull_request'
run: |
pdm run ${{env.our_path}}/tools/gen_overrides.py ${{github.head_ref}} > overrides.txt
echo "Generated overrides:"
cat overrides.txt
- name: Relock PDM
working-directory: ${{ env.test_repo_path }}
if: github.event_name != 'pull_request'
run: pdm lock -d
- name: Relock PDM (PR)
working-directory: ${{ env.test_repo_path }}
if: github.event_name == 'pull_request'
run: pdm lock -d --override overrides.txt
- name: Install dependencies
working-directory: ${{ env.test_repo_path }}
run: |
pdm install
- name: Run tests
working-directory: ${{ env.test_repo_path }}
run: |
pdm test
- name: Submit build ${{ env.is_dry }}
working-directory: ${{ env.test_repo_path }}/${{ matrix.repo.design }}
run: |
pdm run chipflow pin lock
pdm run chipflow silicon submit --wait $DRY
env:
CHIPFLOW_API_KEY: ${{ secrets.CHIPFLOW_API_KEY}}