From 5e6daea10f90201361d82023506472ebc278a41e Mon Sep 17 00:00:00 2001 From: Michael Gielda Date: Fri, 28 Jul 2023 14:13:16 +0200 Subject: [PATCH 01/10] Remove unnecessary lines --- docs/source/index.md | 9 --------- 1 file changed, 9 deletions(-) diff --git a/docs/source/index.md b/docs/source/index.md index 4e5bc658..38e75c6c 100644 --- a/docs/source/index.md +++ b/docs/source/index.md @@ -4,22 +4,13 @@ :maxdepth: 2 introduction - getting_started - description_files - cli - pipeline_manager - wrapper_port - ipwrapper - ipconnect - helpers - fusesoc ``` From 81a5bd33701e4b6313ed4ebd8bf14cfe0730eac5 Mon Sep 17 00:00:00 2001 From: Michal Czyz Date: Fri, 28 Jul 2023 15:52:43 +0200 Subject: [PATCH 02/10] Fix injection of extra scripts --- .ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.ci.yml b/.ci.yml index 885f67a9..e7ed10fd 100644 --- a/.ci.yml +++ b/.ci.yml @@ -12,7 +12,7 @@ build: - pip3 install -r docs/requirements.txt script: - cd docs - - echo -en "\nhtml_js_files = [ '`dirname $CI_FULL_PROJECT_URL`/annotant/docs/annotant.js' ]" >> source/conf.py + - echo -en "\nhtml_js_files = [ '$ANNOTANT' ]" >> source/conf.py - make html latexpdf - cp build/latex/*.pdf build/html/ - tar cf ../$CI_DOCS_ARCHIVE -C build/html/ . From 1bc3c9ce89071c9d2527fdec5e84bae764950c0f Mon Sep 17 00:00:00 2001 From: Unai Martinez-Corral Date: Tue, 25 Jul 2023 23:52:06 +0200 Subject: [PATCH 03/10] ci: update triggers Signed-off-by: Unai Martinez-Corral --- .github/workflows/ci.yml | 2 +- .github/workflows/ghpages.yml | 6 +----- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 332e5f90..82b31d1c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,6 +1,6 @@ name: Python package -on: [pull_request, push] +on: [pull_request, push, workflow_dispatch] jobs: build: diff --git a/.github/workflows/ghpages.yml b/.github/workflows/ghpages.yml index 063265d7..1267e4aa 100644 --- a/.github/workflows/ghpages.yml +++ b/.github/workflows/ghpages.yml @@ -1,10 +1,6 @@ name: GH Pages -on: - pull_request: - push: - branches: - - main +on: [pull_request, push, workflow_dispatch] jobs: docs-generation: From 62e3beb351e53f130ee78508af7c3f98d4cc0c9c Mon Sep 17 00:00:00 2001 From: Unai Martinez-Corral Date: Tue, 25 Jul 2023 23:52:22 +0200 Subject: [PATCH 04/10] ci/scripts: update Signed-off-by: Unai Martinez-Corral --- .github/scripts/latex.sh | 8 +------- .github/scripts/sphinx.sh | 2 +- 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/.github/scripts/latex.sh b/.github/scripts/latex.sh index a132a42d..5eac1f44 100755 --- a/.github/scripts/latex.sh +++ b/.github/scripts/latex.sh @@ -2,15 +2,9 @@ set -e -apt-get update -qq -DEBIAN_FRONTEND=noninteractive apt-get -y install --no-install-recommends \ - python3-pip \ - python3-setuptools \ - python3-wheel - cd $(dirname $0)/../../docs -pip3 install --user -r requirements.txt +pip3 install -r requirements.txt cd build/latex LATEXMKOPTS='-interaction=nonstopmode' make diff --git a/.github/scripts/sphinx.sh b/.github/scripts/sphinx.sh index c631ed0a..e5f578b4 100755 --- a/.github/scripts/sphinx.sh +++ b/.github/scripts/sphinx.sh @@ -4,6 +4,6 @@ set -e cd $(dirname $0)/../../docs -pip3 install --user -r requirements.txt +pip3 install -r requirements.txt make html latex From 8dd7aac65ee9c3a25153749f141ea69d95219b44 Mon Sep 17 00:00:00 2001 From: Unai Martinez-Corral Date: Wed, 26 Jul 2023 00:10:34 +0200 Subject: [PATCH 05/10] ci: combine workflows Signed-off-by: Unai Martinez-Corral --- .github/workflows/ci.yml | 71 ----------------------- .github/workflows/ghpages.yml | 39 ------------- .github/workflows/pipeline.yml | 101 +++++++++++++++++++++++++++++++++ 3 files changed, 101 insertions(+), 110 deletions(-) delete mode 100644 .github/workflows/ci.yml delete mode 100644 .github/workflows/ghpages.yml create mode 100644 .github/workflows/pipeline.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml deleted file mode 100644 index 82b31d1c..00000000 --- a/.github/workflows/ci.yml +++ /dev/null @@ -1,71 +0,0 @@ -name: Python package - -on: [pull_request, push, workflow_dispatch] - -jobs: - build: - - runs-on: ubuntu-latest - strategy: - matrix: - python-version: ["3.8", "3.9", "3.10", "3.11"] - - steps: - - uses: actions/checkout@v3 - - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v4 - with: - python-version: ${{ matrix.python-version }} - - - name: Install requirements - run: | - sudo apt-get update - sudo apt-get install -y antlr4 libantlr4-runtime-dev python3-dev yosys - python3 -m pip install --upgrade pip - python3 -m pip install setuptools flake8 pytest wheel - python3 -m pip install git+https://github.com/antmicro/tuttest - - - name: Set up F4PGA - run: | - export FPGA_FAM="xc7" - export F4PGA_INSTALL_DIR="${HOME}/opt/f4pga" - export F4PGA_INSTALL_DIR_FAM="${F4PGA_INSTALL_DIR}/${FPGA_FAM}" - ./.github/scripts/prepare_environment.sh - source .github/scripts/activate.sh - pip3 install https://github.com/chipsalliance/f4pga/archive/main.zip#subdirectory=f4pga - - - name: Lint with flake8 - run: | - flake8 fpga_topwrap --count --show-source --statistics - - - name: Build - run: | - tuttest README.md | bash - - - - name: Test with pytest - run: | - pytest - - - name: Generate sources for example HDMI setup - run: | - cd examples/hdmi - tuttest README.md generate | bash - - cd - - - - name: Build example PWM setup - run: | - export FPGA_FAM="xc7" - export F4PGA_INSTALL_DIR="${HOME}/opt/f4pga" - export F4PGA_INSTALL_DIR_FAM="${F4PGA_INSTALL_DIR}/${FPGA_FAM}" - source .github/scripts/activate.sh - cd examples/pwm - tuttest README.md build | bash - - cd - - cp examples/pwm/build/project_1_0/zynq-symbiflow/project_top.bit ./top.bit - - - name: Store bit - uses: actions/upload-artifact@v3 - with: - name: top.bit - path: top.bit diff --git a/.github/workflows/ghpages.yml b/.github/workflows/ghpages.yml deleted file mode 100644 index 1267e4aa..00000000 --- a/.github/workflows/ghpages.yml +++ /dev/null @@ -1,39 +0,0 @@ -name: GH Pages - -on: [pull_request, push, workflow_dispatch] - -jobs: - docs-generation: - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v3 - - - uses: docker://btdi/sphinx:min - with: - args: ./.github/scripts/sphinx.sh - - - uses: docker://btdi/latex - with: - args: ./.github/scripts/latex.sh - - - name: 'Upload artifact: Sphinx HTML and PDF' - uses: actions/upload-artifact@v3 - with: - name: Documentation - path: docs/build/html - - - name: Deploy to Github Pages - if: github.ref == 'refs/heads/main' && github.event_name != 'pull_request' - run: | - sudo chown -R $(whoami) docs - cd docs/build/html - touch .nojekyll - git init - cp ../../../.git/config ./.git/config - git add . - git config --local user.email "push@gha" - git config --local user.name "GHA" - git commit -am "update ${{ github.sha }}" - git push -u origin +HEAD:gh-pages - rm -rf .git diff --git a/.github/workflows/pipeline.yml b/.github/workflows/pipeline.yml new file mode 100644 index 00000000..d28e22b4 --- /dev/null +++ b/.github/workflows/pipeline.yml @@ -0,0 +1,101 @@ +name: Pipeline + + +on: [pull_request, push, workflow_dispatch] + + +jobs: + + + Test: + + runs-on: ubuntu-latest + name: "Test Python ${{ matrix.python-version }}" + strategy: + matrix: + python-version: ["3.8", "3.9", "3.10", "3.11"] + + steps: + - uses: actions/checkout@v3 + + - uses: actions/setup-python@v4 + with: + python-version: ${{ matrix.python-version }} + + - name: Install requirements + run: | + sudo apt-get update -qq + sudo apt-get install -y antlr4 libantlr4-runtime-dev python3-dev yosys + python3 -m pip install --upgrade pip wheel setuptools + python3 -m pip install flake8 pytest git+https://github.com/antmicro/tuttest + + - name: Lint with flake8 + run: flake8 fpga_topwrap --count --show-source --statistics + + - name: Build + run: tuttest README.md | bash - + + - name: Test with pytest + run: pytest + + - name: Generate sources for example HDMI setup + run: | + cd examples/hdmi + tuttest README.md generate | bash - + cd - + + - name: Build example PWM setup + run: | + export FPGA_FAM="xc7" + export F4PGA_INSTALL_DIR="${HOME}/opt/f4pga" + export F4PGA_INSTALL_DIR_FAM="${F4PGA_INSTALL_DIR}/${FPGA_FAM}" + ./.github/scripts/prepare_environment.sh + source .github/scripts/activate.sh + pip3 install https://github.com/chipsalliance/f4pga/archive/main.zip#subdirectory=f4pga + + cd examples/pwm + tuttest README.md build | bash - + cd - + cp examples/pwm/build/project_1_0/zynq-symbiflow/project_top.bit ./top.bit + + - name: Store bit + uses: actions/upload-artifact@v3 + with: + name: top.bit + path: top.bit + + + Docs: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + + - uses: docker://btdi/sphinx:min + with: + args: ./.github/scripts/sphinx.sh + + - uses: docker://btdi/latex + with: + args: ./.github/scripts/latex.sh + + - name: 'Upload artifact: Sphinx HTML and PDF' + uses: actions/upload-artifact@v3 + with: + name: Documentation + path: docs/build/html + + - name: Deploy to Github Pages + if: github.ref == 'refs/heads/main' && github.event_name != 'pull_request' + run: | + sudo chown -R $(whoami) docs + cd docs/build/html + touch .nojekyll + git init + cp ../../../.git/config ./.git/config + git add . + git config --local user.email "push@gha" + git config --local user.name "GHA" + git commit -am "update ${{ github.sha }}" + git push -u origin +HEAD:gh-pages + rm -rf .git From c0350d10af6f801d8a820e6b440ff2b38ef90528 Mon Sep 17 00:00:00 2001 From: Unai Martinez-Corral Date: Wed, 26 Jul 2023 03:29:23 +0200 Subject: [PATCH 06/10] add dev.requirements.txt Signed-off-by: Unai Martinez-Corral --- .github/workflows/pipeline.yml | 11 ++++++++--- dev.requirements.txt | 2 ++ 2 files changed, 10 insertions(+), 3 deletions(-) create mode 100644 dev.requirements.txt diff --git a/.github/workflows/pipeline.yml b/.github/workflows/pipeline.yml index d28e22b4..bbe2225e 100644 --- a/.github/workflows/pipeline.yml +++ b/.github/workflows/pipeline.yml @@ -22,12 +22,17 @@ jobs: with: python-version: ${{ matrix.python-version }} - - name: Install requirements + - name: Install dev requirements run: | sudo apt-get update -qq - sudo apt-get install -y antlr4 libantlr4-runtime-dev python3-dev yosys + sudo apt-get install -y \ + antlr4 \ + libantlr4-runtime-dev \ + python3-dev \ + yosys python3 -m pip install --upgrade pip wheel setuptools - python3 -m pip install flake8 pytest git+https://github.com/antmicro/tuttest + python3 -m pip install -r dev.requirements.txt + python3 -m pip install git+https://github.com/antmicro/tuttest - name: Lint with flake8 run: flake8 fpga_topwrap --count --show-source --statistics diff --git a/dev.requirements.txt b/dev.requirements.txt new file mode 100644 index 00000000..28ecacab --- /dev/null +++ b/dev.requirements.txt @@ -0,0 +1,2 @@ +flake8 +pytest From cbbbb7dc54c896499d91aa3078a73b89f48f4560 Mon Sep 17 00:00:00 2001 From: Unai Martinez-Corral Date: Wed, 2 Aug 2023 11:18:31 +0200 Subject: [PATCH 07/10] add impl.requirements.txt Signed-off-by: Unai Martinez-Corral --- impl.requirements.txt | 2 ++ requirements.txt | 4 ++-- setup.py | 2 -- 3 files changed, 4 insertions(+), 4 deletions(-) create mode 100644 impl.requirements.txt diff --git a/impl.requirements.txt b/impl.requirements.txt new file mode 100644 index 00000000..f4cb0921 --- /dev/null +++ b/impl.requirements.txt @@ -0,0 +1,2 @@ +edalize==0.4.0 +fusesoc==1.12.0 diff --git a/requirements.txt b/requirements.txt index 6c67f932..2fc1fb90 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,10 +1,10 @@ PyYaml click amaranth-yosys -edalize==0.4.0 -fusesoc==1.12.0 git+https://github.com/amaranth-lang/amaranth wasmtime==1.0.1 numexpr hdlConvertor git+https://github.com/antmicro/kenning-pipeline-manager-backend-communication.git + +-r impl.requirements.txt diff --git a/setup.py b/setup.py index fb05cd29..52050bab 100644 --- a/setup.py +++ b/setup.py @@ -22,8 +22,6 @@ 'PyYAML', 'click', 'amaranth-yosys', - 'edalize==0.4.0', - 'fusesoc==1.12.0', 'amaranth @ git+https://github.com/amaranth-lang/amaranth', 'wasmtime==1.0.1', 'numexpr', From ab114e74ffd3cd40de577ed4039e7cda07591b81 Mon Sep 17 00:00:00 2001 From: Unai Martinez-Corral Date: Wed, 26 Jul 2023 03:44:44 +0200 Subject: [PATCH 08/10] ci: use f4pga container instead of installing in each run Signed-off-by: Unai Martinez-Corral --- .github/scripts/activate.sh | 25 --------- .github/scripts/prepare_environment.sh | 73 -------------------------- .github/workflows/pipeline.yml | 20 +++---- examples/pwm/Makefile | 4 +- 4 files changed, 12 insertions(+), 110 deletions(-) delete mode 100755 .github/scripts/activate.sh delete mode 100755 .github/scripts/prepare_environment.sh diff --git a/.github/scripts/activate.sh b/.github/scripts/activate.sh deleted file mode 100755 index 2be0c05b..00000000 --- a/.github/scripts/activate.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/usr/bin/env bash - -# Copyright (C) 2020-2022 F4PGA Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# SPDX-License-Identifier: Apache-2.0 - -# Copyright (C) 2022 Antmicro -# SPDX-License-Identifier: Apache-2.0 - - -source "${F4PGA_INSTALL_DIR}/${FPGA_FAM}/conda/etc/profile.d/conda.sh" -conda activate $FPGA_FAM -export F4PGA_SHARE_DIR=${F4PGA_INSTALL_DIR_FAM}/share/f4pga diff --git a/.github/scripts/prepare_environment.sh b/.github/scripts/prepare_environment.sh deleted file mode 100755 index b87cd86f..00000000 --- a/.github/scripts/prepare_environment.sh +++ /dev/null @@ -1,73 +0,0 @@ -#!/usr/bin/env bash - -# Copyright (C) 2020-2022 F4PGA Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# SPDX-License-Identifier: Apache-2.0 - -# Copyright (C) 2022 Antmicro -# SPDX-License-Identifier: Apache-2.0 - -set -e - -echo '::group::Environment variables' - -echo "FPGA_FAM: $FPGA_FAM" -echo "F4PGA_INSTALL_DIR: $F4PGA_INSTALL_DIR" -echo "F4PGA_INSTALL_DIR_FAM: $F4PGA_INSTALL_DIR_FAM" - -echo '::endgroup::' - - -echo '::group::Install Miniconda3' - -wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh -O conda_installer.sh - -bash conda_installer.sh -u -b -p "${F4PGA_INSTALL_DIR_FAM}"/conda -rm conda_installer.sh -source "${F4PGA_INSTALL_DIR_FAM}"/conda/etc/profile.d/conda.sh - -echo '::endgroup::' - - -echo '::group::Install arch-defs' - -mkdir -p "$F4PGA_INSTALL_DIR_FAM" - -F4PGA_TIMESTAMP='20220907-210059' -F4PGA_HASH='66a976d' - -case "$FPGA_FAM" in - xc7) PACKAGES='install-xc7 xc7z010_test';; - eos-s3) PACKAGES='install-ql ql-eos-s3_wlcsp';; - *) - echo "Unknowd FPGA_FAM <${FPGA_FAM}>!" - exit 1 -esac - -for PKG in $PACKAGES; do - wget -qO- https://storage.googleapis.com/symbiflow-arch-defs/artifacts/prod/foss-fpga-tools/symbiflow-arch-defs/continuous/install/${F4PGA_TIMESTAMP}/symbiflow-arch-defs-${PKG}-${F4PGA_HASH}.tar.xz \ - | tar -xJC $F4PGA_INSTALL_DIR_FAM -done - -rm -vrf $F4PGA_INSTALL_DIR_FAM/share/f4pga/scripts - -echo '::endgroup::' - - -echo '::group::Create environment' - -conda env create -f $F4PGA_INSTALL_DIR_FAM/"$FPGA_FAM"_env/"$FPGA_FAM"_environment.yml - -echo '::endgroup::' diff --git a/.github/workflows/pipeline.yml b/.github/workflows/pipeline.yml index bbe2225e..e136f135 100644 --- a/.github/workflows/pipeline.yml +++ b/.github/workflows/pipeline.yml @@ -51,17 +51,17 @@ jobs: - name: Build example PWM setup run: | - export FPGA_FAM="xc7" - export F4PGA_INSTALL_DIR="${HOME}/opt/f4pga" - export F4PGA_INSTALL_DIR_FAM="${F4PGA_INSTALL_DIR}/${FPGA_FAM}" - ./.github/scripts/prepare_environment.sh - source .github/scripts/activate.sh - pip3 install https://github.com/chipsalliance/f4pga/archive/main.zip#subdirectory=f4pga - cd examples/pwm - tuttest README.md build | bash - - cd - - cp examples/pwm/build/project_1_0/zynq-symbiflow/project_top.bit ./top.bit + make generate copy_sources + + docker run --rm -i -v $(pwd):/wrk -w /wrk \ + gcr.io/hdl-containers/conda/f4pga/xc7/z010 \ + bash -le <<'EOF' + pip3 install edalize==0.4.0 fusesoc==1.12.0 + make zvb + EOF + + cp build/project_1_0/zynq-symbiflow/project_top.bit ../../top.bit - name: Store bit uses: actions/upload-artifact@v3 diff --git a/examples/pwm/Makefile b/examples/pwm/Makefile index 5bb39b8a..2b39d5a3 100644 --- a/examples/pwm/Makefile +++ b/examples/pwm/Makefile @@ -1,6 +1,6 @@ # Copyright (C) 2021 Antmicro # SPDX-License-Identifier: Apache-2.0 -all: zvb +all: generate copy_sources zvb build: mkdir build @@ -15,7 +15,7 @@ copy_sources: build cp -rf sources/ build/ cp -rf ipcores/* build/ -zvb: generate copy_sources +zvb: fusesoc --cores-root build run --tool=symbiflow --build --target zynq project_1 zvb_vivado: generate copy_sources From db87a0ffaf5caeeca6fbcc28bc3beb728fa940e0 Mon Sep 17 00:00:00 2001 From: Unai Martinez-Corral Date: Wed, 2 Aug 2023 11:29:52 +0200 Subject: [PATCH 09/10] ci: install impl requirements through requirements file instead of hardcoding Signed-off-by: Unai Martinez-Corral --- .github/workflows/pipeline.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/pipeline.yml b/.github/workflows/pipeline.yml index e136f135..4b4e4bcd 100644 --- a/.github/workflows/pipeline.yml +++ b/.github/workflows/pipeline.yml @@ -53,15 +53,17 @@ jobs: run: | cd examples/pwm make generate copy_sources + cd - docker run --rm -i -v $(pwd):/wrk -w /wrk \ gcr.io/hdl-containers/conda/f4pga/xc7/z010 \ bash -le <<'EOF' - pip3 install edalize==0.4.0 fusesoc==1.12.0 + pip3 install -r impl.requirements.txt + cd examples/pwm make zvb EOF - cp build/project_1_0/zynq-symbiflow/project_top.bit ../../top.bit + cp examples/pwm/build/project_1_0/zynq-symbiflow/project_top.bit top.bit - name: Store bit uses: actions/upload-artifact@v3 From ac113ec53ebb7b5765e89f41940808ef8c958a50 Mon Sep 17 00:00:00 2001 From: Unai Martinez-Corral Date: Wed, 26 Jul 2023 04:13:52 +0200 Subject: [PATCH 10/10] ci: reorganise Signed-off-by: Unai Martinez-Corral --- .github/workflows/pipeline.yml | 35 ++++++++++++++++++++++++++++++---- 1 file changed, 31 insertions(+), 4 deletions(-) diff --git a/.github/workflows/pipeline.yml b/.github/workflows/pipeline.yml index 4b4e4bcd..0f539ccc 100644 --- a/.github/workflows/pipeline.yml +++ b/.github/workflows/pipeline.yml @@ -7,11 +7,12 @@ on: [pull_request, push, workflow_dispatch] jobs: - Test: + Tests: runs-on: ubuntu-latest name: "Test Python ${{ matrix.python-version }}" strategy: + fail-fast: false matrix: python-version: ["3.8", "3.9", "3.10", "3.11"] @@ -43,13 +44,39 @@ jobs: - name: Test with pytest run: pytest + + Examples: + + runs-on: ubuntu-latest + name: 'Example ${{ matrix.example }}' + strategy: + fail-fast: false + matrix: + example: + - HDMI + - PWM + + steps: + - uses: actions/checkout@v3 + + - uses: actions/setup-python@v4 + with: + python-version: "3.11" + + - name: Install tuttest and fpga-topwrap + run: | + python3 -m pip install git+https://github.com/antmicro/tuttest + tuttest README.md | bash - + - name: Generate sources for example HDMI setup + if: matrix.example == 'HDMI' run: | cd examples/hdmi tuttest README.md generate | bash - cd - - - name: Build example PWM setup + - name: Generate sources for and build example PWM setup + if: matrix.example == 'PWM' run: | cd examples/pwm make generate copy_sources @@ -65,8 +92,8 @@ jobs: cp examples/pwm/build/project_1_0/zynq-symbiflow/project_top.bit top.bit - - name: Store bit - uses: actions/upload-artifact@v3 + - uses: actions/upload-artifact@v3 + if: matrix.example == 'PWM' with: name: top.bit path: top.bit