testing CI #1259
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: CI | ||
on: | ||
# Runs on Every Push | ||
push: | ||
# Runs on Pull Requests | ||
pull_request: | ||
workflow_dispatch: | ||
jobs: | ||
download_caravel: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v2 | ||
- name: Set up QEMU | ||
uses: docker/setup-qemu-action@v1 | ||
- name: Set up Docker Buildx | ||
uses: docker/setup-buildx-action@v1 | ||
- name: Setup Environment Variables | ||
run: | | ||
echo "PDK_ROOT=$GITHUB_WORKSPACE/pdk" >> $GITHUB_ENV | ||
echo "OPENLANE_ROOT=$GITHUB_WORKSPACE/openlane_src" >> $GITHUB_ENV | ||
echo "CARAVEL_ROOT=$GITHUB_WORKSPACE/caravel" >> $GITHUB_ENV | ||
echo "MCW_ROOT=$GITHUB_WORKSPACE/mgmt_core_wrapper" >> $GITHUB_ENV | ||
echo "TIMING_ROOT=$GITHUB_WORKSPACE/timing-scripts" >> $GITHUB_ENV | ||
echo "PRECHECK_ROOT=$GITHUB_WORKSPACE/mpw_precheck" >> $GITHUB_ENV | ||
- name: Install dependencies | ||
run: | | ||
sudo mkdir -p ${{ env.PDK_ROOT }} | ||
sudo chown -R $USER:$USER ${{ env.PDK_ROOT }} | ||
make install | ||
cd ${{ env.CARAVEL_ROOT }} | ||
rm -rf gds mag maglef def lef openlane scripts signoff spi LICENSE manifest .git | ||
- name: Tarball Caravel | ||
run: | | ||
tar -cf /tmp/caravel.tar -C $CARAVEL_ROOT . | ||
- name: Upload Caravel Tarball | ||
uses: actions/upload-artifact@v2 | ||
with: | ||
name: caravel-tarball | ||
path: /tmp/caravel.tar | ||
download_deps: | ||
runs-on: ubuntu-latest | ||
strategy: | ||
matrix: | ||
targets: ["pdk-with-volare", "install_mcw", "openlane", "setup-timing-scripts", "precheck"] | ||
needs: [download_caravel] | ||
steps: | ||
- uses: actions/checkout@v2 | ||
- name: Set up QEMU | ||
uses: docker/setup-qemu-action@v1 | ||
- name: Set up Docker Buildx | ||
uses: docker/setup-buildx-action@v1 | ||
- name: Setup Environment Variables | ||
run: | | ||
echo "PDK_ROOT=$GITHUB_WORKSPACE/pdk" >> $GITHUB_ENV | ||
echo "OPENLANE_ROOT=$GITHUB_WORKSPACE/openlane_src" >> $GITHUB_ENV | ||
echo "CARAVEL_ROOT=$GITHUB_WORKSPACE/caravel" >> $GITHUB_ENV | ||
echo "MCW_ROOT=$GITHUB_WORKSPACE/mgmt_core_wrapper" >> $GITHUB_ENV | ||
echo "TIMING_ROOT=$GITHUB_WORKSPACE/timing-scripts" >> $GITHUB_ENV | ||
echo "PRECHECK_ROOT=$GITHUB_WORKSPACE/mpw_precheck" >> $GITHUB_ENV | ||
- name: Get dependencies name | ||
run: | | ||
if [[ "${{ matrix.targets }}" == "install_mcw" ]]; then | ||
echo "dep_name=mgmt_core_wrapper" >> $GITHUB_ENV | ||
echo "dep_root=${{ env.MCW_ROOT }}" >> $GITHUB_ENV | ||
elif [[ "${{ matrix.targets }}" == "openlane" ]]; then | ||
echo "dep_name=openlane" >> $GITHUB_ENV | ||
echo "dep_root=${{ env.OPENLANE_ROOT }}" >> $GITHUB_ENV | ||
elif [[ "${{ matrix.targets }}" == "pdk-with-volare" ]]; then | ||
echo "dep_name=pdk" >> $GITHUB_ENV | ||
echo "dep_root=${{ env.PDK_ROOT }}" >> $GITHUB_ENV | ||
elif [[ "${{ matrix.targets }}" == "setup-timing-scripts" ]]; then | ||
echo "dep_name=timing-scripts" >> $GITHUB_ENV | ||
echo "dep_root=${{ env.TIMING_ROOT }}" >> $GITHUB_ENV | ||
elif [[ "${{ matrix.targets }}" == "precheck" ]]; then | ||
echo "dep_name=precheck" >> $GITHUB_ENV | ||
echo "dep_root=${{ env.PRECHECK_ROOT }}" >> $GITHUB_ENV | ||
fi | ||
- name: Download caravel Tarball | ||
uses: actions/download-artifact@v2 | ||
with: | ||
name: caravel-tarball | ||
path: /tmp | ||
- name: Unpack caravel Tarball | ||
run: | | ||
sudo mkdir -p ${{ env.CARAVEL_ROOT }} | ||
sudo chown -R $USER:$USER ${{ env.CARAVEL_ROOT }} | ||
tar -xf /tmp/caravel.tar -C $CARAVEL_ROOT . | ||
- name: Install dependencies | ||
run: | | ||
sudo mkdir -p ${{ env.PDK_ROOT }} | ||
sudo chown -R $USER:$USER ${{ env.PDK_ROOT }} | ||
make ${{ matrix.targets }} | ||
if [[ "${{ env.dep_name }}" == "mgmt_core_wrapper" ]]; then | ||
cd ${{ env.dep_root }} | ||
rm -rf gds mag maglef def lef openlane scripts signoff spi LICENSE manifest docs lib litex lvs .git | ||
fi | ||
- name: Tarball Dependencies | ||
run: | | ||
tar -cf /tmp/${{ env.dep_name }}.tar -C ${{ env.dep_root }} . | ||
- name: Upload Dependencies Tarball | ||
uses: actions/upload-artifact@v2 | ||
with: | ||
name: ${{ env.dep_name }}-tarball | ||
path: /tmp/${{ env.dep_name }}.tar | ||
hardening: | ||
timeout-minutes: 720 | ||
runs-on: ubuntu-latest | ||
strategy: | ||
matrix: | ||
pdk: ["gf180mcuD"] | ||
needs: [download_deps] | ||
steps: | ||
- uses: actions/checkout@v2 | ||
- name: Set up QEMU | ||
uses: docker/setup-qemu-action@v1 | ||
- name: Set up Docker Buildx | ||
uses: docker/setup-buildx-action@v1 | ||
- name: Export ENVIRONMENT VARIABLES | ||
run: | | ||
echo "PDK=${{ matrix.pdk }}" >> $GITHUB_ENV | ||
echo "PDKPATH=$GITHUB_WORKSPACE/pdk/${{ matrix.pdk }}" >> $GITHUB_ENV | ||
echo "PDK_ROOT=$GITHUB_WORKSPACE/pdk" >> $GITHUB_ENV | ||
echo "OPENLANE_ROOT=$GITHUB_WORKSPACE/openlane_src" >> $GITHUB_ENV | ||
echo "CARAVEL_ROOT=$GITHUB_WORKSPACE/caravel" >> $GITHUB_ENV | ||
echo "MCW_ROOT=$GITHUB_WORKSPACE/mgmt_core_wrapper" >> $GITHUB_ENV | ||
echo "TIMING_ROOT=$GITHUB_WORKSPACE/timing-scripts" >> $GITHUB_ENV | ||
echo "PRECHECK_ROOT=$GITHUB_WORKSPACE/mpw_precheck" >> $GITHUB_ENV | ||
- name: Download PDK Tarball | ||
uses: actions/download-artifact@v2 | ||
with: | ||
name: pdk-tarball | ||
path: /tmp | ||
- name: Unpack PDK Tarball | ||
run: | | ||
sudo mkdir -p ${{ env.PDK_ROOT }} | ||
sudo chown -R $USER:$USER ${{ env.PDK_ROOT }} | ||
tar -xf /tmp/pdk.tar -C $PDK_ROOT . | ||
- name: Download openlane Tarball | ||
uses: actions/download-artifact@v2 | ||
with: | ||
name: openlane-tarball | ||
path: /tmp | ||
- name: Unpack openlane Tarball | ||
run: | | ||
sudo mkdir -p ${{ env.OPENLANE_ROOT }} | ||
sudo chown -R $USER:$USER ${{ env.OPENLANE_ROOT }} | ||
tar -xf /tmp/openlane.tar -C $OPENLANE_ROOT . | ||
- name: Harden using Openlane | ||
run: | | ||
make user_proj_example | ||
make user_project_wrapper | ||
rm -rf openlane/user_proj_example/runs openlane/user_project_wrapper/runs pdk openlane_src caravel mgmt_core_wrapper timing-scripts mpw_precheck | ||
- name: Tarball Design | ||
run: | | ||
tar -cf /tmp/design.tar -C $GITHUB_WORKSPACE . | ||
- name: Upload Design Tarball | ||
uses: actions/upload-artifact@v2 | ||
with: | ||
name: design-tarball | ||
path: /tmp/design.tar | ||
precheck: | ||
timeout-minutes: 720 | ||
runs-on: ubuntu-latest | ||
strategy: | ||
matrix: | ||
pdk: ["gf180mcuD"] | ||
needs: [download_deps, hardening] | ||
steps: | ||
- name: Set up QEMU | ||
uses: docker/setup-qemu-action@v1 | ||
- name: Set up Docker Buildx | ||
uses: docker/setup-buildx-action@v1 | ||
- name: Export ENVIRONMENT VARIABLES | ||
run: | | ||
echo "PDK=${{ matrix.pdk }}" >> $GITHUB_ENV | ||
echo "PDKPATH=$GITHUB_WORKSPACE/pdk/${{ matrix.pdk }}" >> $GITHUB_ENV | ||
echo "PDK_ROOT=$GITHUB_WORKSPACE/pdk" >> $GITHUB_ENV | ||
echo "OPENLANE_ROOT=$GITHUB_WORKSPACE/openlane_src" >> $GITHUB_ENV | ||
echo "CARAVEL_ROOT=$GITHUB_WORKSPACE/caravel" >> $GITHUB_ENV | ||
echo "MCW_ROOT=$GITHUB_WORKSPACE/mgmt_core_wrapper" >> $GITHUB_ENV | ||
echo "TIMING_ROOT=$GITHUB_WORKSPACE/timing-scripts" >> $GITHUB_ENV | ||
echo "PRECHECK_ROOT=$GITHUB_WORKSPACE/mpw_precheck" >> $GITHUB_ENV | ||
- name: Download PDK Tarball | ||
uses: actions/download-artifact@v2 | ||
with: | ||
name: pdk-tarball | ||
path: /tmp | ||
- name: Unpack PDK Tarball | ||
run: | | ||
sudo mkdir -p ${{ env.PDK_ROOT }} | ||
sudo chown -R $USER:$USER ${{ env.PDK_ROOT }} | ||
tar -xf /tmp/pdk.tar -C $PDK_ROOT . | ||
- name: Download precheck Tarball | ||
uses: actions/download-artifact@v2 | ||
with: | ||
name: precheck-tarball | ||
path: /tmp | ||
- name: Unpack precheck Tarball | ||
run: | | ||
sudo mkdir -p ${{ env.PRECHECK_ROOT }} | ||
sudo chown -R $USER:$USER ${{ env.PRECHECK_ROOT }} | ||
tar -xf /tmp/precheck.tar -C $PRECHECK_ROOT . | ||
- name: Download Design Tarball | ||
uses: actions/download-artifact@v2 | ||
with: | ||
name: design-tarball | ||
path: /tmp | ||
- name: Unpack Design Tarball | ||
run: | | ||
sudo mkdir -p $GITHUB_WORKSPACE | ||
sudo chown -R $USER:$USER $GITHUB_WORKSPACE | ||
tar -xf /tmp/design.tar -C $GITHUB_WORKSPACE . | ||
- name: Run Precheck | ||
run: make run-precheck | ||
precheck: | ||
timeout-minutes: 720 | ||
runs-on: ubuntu-latest | ||
strategy: | ||
matrix: | ||
pdk: ["gf180mcuD"] | ||
needs: [download_deps, hardening] | ||
steps: | ||
- name: Set up QEMU | ||
uses: docker/setup-qemu-action@v1 | ||
- name: Set up Docker Buildx | ||
uses: docker/setup-buildx-action@v1 | ||
- name: Export ENVIRONMENT VARIABLES | ||
run: | | ||
echo "PDK=${{ matrix.pdk }}" >> $GITHUB_ENV | ||
echo "PDKPATH=$GITHUB_WORKSPACE/pdk/${{ matrix.pdk }}" >> $GITHUB_ENV | ||
echo "PDK_ROOT=$GITHUB_WORKSPACE/pdk" >> $GITHUB_ENV | ||
echo "OPENLANE_ROOT=$GITHUB_WORKSPACE/openlane_src" >> $GITHUB_ENV | ||
echo "CARAVEL_ROOT=$GITHUB_WORKSPACE/caravel" >> $GITHUB_ENV | ||
echo "MCW_ROOT=$GITHUB_WORKSPACE/mgmt_core_wrapper" >> $GITHUB_ENV | ||
echo "TIMING_ROOT=$GITHUB_WORKSPACE/timing-scripts" >> $GITHUB_ENV | ||
echo "PRECHECK_ROOT=$GITHUB_WORKSPACE/mpw_precheck" >> $GITHUB_ENV | ||
- name: Download PDK Tarball | ||
uses: actions/download-artifact@v2 | ||
with: | ||
name: pdk-tarball | ||
path: /tmp | ||
- name: Unpack PDK Tarball | ||
run: | | ||
sudo mkdir -p ${{ env.PDK_ROOT }} | ||
sudo chown -R $USER:$USER ${{ env.PDK_ROOT }} | ||
tar -xf /tmp/pdk.tar -C $PDK_ROOT . | ||
- name: Download timing-scripts Tarball | ||
uses: actions/download-artifact@v2 | ||
with: | ||
name: timing-scripts-tarball | ||
path: /tmp | ||
- name: Unpack timing-scripts Tarball | ||
run: | | ||
sudo mkdir -p ${{ env.TIMING_ROOT }} | ||
sudo chown -R $USER:$USER ${{ env.TIMING_ROOT }} | ||
tar -xf /tmp/timing-scripts.tar -C $TIMING_ROOT . | ||
- name: Download Design Tarball | ||
uses: actions/download-artifact@v2 | ||
with: | ||
name: design-tarball | ||
path: /tmp | ||
- name: Unpack Design Tarball | ||
run: | | ||
sudo mkdir -p $GITHUB_WORKSPACE | ||
sudo chown -R $USER:$USER $GITHUB_WORKSPACE | ||
tar -xf /tmp/design.tar -C $GITHUB_WORKSPACE . | ||
- name: Download Caravel Tarball | ||
uses: actions/download-artifact@v2 | ||
with: | ||
name: caravel-tarball | ||
path: /tmp | ||
- name: Unpack Caravel Tarball | ||
run: | | ||
sudo mkdir -p ${{ env.CARAVEL_ROOT }} | ||
sudo chown -R $USER:$USER ${{ env.CARAVEL_ROOT }} | ||
tar -xf /tmp/caravel.tar -C ${{ env.CARAVEL_ROOT }} . | ||
- name: Download mgmt_core_wrapper Tarball | ||
uses: actions/download-artifact@v2 | ||
with: | ||
name: mgmt_core_wrapper-tarball | ||
path: /tmp | ||
- name: Unpack mgmt_core_wrapper Tarball | ||
run: | | ||
sudo mkdir -p ${{ env.MCW_ROOT }} | ||
sudo chown -R $USER:$USER ${{ env.MCW_ROOT }} | ||
tar -xf /tmp/mgmt_core_wrapper.tar -C ${{ env.MCW_ROOT }} . | ||
- name: Run STA | ||
run: | | ||
make caravel-extract-parasitics | ||
make extract-parasitics | ||
make create-spef-mapping | ||
make caravel-sta |