name: chipyard-ci-process on: [push] env: tools-cache-version: v8 BUILDSERVER: ${{ secrets.BUILDSERVER }} BUILDUSER: ${{ secrets.BUILDUSER }} SERVER: ${{ secrets.BUILDUSER }}@${{ secrets.BUILDSERVER }} CI_DIR: ${{ secrets.BUILDDIR }} JVM_OPTS: -Xmx3200m # Customize the JVM maximum heap limit jobs: cancel-prior-workflows: name: cancel-prior-workflows runs-on: ubuntu-latest container: image: ucbbar/chipyard-ci-image:554b436 options: --entrypoint /bin/bash steps: - name: Cancel Previous Runs uses: styfle/cancel-workflow-action@0.9.1 with: access_token: ${{ github.token }} # commit-on-master-check: # name: commit-on-master-check # runs-on: ubuntu-latest # container: # image: ucbbar/chipyard-ci-image:554b436 # options: --entrypoint /bin/bash # steps: # - name: Checkout # uses: actions/checkout@v2 # - uses: ./.github/actions/job-start # id: job-start # - name: Check commits of each submodule # if: steps.job-start.outputs.run_result != 'success' # run: .github/scripts/check-commit.sh # - uses: ./.github/actions/job-end # # tutorial-setup-check: # name: tutorial-setup-check # runs-on: ubuntu-latest # container: # image: ucbbar/chipyard-ci-image:554b436 # options: --entrypoint /bin/bash # steps: # - name: Checkout # uses: actions/checkout@v2 # - uses: ./.github/actions/job-start # id: job-start # - name: Check that the tutorial-setup patches apply # if: steps.job-start.outputs.run_result != 'success' # run: scripts/tutorial-setup.sh # - uses: ./.github/actions/job-end # # documentation-check: # name: documentation-check # runs-on: ubuntu-latest # container: # image: ucbbar/chipyard-ci-image:554b436 # options: --entrypoint /bin/bash # steps: # - name: Checkout # uses: actions/checkout@v2 # - uses: ./.github/actions/job-start # id: job-start # - name: Check that documentation builds with no warnings/errors # if: steps.job-start.outputs.run_result != 'success' # run: | # sudo apt-get update -y # sudo apt-get install -y python3-pip # sudo pip3 install -r docs/requirements.txt # make -C docs html # - name: Show error log from sphinx if failed # if: ${{ steps.job-start.outputs.run_result != 'success' && failure() }} # run: cat /tmp/sphinx-err*.log # - uses: ./.github/actions/job-end # install-riscv-toolchain: name: install-riscv-toolchain runs-on: ubuntu-latest container: image: ucbbar/chipyard-ci-image:554b436 options: --entrypoint /bin/bash steps: - name: Checkout uses: actions/checkout@v2 - uses: ./.github/actions/job-start id: job-start - name: Build default RISC-V toolchain if: steps.job-start.outputs.run_result != 'success' uses: ./.github/actions/toolchain-build with: tools-version: 'riscv-tools' - uses: ./.github/actions/job-end # # install-esp-toolchain: # name: install-esp-toolchain # runs-on: ubuntu-latest # container: # image: ucbbar/chipyard-ci-image:554b436 # options: --entrypoint /bin/bash # steps: # - name: Checkout # uses: actions/checkout@v2 # - uses: ./.github/actions/job-start # id: job-start # - name: Build ESP RISC-V toolchain # if: steps.job-start.outputs.run_result != 'success' # uses: ./.github/actions/toolchain-build # with: # tools-version: 'esp-tools' # - uses: ./.github/actions/job-end # # build-extra-tests: # name: build-extra-tests # needs: install-riscv-toolchain # runs-on: ubuntu-latest # container: # image: ucbbar/chipyard-ci-image:554b436 # options: --entrypoint /bin/bash # steps: # - name: Checkout # uses: actions/checkout@v2 # - uses: ./.github/actions/job-start # id: job-start # - name: Build default RISC-V toolchain # if: steps.job-start.outputs.run_result != 'success' # uses: ./.github/actions/toolchain-build # with: # tools-version: 'riscv-tools' # - name: Generate keys # if: steps.job-start.outputs.run_result != 'success' # id: genkey # run: | # echo "::set-output name=extra-tests-cache-key::extra-tests-${{ github.ref }}-${{ github.sha }}" # - uses: actions/cache@v2 # if: steps.job-start.outputs.run_result != 'success' # id: build-extra-tools-cache # with: # path: extra-tests-install # key: ${{ steps.genkey.outputs.extra-tests-cache-key }} # restore-keys: ${{ steps.genkey.outputs.extra-tests-cache-key }} # - name: Build extra tests # if: steps.job-start.outputs.run_result != 'success' # run: .github/scripts/build-extra-tests.sh # - uses: ./.github/actions/job-end install-verilator: name: install-verilator runs-on: self-hosted steps: - name: Checkout uses: actions/checkout@v2 - uses: ./.github/actions/job-start id: job-start - name: Build verilator on self-hosted if: steps.job-start.outputs.run_result != 'success' run: .github/scripts/install-verilator.sh - uses: ./.github/actions/job-end # # Sentinel job to simplify how we specify which that basic setup is complete # # # # When adding new prep jobs, please add them to `needs` below # setup-complete: # name: setup-complete # needs: [install-riscv-toolchain, install-esp-toolchain, install-verilator, # build-extra-tests] # runs-on: ubuntu-latest # steps: # - name: Set up complete # run: echo Set up is complete! # # ########################################################################## # # prepare-chipyard-cores: # name: prepare-chipyard-cores # needs: setup-complete # runs-on: ubuntu-latest # container: # image: ucbbar/chipyard-ci-image:554b436 # options: --entrypoint /bin/bash # steps: # - name: Checkout # uses: actions/checkout@v2 # - name: Install SSH key # uses: shimataro/ssh-key-action@v2 # with: # key: ${{ secrets.SERVERKEY }} # known_hosts: ${{ secrets.BUILDSERVER }} # - uses: ./.github/actions/job-start # id: job-start # - name: Build RTL # if: steps.job-start.outputs.run_result != 'success' # uses: ./.github/actions/prepare-rtl # with: # group-key: "group-cores" # - uses: ./.github/actions/job-end # # prepare-chipyard-peripherals: # name: prepare-chipyard-peripherals # needs: setup-complete # runs-on: ubuntu-latest # container: # image: ucbbar/chipyard-ci-image:554b436 # options: --entrypoint /bin/bash # steps: # - name: Checkout # uses: actions/checkout@v2 # - name: Install SSH key # uses: shimataro/ssh-key-action@v2 # with: # key: ${{ secrets.SERVERKEY }} # known_hosts: ${{ secrets.BUILDSERVER }} # - uses: ./.github/actions/job-start # id: job-start # - name: Build RTL # if: steps.job-start.outputs.run_result != 'success' # uses: ./.github/actions/prepare-rtl # with: # group-key: "group-peripherals" # - uses: ./.github/actions/job-end # # prepare-chipyard-accels: # name: prepare-chipyard-accels # needs: setup-complete # runs-on: ubuntu-latest # container: # image: ucbbar/chipyard-ci-image:554b436 # options: --entrypoint /bin/bash # steps: # - name: Checkout # uses: actions/checkout@v2 # - name: Install SSH key # uses: shimataro/ssh-key-action@v2 # with: # key: ${{ secrets.SERVERKEY }} # known_hosts: ${{ secrets.BUILDSERVER }} # - uses: ./.github/actions/job-start # id: job-start # - name: Build RTL # if: steps.job-start.outputs.run_result != 'success' # uses: ./.github/actions/prepare-rtl # with: # tools-version: "esp-tools" # group-key: "group-accels" # - uses: ./.github/actions/job-end # # prepare-chipyard-tracegen: # name: prepare-chipyard-tracegen # needs: setup-complete # runs-on: ubuntu-latest # container: # image: ucbbar/chipyard-ci-image:554b436 # options: --entrypoint /bin/bash # steps: # - name: Checkout # uses: actions/checkout@v2 # - name: Install SSH key # uses: shimataro/ssh-key-action@v2 # with: # key: ${{ secrets.SERVERKEY }} # known_hosts: ${{ secrets.BUILDSERVER }} # - uses: ./.github/actions/job-start # id: job-start # - name: Build RTL # if: steps.job-start.outputs.run_result != 'success' # uses: ./.github/actions/prepare-rtl # with: # group-key: "group-tracegen" # - uses: ./.github/actions/job-end # # prepare-chipyard-other: # name: prepare-chipyard-other # needs: setup-complete # runs-on: ubuntu-latest # container: # image: ucbbar/chipyard-ci-image:554b436 # options: --entrypoint /bin/bash # steps: # - name: Checkout # uses: actions/checkout@v2 # - name: Install SSH key # uses: shimataro/ssh-key-action@v2 # with: # key: ${{ secrets.SERVERKEY }} # known_hosts: ${{ secrets.BUILDSERVER }} # - uses: ./.github/actions/job-start # id: job-start # - name: Build RTL # if: steps.job-start.outputs.run_result != 'success' # uses: ./.github/actions/prepare-rtl # with: # group-key: "group-other" # - uses: ./.github/actions/job-end # # prepare-chipyard-fpga: # name: prepare-chipyard-fpga # needs: setup-complete # runs-on: ubuntu-latest # container: # image: ucbbar/chipyard-ci-image:554b436 # options: --entrypoint /bin/bash # steps: # - name: Checkout # uses: actions/checkout@v2 # - name: Install SSH key # uses: shimataro/ssh-key-action@v2 # with: # key: ${{ secrets.SERVERKEY }} # known_hosts: ${{ secrets.BUILDSERVER }} # - uses: ./.github/actions/job-start # id: job-start # - name: Build RTL # if: steps.job-start.outputs.run_result != 'success' # uses: ./.github/actions/prepare-rtl # with: # group-key: "group-fpga" # build-type: "fpga" # - uses: ./.github/actions/job-end # # ########################################################################## # # chipyard-rocket-run-tests: # name: chipyard-rocket-run-tests # needs: prepare-chipyard-cores # runs-on: ubuntu-latest # container: # image: ucbbar/chipyard-ci-image:554b436 # options: --entrypoint /bin/bash # steps: # - name: Checkout # uses: actions/checkout@v2 # - uses: ./.github/actions/job-start # id: job-start # - name: Run tests # if: steps.job-start.outputs.run_result != 'success' # uses: ./.github/actions/run-tests # with: # group-key: "group-cores" # project-key: "chipyard-rocket" # - uses: ./.github/actions/job-end # # chipyard-hetero-run-tests: # name: chipyard-hetero-run-tests # needs: prepare-chipyard-cores # runs-on: ubuntu-latest # container: # image: ucbbar/chipyard-ci-image:554b436 # options: --entrypoint /bin/bash # steps: # - name: Checkout # uses: actions/checkout@v2 # - uses: ./.github/actions/job-start # id: job-start # - name: Run tests # if: steps.job-start.outputs.run_result != 'success' # uses: ./.github/actions/run-tests # with: # group-key: "group-cores" # project-key: "chipyard-hetero" # - uses: ./.github/actions/job-end # # chipyard-boom-run-tests: # name: chipyard-boom-run-tests # needs: prepare-chipyard-cores # runs-on: ubuntu-latest # container: # image: ucbbar/chipyard-ci-image:554b436 # options: --entrypoint /bin/bash # steps: # - name: Checkout # uses: actions/checkout@v2 # - uses: ./.github/actions/job-start # id: job-start # - name: Run tests # if: steps.job-start.outputs.run_result != 'success' # uses: ./.github/actions/run-tests # with: # group-key: "group-cores" # project-key: "chipyard-boom" # - uses: ./.github/actions/job-end # # chipyard-cva6-run-tests: # name: chipyard-cva6-run-tests # needs: prepare-chipyard-cores # runs-on: ubuntu-latest # container: # image: ucbbar/chipyard-ci-image:554b436 # options: --entrypoint /bin/bash # steps: # - name: Checkout # uses: actions/checkout@v2 # - uses: ./.github/actions/job-start # id: job-start # - name: Run tests # if: steps.job-start.outputs.run_result != 'success' # uses: ./.github/actions/run-tests # with: # group-key: "group-cores" # project-key: "chipyard-cva6" # - uses: ./.github/actions/job-end # # chipyard-sodor-run-tests: # name: chipyard-sodor-run-tests # needs: prepare-chipyard-cores # runs-on: ubuntu-latest # container: # image: ucbbar/chipyard-ci-image:554b436 # options: --entrypoint /bin/bash # steps: # - name: Checkout # uses: actions/checkout@v2 # - uses: ./.github/actions/job-start # id: job-start # - name: Run tests # if: steps.job-start.outputs.run_result != 'success' # uses: ./.github/actions/run-tests # with: # group-key: "group-cores" # project-key: "chipyard-sodor" # - uses: ./.github/actions/job-end # # chipyard-dmirocket-run-tests: # name: chipyard-dmirocket-run-tests # needs: prepare-chipyard-peripherals # runs-on: ubuntu-latest # container: # image: ucbbar/chipyard-ci-image:554b436 # options: --entrypoint /bin/bash # steps: # - name: Checkout # uses: actions/checkout@v2 # - uses: ./.github/actions/job-start # id: job-start # - name: Run tests # if: steps.job-start.outputs.run_result != 'success' # uses: ./.github/actions/run-tests # with: # group-key: "group-peripherals" # project-key: "chipyard-dmirocket" # - uses: ./.github/actions/job-end # # chipyard-spiflashwrite-run-tests: # name: chipyard-spiflashwrite-run-tests # needs: prepare-chipyard-peripherals # runs-on: ubuntu-latest # container: # image: ucbbar/chipyard-ci-image:554b436 # options: --entrypoint /bin/bash # steps: # - name: Checkout # uses: actions/checkout@v2 # - uses: ./.github/actions/job-start # id: job-start # - name: Run tests # if: steps.job-start.outputs.run_result != 'success' # uses: ./.github/actions/run-tests # with: # group-key: "group-peripherals" # project-key: "chipyard-spiflashwrite" # - uses: ./.github/actions/job-end # # chipyard-spiflashread-run-tests: # name: chipyard-spiflashread-run-tests # needs: prepare-chipyard-peripherals # runs-on: ubuntu-latest # container: # image: ucbbar/chipyard-ci-image:554b436 # options: --entrypoint /bin/bash # steps: # - name: Checkout # uses: actions/checkout@v2 # - uses: ./.github/actions/job-start # id: job-start # - name: Run tests # if: steps.job-start.outputs.run_result != 'success' # uses: ./.github/actions/run-tests # with: # group-key: "group-peripherals" # project-key: "chipyard-spiflashread" # - uses: ./.github/actions/job-end # # chipyard-lbwif-run-tests: # name: chipyard-lbwif-run-tests # needs: prepare-chipyard-peripherals # runs-on: ubuntu-latest # container: # image: ucbbar/chipyard-ci-image:554b436 # options: --entrypoint /bin/bash # steps: # - name: Checkout # uses: actions/checkout@v2 # - uses: ./.github/actions/job-start # id: job-start # - name: Run tests # if: steps.job-start.outputs.run_result != 'success' # uses: ./.github/actions/run-tests # with: # group-key: "group-peripherals" # project-key: "chipyard-lbwif" # - uses: ./.github/actions/job-end # # chipyard-sha3-run-tests: # name: chipyard-sha3-run-tests # needs: prepare-chipyard-accels # runs-on: ubuntu-latest # container: # image: ucbbar/chipyard-ci-image:554b436 # options: --entrypoint /bin/bash # steps: # - name: Checkout # uses: actions/checkout@v2 # - uses: ./.github/actions/job-start # id: job-start # - name: Run tests # if: steps.job-start.outputs.run_result != 'success' # uses: ./.github/actions/run-tests # with: # tools-version: "esp-tools" # group-key: "group-accels" # project-key: "chipyard-sha3" # - uses: ./.github/actions/job-end # # chipyard-streaming-fir-run-tests: # name: chipyard-streaming-fir-run-tests # needs: prepare-chipyard-accels # runs-on: ubuntu-latest # container: # image: ucbbar/chipyard-ci-image:554b436 # options: --entrypoint /bin/bash # steps: # - name: Checkout # uses: actions/checkout@v2 # - uses: ./.github/actions/job-start # id: job-start # - name: Run tests # if: steps.job-start.outputs.run_result != 'success' # uses: ./.github/actions/run-tests # with: # group-key: "group-accels" # project-key: "chipyard-streaming-fir" # - uses: ./.github/actions/job-end # # chipyard-streaming-passthrough-run-tests: # name: chipyard-streaming-passthrough-run-tests # needs: prepare-chipyard-accels # runs-on: ubuntu-latest # container: # image: ucbbar/chipyard-ci-image:554b436 # options: --entrypoint /bin/bash # steps: # - name: Checkout # uses: actions/checkout@v2 # - uses: ./.github/actions/job-start # id: job-start # - name: Run tests # if: steps.job-start.outputs.run_result != 'success' # uses: ./.github/actions/run-tests # with: # group-key: "group-accels" # project-key: "chipyard-streaming-passthrough" # - uses: ./.github/actions/job-end # # chipyard-hwacha-run-tests: # name: chipyard-hwacha-run-tests # needs: prepare-chipyard-accels # runs-on: ubuntu-latest # container: # image: ucbbar/chipyard-ci-image:554b436 # options: --entrypoint /bin/bash # steps: # - name: Checkout # uses: actions/checkout@v2 # - uses: ./.github/actions/job-start # id: job-start # - name: Run tests # if: steps.job-start.outputs.run_result != 'success' # uses: ./.github/actions/run-tests # with: # tools-version: "esp-tools" # group-key: "group-accels" # project-key: "chipyard-hwacha" # - uses: ./.github/actions/job-end # # chipyard-gemmini-run-tests: # name: chipyard-gemmini-run-tests # needs: prepare-chipyard-accels # runs-on: ubuntu-latest # container: # image: ucbbar/chipyard-ci-image:554b436 # options: --entrypoint /bin/bash # steps: # - name: Checkout # uses: actions/checkout@v2 # - uses: ./.github/actions/job-start # id: job-start # - name: Run tests # if: steps.job-start.outputs.run_result != 'success' # uses: ./.github/actions/run-tests # with: # tools-version: "esp-tools" # group-key: "group-accels" # project-key: "chipyard-gemmini" # - uses: ./.github/actions/job-end # # chipyard-nvdla-run-tests: # name: chipyard-nvdla-run-tests # needs: prepare-chipyard-accels # runs-on: ubuntu-latest # container: # image: ucbbar/chipyard-ci-image:554b436 # options: --entrypoint /bin/bash # steps: # - name: Checkout # uses: actions/checkout@v2 # - uses: ./.github/actions/job-start # id: job-start # - name: Run tests # if: steps.job-start.outputs.run_result != 'success' # uses: ./.github/actions/run-tests # with: # group-key: "group-accels" # project-key: "chipyard-nvdla" # - uses: ./.github/actions/job-end # # tracegen-boom-run-tests: # name: tracegen-boom-run-tests # needs: prepare-chipyard-tracegen # runs-on: ubuntu-latest # container: # image: ucbbar/chipyard-ci-image:554b436 # options: --entrypoint /bin/bash # steps: # - name: Checkout # uses: actions/checkout@v2 # - uses: ./.github/actions/job-start # id: job-start # - name: Run tests # if: steps.job-start.outputs.run_result != 'success' # uses: ./.github/actions/run-tests # with: # group-key: "group-tracegen" # project-key: "tracegen-boom" # - uses: ./.github/actions/job-end # # tracegen-run-tests: # name: tracegen-run-tests # needs: prepare-chipyard-tracegen # runs-on: ubuntu-latest # container: # image: ucbbar/chipyard-ci-image:554b436 # options: --entrypoint /bin/bash # steps: # - name: Checkout # uses: actions/checkout@v2 # - uses: ./.github/actions/job-start # id: job-start # - name: Run tests # if: steps.job-start.outputs.run_result != 'success' # uses: ./.github/actions/run-tests # with: # group-key: "group-tracegen" # project-key: "tracegen" # - uses: ./.github/actions/job-end # # icenet-run-tests: # name: icenet-run-tests # needs: prepare-chipyard-other # runs-on: ubuntu-latest # container: # image: ucbbar/chipyard-ci-image:554b436 # options: --entrypoint /bin/bash # steps: # - name: Checkout # uses: actions/checkout@v2 # - uses: ./.github/actions/job-start # id: job-start # - name: Run tests # if: steps.job-start.outputs.run_result != 'success' # uses: ./.github/actions/run-tests # with: # group-key: "group-other" # project-key: "icenet" # - uses: ./.github/actions/job-end # # testchipip-run-tests: # name: testchipip-run-tests # needs: prepare-chipyard-other # runs-on: ubuntu-latest # container: # image: ucbbar/chipyard-ci-image:554b436 # options: --entrypoint /bin/bash # steps: # - name: Checkout # uses: actions/checkout@v2 # - uses: ./.github/actions/job-start # id: job-start # - name: Run tests # if: steps.job-start.outputs.run_result != 'success' # uses: ./.github/actions/run-tests # with: # group-key: "group-other" # project-key: "testchipip" # - uses: ./.github/actions/job-end # # firesim-run-tests: # name: firesim-run-tests # needs: setup-complete # runs-on: ubuntu-latest # container: # image: ucbbar/chipyard-ci-image:554b436 # options: --entrypoint /bin/bash # steps: # - name: Checkout # uses: actions/checkout@v2 # - name: Install SSH key # uses: shimataro/ssh-key-action@v2 # with: # key: ${{ secrets.SERVERKEY }} # known_hosts: ${{ secrets.BUILDSERVER }} # - uses: ./.github/actions/job-start # id: job-start # - name: Run tests # if: steps.job-start.outputs.run_result != 'success' # uses: ./.github/actions/run-tests # with: # group-key: "extra-tests" # project-key: "firesim" # run-script: "run-firesim-scala-tests.sh" # - uses: ./.github/actions/job-end # # fireboom-run-tests: # name: fireboom-run-tests # needs: setup-complete # runs-on: ubuntu-latest # container: # image: ucbbar/chipyard-ci-image:554b436 # options: --entrypoint /bin/bash # steps: # - name: Checkout # uses: actions/checkout@v2 # - name: Install SSH key # uses: shimataro/ssh-key-action@v2 # with: # key: ${{ secrets.SERVERKEY }} # known_hosts: ${{ secrets.BUILDSERVER }} # - uses: ./.github/actions/job-start # id: job-start # - name: Run tests # if: steps.job-start.outputs.run_result != 'success' # uses: ./.github/actions/run-tests # with: # group-key: "extra-tests" # project-key: "fireboom" # run-script: "run-firesim-scala-tests.sh" # - uses: ./.github/actions/job-end # # firesim-multiclock-run-tests: # name: firesim-multiclock-run-tests # needs: setup-complete # runs-on: ubuntu-latest # container: # image: ucbbar/chipyard-ci-image:554b436 # options: --entrypoint /bin/bash # steps: # - name: Checkout # uses: actions/checkout@v2 # - name: Install SSH key # uses: shimataro/ssh-key-action@v2 # with: # key: ${{ secrets.SERVERKEY }} # known_hosts: ${{ secrets.BUILDSERVER }} # - uses: ./.github/actions/job-start # id: job-start # - name: Run tests # if: steps.job-start.outputs.run_result != 'success' # uses: ./.github/actions/run-tests # with: # group-key: "extra-tests" # project-key: "firesim-multiclock" # run-script: "run-firesim-scala-tests.sh" # - uses: ./.github/actions/job-end # # # Sentinel job to simplify how we specify which checks need to pass in branch # # protection and in Mergify # # # # When adding new top level jobs, please add them to `needs` below # all_tests_passed: # name: "all tests passed" # needs: [commit-on-master-check, tutorial-setup-check, documentation-check, # chipyard-rocket-run-tests, chipyard-hetero-run-tests, chipyard-boom-run-tests, chipyard-cva6-run-tests, # chipyard-sodor-run-tests, chipyard-dmirocket-run-tests, chipyard-spiflashwrite-run-tests, # chipyard-spiflashread-run-tests, chipyard-lbwif-run-tests, chipyard-sha3-run-tests, # chipyard-streaming-fir-run-tests, chipyard-streaming-passthrough-run-tests, chipyard-hwacha-run-tests, # chipyard-gemmini-run-tests, chipyard-nvdla-run-tests, # tracegen-boom-run-tests, tracegen-run-tests, # icenet-run-tests, testchipip-run-tests, # prepare-chipyard-fpga, # firesim-run-tests, fireboom-run-tests, firesim-multiclock-run-tests] # runs-on: ubuntu-latest # steps: # - run: echo Success!